Реализуем просмотр списка страниц, добавление и редактирование страниц

Добавим в __admin.php метод:

<?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 подставлены в 
качестве макросов
		}
...
?>
			

 

Теперь, для того, чтобы этот метод заработал, необходимо

 добавить форму в файл forms.php:

<?php
...

$FORMS['tree'] = <<<TREE

<imgButton>
	<title><![CDATA[Добавить мою новую страницу]>
</title>
	<link>/admin/mymod/page_add/
23064</link>
	<src>/images/cms/admin/mac/
ico_add.gif</src>
</imgButton>

<tablegroup>
	%rows%
</tablegroup>

TREE;
?>
			


Сайт с системой управления от 6000 рублей!