Neuigkeiten:

Privates MODX und LINUX BLOG, User Registrierung ist deaktiviert! Fragen oder Tipps? Bitte per Matrix: @jolichter:tchncs.de

Hauptmenü

MODX getRandPicture

Begonnen von Jo, 2016-05-05 | 15:47:19

« vorheriges - nächstes »

Jo

Snippet Aufruf für Zufallsbilder:

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

$images = [];
$is_image '';

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('.'.$ext,'',$image_name);
    
$image_title str_replace('_',' ',$image_title);
    
$image_title strtoupper($image_title);
    
$modx->setPlaceholder('image_title'$image_title);
    return;
}

# wenn keine Bilder im Ordner sind
 
$modx->setPlaceholder('image_folder''');
 
$modx->setPlaceholder('image_name'$defaultImage);
 return;