29.01.2009 | 06:57

Здравствуйте, коллеги и читатели блога UMI.CMS! Надеюсь, вы приятно удивились, увидев новое лицо среди авторов блога. Только в отличие от прочих авторов я не являюсь сотрудником Юмисофт - просто я давно и в большом количестве разрабатываю сайты на UMI.CMS. За время работы с системой у меня накопилась книга интересных рецептов для UMI.CMS, которыми я планирую делиться с вами в этом блоге. Сегодня я начну с вывода случайного ID страницы, начиная от родителя.

Данное решение полезно когда необходимо вывести на сайте текст случайной статьи или отзыва.

В файле /classes/modules/custom.php сразу после строки

//TODO: Write your own macroses here

напишите:

public function random_child_id($element_id) {
$childs = Array();
$childs = umiHierarchy::getInstance()->getChilds($element_id);
$rand_element = array_rand($childs, 1);
return $rand_element;
}

Сам макрос имеет вид (внимание, после первого символа % поставлен пробел, уберите его после вставки в шаблон):

% custom random_child_id([element_id = '0'])%

element_id - id родителя - обязательный параметр

Макрос возвращает ID случайного потомка

Недостаток макроса в том, что при вызове макроса с одинаковыми параметрами несколько раз он будет возвращать одинаковый результат, т.к. результат отработки макросов кешируется перед сборкой шаблона.

В своем следующем сообщении я расскажу о том, как случайным образом выводить несколько статей.

Читайте также:

Теги

Авторы блога