Сегодняшняя статья посвящена частому вопросу, который мне задавали мои знакомые. Звучал он примерно так: "Ты не знаешь, как вывести случайное изображение вместо заднего фона в шапке Joomla"? Знаю, и сегодня Вам об этом расскажу.

Сегодняшний пример я приведу на основе бесплатного шаблона bizblue для Joomla 2.5. Вы же можете его стиражировать практически для любого шаблона, немного видоизменив код. Итак, если открыть файл /templates/bizblue/index.php то можно найти там код:

<td  align="center" class="logoheader">

Немного расширим его и заменим на:

<td align="center" class="logoheader"
<?php
            function getRandomImage ($img_folder) {
                    $imglist=array();
                    mt_srand((double)microtime()*1000);
                    //use the directory class
                    $imgs = dir($img_folder);
                    //read all files from the  directory, checks if are images and ads them to a list (see below how to display flash banners)
                    while ($file = $imgs->read()) {
                            if ((strpos($file,".gif")!==false)||(strpos($file,".jpg")!==false)||(strpos($file,".png")!==false)) {
                                    $imglist[] = $file;
                                    }
                    }
                    closedir($imgs->handle);
                    if(!count($imglist)) return '';
                    //generate a random number between 0 and the number of images
                    $random = mt_rand(0, count($imglist)-1);
                    $image = $imglist[$random];
                    return $image;
            }

  echo 'style="background: url('.$this->baseurl.'/templates/'.$this->template.'/images/header/'.getRandomImage(dirname(__FILE__).DS.'images/header').') no-repeat scroll left bottom #FFFFFF;">';

?>

В приведенном выше коде мы ввели новую функцию getRandomImage, которая сканирует все файлы в папке, передаваемой в неё вместо переменной $img_folder.

В данном случае это папка dirname(__FILE__).DS.'images/header', т.е. папка /templates/bizblue/images/header

За основу берутся только файлы с расширениями: *.gif,*.jpg,*.png. Вы можете добавить по аналогии другие.

Далее берется случайное изображение и возвращается путь к нему в качестве результата функции:

return $image;

Внимание! Все пути являются относительными начиная с корневой папки Вашего сайта!

И наконец в самой ячейке TD в свойство стиля style мы добавили путь к изображению для заднего фона:

style="background: url('результат работы функции getRandomImage') no-repeat scroll left bottom #FFFFFF;"

К слову, данный пример можно использовать не только для вывода случайного изображения вместо заднего фона в заголовке Joomla 2.5, но и для вывода случайного изображения в любой ситуации, немного модифицировав (изменив) код.

Add comment


Security code
Refresh