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()); } } }
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'); } }
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; } }