<?php
...
public function page_add_do() {
$this->checkPostIsEmpty(); //Заставляем систему проверить, есть ли минимум данных,
чтобы обработать запрос
$parent_id = (int)
getRequest("param0");
$hierarhcy_type_id = umiHierarchyTypesCollection::getInstance()->getTypeByName("mymod", "page")->getId();
$cmsController = cmsController::getInstance();
$lang_id = $cmsController->getCurrentLang()->getId(); //Получаем id текущего языка
$domain_id = $cmsController->getDomainId()->getId();
//Получаем id текущего домена
if($parent_id) {//Если у нас есть родительский элемент, то возьмем id домена
у него
$parent_element = umiHierarchy::getInstance()->getElement
($parent_id);
//Получаем родительский элемент
if(is_object($parent_element)) { //Если все получилось...
$domain_id = $parent_element_id->getDomainId(); //... то берем у него domain id.
} else {
throw new privateException("I can't get element with id \"{$parent_id}\"");
}
}
//Получаем данные из запроса...
$name = (string) getRequest("name");$alt_name = (string) getRequest("alt_name");
$tpl_id = (int) getRequest("tpl_id");
$object_type_id = (int) getRequest("object_type_id");
$is_active = (bool) getRequest("is_active");
$h1 = (string) getRequest("h1");
...
$element_id = umiHierarchy::getInstance()->addElement(
$parent_id, $hierarchy_type_id, $name,
$alt_name, $object_type_id, $domain_id,
$lang_id, $tpl_id
); //Создаем новый пустой элемент (новую страницу)
if($users_module = $cmsController->getModule("users")) {
$users_module->setPerms($element_id); //Устанавливаем права на эту страницу,
//которые были выбранына предыдущей страницу
}
$element = umiHierarchy::getInstance()->getElement($element_id);
//Получаем только что созданный элемент
//Заполняем элемент всеми необходимыми значениями
$element->setIsActive();
$element->setValue("h1", $h1);
...
...
if($data_module = $cmsController->getModule("data")) {
$data->saveEditedGroups($element_id); //Сохраняем все данные, полученные из динамических форм,
построенных по типу данных
}
$element->commit(); //Подтверждаем внесенные изменения
...
$this->redirect($this->pre_lang . "/admin/mymod/tree");
//Все хорошо, переадресовываем пользователя на следующий экран
(список страниц в нашем случае).
}
...
?>