예제 #1
0
파일: __val.php 프로젝트: sunfun/Bagira.CMS
 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());
         }
     }
 }
예제 #2
0
 function proc_view()
 {
     // Говорим какой объект нужно изменить
     if (!($obj = ormObjects::get(system::POST('obj_id'), 'eshop_order'))) {
         system::redirect('/eshop/list');
     }
     $order = new eShopOrder($obj);
     $order->setState(system::POST('state', isInt));
     $order->is_payment = system::POST('is_payment', isBool);
     if (system::POST('is_payment', isBool)) {
         $order->payment_date = date('Y-m-d H:i:s');
     }
     $order->delivery_name = system::POST('delivery_name', isString);
     $order->delivery_surname = system::POST('delivery_surname', isString);
     $order->delivery_phone = system::POST('delivery_phone', isString);
     $order->delivery_address = system::POST('delivery_address', isText);
     $order->delivery_notice = system::POST('delivery_notice', isText);
     $order->notice = system::POST('notice', isText);
     $form = new ormMultiForm('goods');
     $form->withoutAdditions();
     $form->process();
     // Сохраняем изменения
     $obj_id = $order->save();
     // Если объект не сохранился, выводим пользователю текст ошибки.
     if ($obj_id === false) {
         //system::savePostToSession();
         ui::MessageBox(lang::get('TEXT_MESSAGE_ERROR'), $obj->getErrorListText());
         ui::selectErrorFields($obj->getErrorFields());
         system::redirect('/eshop/order_view/' . system::POST('obj_id'));
     }
     // Если данные изменились корректно перенаправляем на соответствующию страницу
     if ($_POST['parram'] == 'apply') {
         system::redirect('/eshop/order_view/' . $obj_id);
     } else {
         system::redirect('/eshop/list');
     }
 }
예제 #3
0
    protected function createObject()
    {
        // Проверяем обязательность полей
        reset($this->fields);
        while (list($fname, $field) = each($this->fields)) {
            if ($field['f_required'] && $field['f_relation'] == 2) {
                if (empty($this->new_parents) && !$this->issetParents()) {
                    $this->newError(40, 'Поле "' . $field['f_name'] . '" обязательно для заполнения!', $fname);
                }
            } else {
                if (($field['f_type'] == 40 || $field['f_type'] == 45) && isset($this->new_prop[$fname]) && empty($this->new_prop[$fname])) {
                    $this->new_prop[$fname] = 0;
                } else {
                    if ($field['f_required'] && empty($this->new_prop[$fname]) && (empty($this->cur_prop[$fname]) || isset($this->new_prop[$fname]))) {
                        $this->newError(40, 'Поле "' . $field['f_name'] . '" обязательно для заполнения!', $fname);
                    }
                }
            }
        }
        if ($this->issetErrors() > 0) {
            return false;
        }
        // Основные характеристики объекта
        $sql = 'INSERT INTO <<objects>>
					SET o_class_id = "' . $this->class->id() . '",
						o_name = "' . $this->name . '",
						o_change_date = "' . date('Y-m-d H:i:s') . '",
						o_create_date = "' . date('Y-m-d H:i:s') . '";';
        $this->id = db::q($sql);
        if ($this->id === false) {
            $this->newError(42, 'Ошибка в SQL запросе, при добавлении объекта!');
            return false;
        }
        // Изменяем данные объекта
        $fields = '';
        if (!empty($this->new_prop)) {
            while (list($key, $value) = each($this->new_prop)) {
                if (!$this->isPageField($key) && $key != 'name') {
                    if ($this->fields[$key]['f_type'] != 105) {
                        $fields .= $this->procValue($key, $value);
                    } else {
                        tags::changeTags($value, $this->id);
                    }
                }
            }
        }
        $fields = substr($fields, 0, strlen($fields) - 2);
        if (!empty($fields)) {
            $fields = ', ' . $fields;
        }
        $sql = 'INSERT INTO  <<__' . $this->class->getSName() . '>>
					SET obj_id = "' . $this->id . '"' . $fields . ';';
        if (db::q($sql) !== false) {
            /*
                    if (!empty($this->new_prop))
            while (list($key, $value) = each ($this->new_prop))
                $this->procValue($key, $value);
            */
            while (list($key, $field_id) = each($this->subject)) {
                $form = new ormMultiForm('subject_list_' . $field_id);
                $form->process('save_subject', $this->id);
            }
            $this->next_prinud = true;
            $this->changeParents(false);
            return $this->id;
        } else {
            $this->newError(42, 'Ошибка в SQL запросе, при добавлении данных объекта!');
            return false;
        }
    }