<?php
...
public function tree() {
$this->load_forms(); //Подгружаем файл с формами (forms.php)
$param = Array();
//Объявляем массив для параметров, которые будут
переданы в форму
$per_page = 10;
//Кол-во страниц для постраничного вывода
/* Получаем внешние переменные */
$parent_id = (int) getRequest
("param0"); //Получаем id родительского элемента
$current_page = (int) getRequest("p"); //Получаем номер текущей страницы
(для постраничного вывода)
//Получаем id иерархического типа:
$hierarchy_type_id = umiHierarchyTypes
Collection::getInstance()->
getTypeByName("mymod", "page")->getId();
Сделаем 10 страниц, которые относятся к этому модулю,
и находятся в подразделе элемента
с id равным $parent_id... */
$sel = new umiSelection;
$sel->setElementTypeFilter();
//Разрешаем фильтрацию по типу иерархии
(чтобы выбрать только
страницы нашего модуля)
$sel->addElementType
($hierarchy_type_id);
//Добавляем в фильтр id типа иерархии нашего модуля
$sel->setHierarchyFilter();
//Разрешаем фильтрацию по родительскому
узлу в дереве
$sel->addHierarchyFilter($parent_id);
//Добавляем id родительского узла в фильтр
/* Запускаем выборку */
$result = umiSelectionsParser::run
Selection($sel);
//Получаем массив результатов, состоящий из id
найденных элементов
$total = umiSelectionsParser::run
SelectionCounts($sel);
//Получаем общее количество результатов без учета
лимита выборки
/* Добавляем значения в вывод */
$rows = "";
foreach($result as $element_id) {
$element = umiHierarchy
::getInstance()->
getElement($element_id);//Получаем экземпляр элемента
из результата
$element_name =
$element->getName();
//Получаем название элемента
$element_h1 =
$element->getValue("h1"); //Получаем какое-то свойство элемента
$element_link =
umiHierarchy::getInstance()->
getPathById($element_id); //Получаем url элемента
$rows .= "...";
}
$params['parent_id'] =
$parent_id;
//Передаем в форму id текущего раздела, чтобы можно
было воспользоваться им из формы
$params['rows'] = $rows;
//Передаем результат в форму
$params['pages'] = $this->
generateNumPage($total, $per_page, $current_page);
//Добавляем в
//форму блока со списком страниц постраничного вызова,
вызывая API-функцию
return $this->parse_form
("tree", $params); //Возвращяем результат - блок формы, в котором
//все ключи из массива $params подставлены в
качестве макросов
}
...
?>