*

Offline Jo

  • *****
  • 232
  • Geschlecht: Männlich
    • JoLichter.de
MODX getRandPicture
« am: 05. Mai 2016, 15:47:19 »
Snippet Aufruf für Zufallsbilder:

<?php
# Beispiel Snippet Aufruf für Zufallsbilder:
# [[!getRandPicture? &url=`assets/images/web10/gallery/maibaum` &ext=`jpg`]]
# oder per TV
# [[!getRandPicture? &url=`assets/images/web10/[[*RandPicture]]` &ext=`jpg`]]
# <img alt="[[+image_title]]" class="lightbox" src="[[+image_folder]][[+image_name]]" />
#
# Variablen -Start------------------->
   # Datei-Endung
     
$strExt '.'.$modx->getOption('ext',$scriptProperties,'jpg');
   
# Bilder-Ordner
     
$strURL $modx->getOption('url',$scriptProperties,'assets');
     
$folder = (isset($folder))?$folder:$strURL;
     
$imgDir opendir($folder);
   
# Fehler-Bild
     
$defaultImage = (isset($defaultImage))?$defaultImage:$modx->config['base_url'].'assets/images/icons/icon-error.png';
# Variablen -Ende-------------------<

$images = [];

while (
$file readdir($imgDir))
{
    
# prüfe ob die Datei ein Bild ist
    
$file_type strrchr($file'.');

    if (
$file_type == $strExt){
        
$is_image true;
    }

    
$is_thumb = !strncmp($file'.thumb_'7);
    if (
$file != '.' && $file != '..' && $is_image && !$is_thumb){
        
$images[] = $file;
    }
}
closedir($imgDir);


# Platzhalter
$modx->setPlaceholder('image_folder'$folder.'/');
if (
count($images) > 1)
{
    
srand(( double )microtime()*1000000);
    
$image_name $images[rand(0sizeof($images)-1)];
    
$modx->setPlaceholder('image_name'$image_name);
    
$image_title str_replace('_',' ',$image_name);
    
$image_title str_replace('.'.$ext,'',$image_name);
    
$modx->setPlaceholder('image_title'str_replace('_',' ',$image_title));
    return;
}

# wenn keine Bilder im Ordner sind
$modx->setPlaceholder('image_folder''');
$modx->setPlaceholder('image_name'$defaultImage);
return;
« Letzte Änderung: 08. März 2017, 23:02:32 von Jo »