Вывод случайного изображения фотогалереи

Материал из Umicms
Перейти к:навигация, поиск

Актуально для версии 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" />