Вывод случайного изображения фотогалереи — различия между версиями
Материал из Umicms
Ver (обсуждение | вклад) (Новая страница: «__TOC__ == Задача == Необходимо вывести случайное изображение изо всех фотогалерей. == Решение =…») |
Stexe (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | + | [[Категория:Верстка в TPL]][[Категория: Верстка в XSLT]][[Категория: Модуль Новости]] | |
− | + | '''Актуально для версии 2.9.6'''<br/><br/> | |
− | + | '''Задача:''' Выводить путь до изображения случайной фотографии<br/><br/> | |
+ | '''Реализация:''' | ||
+ | <h2>TPL-шаблонизатор</h2> | ||
− | + | <h2>XSLT-шаблонизатор</h2> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | В данном варианте мы будем использовать выборки с помощью [[umiSelection]]. Кастомный макрос будет возвращать полный путь изображения: | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | <source lang="php"> | ||
+ | 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 ''; | ||
+ | } | ||
</source> | </source> | ||
Версия 09:12, 27 апреля 2014
Актуально для версии 2.9.6
Задача: Выводить путь до изображения случайной фотографии
Реализация:
TPL-шаблонизатор
XSLT-шаблонизатор
В данном варианте мы будем использовать выборки с помощью umiSelection. Кастомный макрос будет возвращать полный путь изображения:
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 '';
}
Пример использования
<img src="%custom phtShowRandomPhotoLink()%" alt="photo" title="random photo" />