Ejemplo n.º 1
0
 public function proc_upd()
 {
     $mini_action = substr(system::action(), -3);
     $this->createTemplate('template_id');
     $this->createTemplate('template2_id');
     if (system::action() == "proc_upd") {
         // Говорим какой объект нужно изменить
         $obj = new ormPage(system::POST('obj_id'));
     } else {
         if (system::action() == "proc_add") {
             // Говорим какой объект нужно создать
             $obj = new ormPage();
             $obj->setClass(system::POST('class_id'));
             $obj->setParent(system::POST('obj_id'));
         }
     }
     // Если произошли ошибки, перенаправляем на главную страницу модуля
     if ($obj->issetErrors()) {
         system::redirect('/structure/tree');
     }
     // Присваиваем пришедшие значения полям в объекте
     $obj->loadFromPost($mini_action);
     rights::setListForObject($obj);
     // Сохраняем изменения
     $obj_id = $obj->save();
     // Если объект не сохранился, выводим пользователю текст ошибки.
     if ($obj_id === false) {
         system::savePostToSession();
         ui::MessageBox(lang::get('TEXT_MESSAGE_ERROR'), $obj->getErrorListText());
         ui::selectErrorFields($obj->getErrorFields());
         $class = $mini_action == 'add' ? '/' . system::POST('class_id') : '';
         system::redirect('/structure/page_' . $mini_action . '/' . $_POST['obj_id'] . $class);
     } else {
         // Присваиваем выбранные шаблоны для всех вложенных объектов, если выбрано.
         if (system::POST('template_id_all', isBool)) {
             $this->inheritTemplate($_POST['template_id'], false, $obj_id);
         }
         if (system::POST('template2_id_all', isBool)) {
             $this->inheritTemplate($_POST['template2_id'], true, $obj_id);
         }
     }
     // Если данные изменились корректно перенаправляем на соответствующию страницу
     if ($_POST['parram'] == 'apply') {
         system::redirect('/structure/page_upd/' . $obj_id);
     } else {
         if (isset($_SESSION['STRUCTURE_LIST_FLAG']) && $_SESSION['STRUCTURE_LIST_FLAG']) {
             system::redirect('/structure/list/' . $obj->getParentId());
         } else {
             system::redirect('/structure/tree');
         }
     }
 }