public function proc_upd() { if (isset($_POST['objchange'])) { // Обработчик мультиформы $form = new ormMultiForm('change'); $class = ormClasses::get($form->getParam(0)); if (!$class->isInheritor('handbook') || $class->getSName() == 'handbook') { system::redirect('/reference'); } if (!user::issetRight('val_add')) { $form->withoutAdditions(); } if (!user::issetRight('val_del')) { $form->withoutRemoving(); } $form->process(); if ($_POST['parram'] == 'apply') { system::redirect('/reference/values/' . $class->id()); } else { system::redirect('/reference'); } } else { // Обработчик для еденичного изменения класса $mini_action = substr(system::action(), -3); if (system::action() == "proc_upd") { // Говорим какой объект нужно изменить $obj = ormObjects::get(system::POST('obj_id')); } else { if (system::action() == "proc_add") { // Говорим какой объект нужно создать $obj = new ormObject(); $obj->setClass(system::POST('class_id')); } } // Если произошли ошибки, перенаправляем на главную страницу модуля if ($obj->issetErrors()) { system::redirect('/reference/values/' . system::POST('class_id')); } // Присваиваем пришедшие значения полям в объекте $obj->loadFromPost($mini_action); // Сохраняем изменения $obj_id = $obj->save(); // Если объект не сохранился, выводим пользователю текст ошибки. if ($obj_id === false) { system::savePostToSession(); ui::MessageBox(lang::get('TEXT_MESSAGE_ERROR'), $obj->getErrorListText()); ui::selectErrorFields($obj->getErrorFields()); $obj_id = empty($_POST['obj_id']) ? system::POST('class_id') : system::POST('obj_id'); system::redirect('/reference/val_' . $mini_action . '/' . $obj_id); } // Если данные изменились корректно перенаправляем на соответствующию страницу if ($_POST['parram'] == 'apply') { system::redirect('/reference/val_upd/' . $obj_id); } else { system::redirect('/reference/values/' . $obj->getClass()->id()); } } }
public function defAction() { if (!system::issetUrl(2)) { system::redirect('/reference'); } if ($class = ormClasses::get(system::url(2))) { if (!$class->isInheritor('handbook') || $class->getSName() == 'handbook') { system::redirect('/reference'); } ui::setNaviBar(lang::right('values')); ui::setHeader($class->getName()); ui::setBackButton('/reference'); if (user::issetRight('val_upd')) { $count = 0; $fields = $class->loadFields(); foreach ($fields as $field) { if ($field['f_view'] == 1) { $count++; } } } else { $count = 4; } $sel = new ormSelect($class->getSName()); if ($count > 5) { ui::newButton(lang::get('BTN_NEW_LIST'), '/reference/val_add/' . system::url(2)); $table = new uiTable($sel); $table->showSearch(true); $table->addColumn('name', 'Имя объекта'); $table->addColumn('id', '#', 200); $table->defaultRight('val_upd'); $table->addRight('val_upd', 'edit', single); $table->addRight('val_del', 'drop', multi); return $table->getHTML(); } else { ui::newButton(lang::get('BTN_SAVE'), "javascript:sendForm('save');"); ui::newButton(lang::get('BTN_APPLY'), "javascript:sendForm('apply');"); $form = new ormMultiForm('change'); $form->setData($sel); $form->showColumnID(); $form->setRight('val_proc_upd'); $form->moreParam(system::url(2)); if (!user::issetRight('val_upd') || !user::issetRight('val_add')) { $form->withoutAdditions(); } if (!user::issetRight('val_del')) { $form->withoutRemoving(); } return $form->getHTML(); } } else { system::redirect('/reference'); } }