예제 #1
0
 // обработчик изменения объекта
 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('/constructor');
         }
         $form->process();
         if ($_POST['parram'] == 'apply') {
             system::redirect('/constructor/list/' . $class->id());
         } else {
             system::redirect('/constructor');
         }
     } 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('/constructor/list/' . 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('/constructor/list_' . $mini_action . '/' . $obj_id);
         }
         // Если данные изменились корректно перенаправляем на соответствующию страницу
         if ($_POST['parram'] == 'apply') {
             system::redirect('/constructor/list_upd/' . $obj_id);
         } else {
             system::redirect('/constructor/list/' . $obj->getClass()->id());
         }
     }
예제 #2
0
    /**
    * @return null
    * @param ormObject $obj -  ORM-Объект информация о котором заносится в журнал
    * @param string $text -  Текст сообщения
    * @param const $state -  Статус сообщения, используйте одну из контант:
    		info	-	В порядке информации
    		error	-	Ошибка
    		warning	-	Предупреждение
    * @param string $type -  Тип записи (для системных нужд, использовать не рекомендуется)
    		0 - обычная,
    		1 - информаци о помещении объекта в корзину
    * @desc Функция реализует добавление событий об изменение ORM-объектов в базу данных
    */
    static function revue(ormObject $obj, $text, $state = error, $type = 0)
    {
        $state = system::checkVar($state, isInt);
        $type = system::checkVar($type, isInt);
        $text = system::checkVar($text, isString);
        db::q('INSERT INTO <<revue>>
 			   SET rev_state = "' . $state . '",
 				   rev_type = "' . $type . '",
 				   rev_obj_id = "' . $obj->id . '",
 				   rev_class_id = "' . $obj->getClass()->id() . '",
 				   rev_user_id = "' . user::get('id') . '",
 				   rev_user = "******",
 				   rev_datetime = "' . date('Y-m-d H:i:s') . '",
 				   rev_message = "' . $text . '",
 				   rev_ip = "' . $_SERVER['REMOTE_ADDR'] . '";');
    }
예제 #3
0
 public function upd()
 {
     // Указываем для какого объекта строить форму
     if (system::action() == "upd") {
         // Если это редактирование
         $obj = ormObjects::get(system::url(2));
         // Заголовок страницы
         ui::setNaviBar(lang::get('TEXT_EDIT') . $obj->getClass()->getPadej(1));
         ui::setHeader($obj->login);
         $class_list = '';
         $group_id = system::issetUrl(3) ? system::url(3) : $obj->getParentId();
         $right = 'user_proc_upd';
     } else {
         if (system::action() == "add") {
             $class_name = system::issetUrl(3) ? system::url(3) : 'user';
             // Если это добавление нового объекта
             $group_id = system::url(2);
             $right = 'user_proc_add';
             $obj = new ormObject();
             $obj->setParent($group_id);
             $obj->setClass($class_name);
             $obj->active = 1;
             // Формируем список классов для быстрого изменения класса объекта
             $types = ormClasses::get('user')->getAllInheritors();
             $class_list = '';
             while (list($id, $name) = each($types)) {
                 if ($bc = ormClasses::get($id)) {
                     $url = system::au() . '/users/user_add/' . $group_id . '/' . $bc->getSName();
                     $class_list .= '<a href="' . $url . '" style="line-height:17px;">' . $bc->getName() . '</a><br />';
                 }
             }
             // Заголовок страницы
             if ($group = ormObjects::get($group_id)) {
                 ui::setNaviBar($group->name, '/users/userlist/' . $group_id);
                 ui::setHeader(lang::get('TEXT_ADD') . $obj->getClass()->getPadej(1));
             }
         }
     }
     // Если произошли ошибки, перенаправляем на главную страницу модуля
     if (!$obj->isInheritor('user')) {
         system::redirect('/users/userlist');
     }
     // Устанавливаем кнопки для формы
     if (empty($group_id)) {
         ui::setCancelButton('/users/grouplist');
     } else {
         ui::setCancelButton('/users/userlist/' . $group_id);
     }
     ui::newButton(lang::get('BTN_SAVE'), "javascript:sendForm('save');");
     ui::newButton(lang::get('BTN_APPLY'), "javascript:sendForm('apply');");
     // Создаем форму и выводим ее на страницу
     $form = new ormEditForm($obj, $right);
     $form->setORMList($class_list);
     // Изменяем вид поля "Модуль по умолчанию"
     $modules = user::getModulesForObject($obj);
     $form->replaceField('def_modul', ui::SelectBox('def_modul', $modules, $obj->def_modul, 400));
     // Добавляем вкладку "Права доступа"
     $tab_content = '<div style="margin-left:20px;width: 950px;">' . lang::get('USERS_TEXT_RIGHT_HINT') . rights::getListForModuls($obj->id, 1) . '</div>';
     $form->attachJavaScript('/css_mpanel/users_upd.js');
     $form->newTabs(lang::get('USERS_TABS_RIGHT'), $tab_content);
     return $form->getHTML();
 }
예제 #4
0
 /**
  * @return Результат выполнения
  * @param ormObject $obj - Экзепляр ormObject
  * @param string $field - Имя обрабатываемого поля
  * @param integer $field_type - Тип ORM-поля
  * @param string $value - Значение для обработки
  * @param string $function - PHP-функция для обработки значения, если есть
  * @desc Обрабатываем значение
  */
 protected function processValue($obj, $field, $field_type, $value, $function)
 {
     // Получаем данные класса
     if ($field == 'class_id') {
         $value = $obj->getClass()->id();
     } elseif ($field == 'class') {
         $value = $obj->getClass()->getSName();
     } elseif ($field == 'class_name') {
         $value = $obj->getClass()->getName();
     }
     // Обрабатываем значение
     if (!empty($function)) {
         $value = $this->exeFunction($value, $obj, $function);
     } else {
         if ($field == 'parents') {
             // Получаем список родителей
             $value = $this->viewParents($value, $obj);
         } else {
             if ($field == 'children') {
                 // Получаем список подобъектов
                 $value = $this->viewChildren($value, $obj);
             } else {
                 if (!empty($field_type)) {
                     if ($field_type == 20) {
                         $value = $this->viewUrl($value, $obj);
                     } else {
                         if ($field_type == 25) {
                             $value = $this->viewDate($value, $obj);
                         } else {
                             if ($field_type == 30) {
                                 $value = $this->viewTime($value, $obj);
                             } else {
                                 if ($field_type == 32) {
                                     $value = $this->viewDateTime($value, $obj);
                                 } else {
                                     if ($field_type == 50) {
                                         $value = $this->viewBool($value, $obj);
                                     } else {
                                         if ($field_type == 70 || $field_type == 80 || $field_type == 85) {
                                             $value = $this->viewFile($value, $obj);
                                         } else {
                                             if ($field_type == 73) {
                                                 $value = $this->viewFiles($value, $obj);
                                             } else {
                                                 if ($field_type == 75) {
                                                     $value = $this->viewImage($value, $obj);
                                                 } else {
                                                     if ($field_type == 90) {
                                                         $value = $this->viewList($value, $obj);
                                                     } else {
                                                         if ($field_type == 95) {
                                                             $value = $this->viewListMore($value, $obj);
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     return $value;
 }