Вывод значения поля для случайной страницы
Материал из Umicms
Версия от 08:37, 27 апреля 2014; Stexe (обсуждение | вклад)
Актуально для версии 2.9.6
Задача: Выводить содержимое какого-либо поля случайной страницы.
Реализация:
В файл \classes\modules\custom.php добавим код custom макроса getRandomElementPropValue():
public function getRandomElementPropValue($parentId, $propName = false, $template = 'default') {
if ( !$parentId ) {
$parentId = getRequest('param0');
}
if ( !$propName ) {
$propName = getRequest('param1');
}
$onlyActive = false;
$childElements = array();
$childElements = umiHierarchy::getInstance()->getChildIds($parentId, $onlyActive);
$childElementsCount = count($childElements);
if ( $childElementsCount > 0 ) {
$randomElementIndex = mt_rand (0, $childElementsCount - 1);
$randomElementId = $childElements[$randomElementIndex];
$dataModule = cmsController::getInstance()->getModule('data');
return $dataModule->getProperty($randomElementId, $propName, $template);
}
}
Данный макрос будет работать только при использовании TPL-шаблонизатора.
Макрос getRandomElementPropValue() возвращает содержимое поля с идентификатором $propName случайной страницы по шаблону $template, которая является дочерней по отношению к странице с id = $parentId.
Пример вызова макроса:
%custom getRandomElementPropValue('48','h1')%