Вывод случайного изображения фотогалереи — различия между версиями
Материал из Umicms
Stexe (обсуждение | вклад) |
Stexe (обсуждение | вклад) |
||
Строка 21: | Строка 21: | ||
} | } | ||
</source> | </source> | ||
− | + | Макрос '''getLinkToRandomPhoto(''') возвращает путь до изображения случайной фотографии (элемент иерархии). | |
<h2>TPL-шаблонизатор</h2> | <h2>TPL-шаблонизатор</h2> | ||
Пример вызова макроса: | Пример вызова макроса: |
Версия 09:19, 27 апреля 2014
Актуально для версии 2.9.6
Задача: Выводить путь до изображения случайной фотографии.
Реализация:
В данном случае мы будем использовать механизм формирования выборок selector.
В файл \classes\modules\custom.php добавим код custom макроса getLinkToRandomPhoto():
public function getLinkToRandomPhoto() {
$photos = new selector('pages');
$photos->types('object-type')->name('photoalbum', 'photo');
$photos->order('rand');
$randomPhoto = $photos->first;
if ( $randomPhoto instanceof iumiHierarchyElement ) {
$imagePath = $randomPhoto->getValue('photo')->getFilePath();
$imagePath = preg_replace('/^\./', '', $imagePath, 1);
return $imagePath;
}
return '';
}
Макрос getLinkToRandomPhoto() возвращает путь до изображения случайной фотографии (элемент иерархии).
TPL-шаблонизатор
Пример вызова макроса:
<img src="%custom getLinkToRandomPhoto()%" alt="photo" title="random photo" />
XSLT-шаблонизатор
Пример вызова макроса:
<img src="{document('udata://custom/getLinkToRandomPhoto')}/udata}" alt="photo" title="random photo" />