Пример #1
0
 public function proc_upd()
 {
     $obj = ormPages::get(system::POST('obj_id'));
     $obj->tabuList('pseudo_url', 'h1', 'keywords', 'title', 'description', 'active', 'is_home_page', 'view_in_menu', 'view_submenu', 'in_search', 'in_index', 'in_new_window', 'other_link', 'img_act', 'img_no_act', 'img_h1');
     $obj->loadFromPost();
     // Публикация на сайте
     if (system::POST('publ', isBool)) {
         if ($obj->isInheritor('faq') && $obj->newVal('answer') == '') {
             ui::MessageBox(lang::get('TEXT_MESSAGE_ERROR'), lang::get('FEEDBACK_MSG_3'));
             ui::selectErrorFields(array('select' => '', 'focus' => 'answer'));
         } else {
             $obj->active = 1;
         }
     }
     $obj_id = $obj->save();
     // Если объект не сохранился, выводим пользователю текст ошибки.
     if ($obj_id === false) {
         system::savePostToSession();
         ui::MessageBox(lang::get('TEXT_MESSAGE_ERROR'), $obj->getErrorListText());
         ui::selectErrorFields($obj->getErrorFields());
         system::redirect('/feedback/message_upd/' . $_POST['obj_id']);
     }
     if (system::POST('send_to_email', isBool) && !$obj->send_answer_to_user && ($form_obj = ormObjects::get($obj->form_id))) {
         if ($form_obj->send_answer) {
             if ($obj->answer != '') {
                 $fields = $obj->getClass()->loadFields();
                 while (list($num, $field) = each($fields)) {
                     if (!empty($field['f_sname'])) {
                         page::assign($field['f_sname'], $obj->__get($field['f_sname']));
                     }
                 }
                 page::assign('site_name', domains::curDomain()->getSiteName());
                 page::assign('base_email', domains::curDomain()->getEmail());
                 $mail = new phpmailer();
                 $mail->From = $this->parse($form_obj->answer_sender_address);
                 $mail->FromName = $this->parse($form_obj->answer_sender_name);
                 $mail->AddAddress($obj->email);
                 $mail->WordWrap = 50;
                 $mail->IsHTML(true);
                 $mail->Subject = $this->parse($form_obj->answer_subject);
                 $mail->Body = $this->parse($form_obj->answer_template);
                 $mail->Send();
                 // Помечаем, что ответ отправлен
                 $obj->send_answer_to_user = 1;
                 $obj->save();
                 ui::MessageBox(lang::get('FEEDBACK_MSG_1'), '');
             } else {
                 ui::MessageBox(lang::get('TEXT_MESSAGE_ERROR'), lang::get('FEEDBACK_MSG_2'));
                 ui::selectErrorFields(array('select' => '', 'focus' => 'answer'));
             }
         }
     }
     // Если данные изменились корректно перенаправляем на соответствующию страницу
     if ($_POST['parram'] == 'apply') {
         system::redirect('/feedback/message_upd/' . $obj_id);
     } else {
         system::redirect('/feedback');
     }
 }
Пример #2
0
 public function proc()
 {
     $obj = user::getObject();
     // Если произошли ошибки, перенаправляем на главную страницу админки
     if (!$obj instanceof ormObject) {
         system::redirect('/');
     }
     // Присваиваем пришедшие значения полям в объекте
     $obj->tabuList('active', 'groups', 'login');
     $obj->loadFromPost();
     // Сохраняем изменения
     $obj_id = $obj->save();
     // Если объект не сохранился, выводим пользователю текст ошибки.
     if ($obj_id === false) {
         system::savePostToSession();
         ui::MessageBox(lang::get('TEXT_MESSAGE_ERROR'), $obj->getErrorListText());
         ui::selectErrorFields($obj->getErrorFields());
     }
     cache::delete('user' . $obj_id);
     system::redirect('/core/profile');
 }
Пример #3
0
 function proc_upd()
 {
     $mini_action = substr(system::action(), -3);
     if (system::action() == "proc_upd") {
         // Говорим какой объект нужно изменить
         if (!($obj = ormObjects::get(system::POST('obj_id'), 'eshop_delivery_method'))) {
             system::redirect('/eshop/delivery');
         }
     } else {
         if (system::action() == "proc_add") {
             // Говорим какой объект нужно создать
             $obj = new ormObject();
             $obj->setClass('eshop_delivery_method');
         }
     }
     // Если произошли ошибки, перенаправляем на главную страницу модуля
     if ($obj->issetErrors()) {
         system::redirect('/eshop/delivery');
     }
     // Присваиваем пришедшие значения полям в объекте
     $obj->loadFromPost();
     // Сохраняем изменения
     $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' ? '' : $_POST['obj_id'];
         system::redirect('/eshop/delivery_' . $mini_action . '/' . $class);
     }
     // Если данные изменились корректно перенаправляем на соответствующию страницу
     if ($_POST['parram'] == 'apply') {
         system::redirect('/eshop/delivery_upd/' . $obj_id);
     } else {
         system::redirect('/eshop/delivery');
     }
 }
Пример #4
0
 public function proc_upd()
 {
     $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('user_group');
         }
     }
     // Если произошли ошибки, перенаправляем на главную страницу модуля
     if (!$obj->isInheritor('user_group')) {
         system::redirect('/users');
     }
     // Присваиваем пришедшие значения полям в объекте
     $obj->loadFromPost($mini_action);
     // Сохраняем изменения
     $obj_id = $obj->save();
     // Если объект не сохранился, выводим пользователю текст ошибки.
     if ($obj_id === false) {
         system::savePostToSession();
         ui::MessageBox(lang::get('TEXT_MESSAGE_ERROR'), $obj->getErrorListText());
         system::redirect('/users/group_' . $mini_action . '/' . $_POST['obj_id']);
     } else {
         rights::setListForModuls($obj_id, 0);
     }
     // Если данные изменились корректно перенаправляем на соответствующию страницу
     if ($_POST['parram'] == 'apply') {
         system::redirect('/users/group_upd/' . $obj_id);
     } else {
         system::redirect('/users');
     }
 }
Пример #5
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());
         }
     }
Пример #6
0
 public function send_messageAction()
 {
     if ($form_obj = ormObjects::get(system::POST('form_id'))) {
         $issetErrors = false;
         $answer = array();
         // Проверка капчи
         if ($form_obj->captcha && !system::validCapcha('random_image')) {
             $issetErrors = true;
             $answer = array('field' => 'random_image', 'msg' => lang::get('FEEDBACK_ERROR1'));
         }
         // Если указанно куда, добавляем объект в БД
         if (($form_obj->any_sections || $form_obj->section) && !$issetErrors) {
             // Определяем раздел, в который будем добавлять отзыв
             if ($form_obj->any_sections) {
                 $section = system::POST('section_id', isInt);
             } else {
                 $section = $form_obj->section;
                 $section = !empty($section) ? $section[0] : 0;
             }
             // Создаем объект обратной связи
             $obj = new ormPage();
             $obj->setParent($section);
             $obj->setClass($form_obj->form_class);
             $obj->tabuList('pseudo_url', 'h1', 'keywords', 'title', 'description', 'answer', 'active', 'is_home_page', 'view_in_menu', 'view_submenu', 'in_search', 'in_index', 'in_new_window', 'other_link', 'img_act', 'img_no_act', 'img_h1');
             $obj->loadFromPost();
             $obj->active = 0;
             $obj->view_in_menu = 1;
             $obj->view_submenu = 1;
             $obj->in_search = 1;
             $obj->in_index = 1;
             $obj->is_home_page = 0;
             if ($obj->name != '') {
                 $obj->h1 = $obj->name;
                 $obj->title = $obj->name;
             }
             $obj->pseudo_url = rand(1000, 9999);
             $obj->template_id = ($sect = ormPages::get($form_obj->section)) ? $sect->template_id : 1;
             $obj->form_id = $form_obj->id;
             $obj->setRightForAll(2);
             $obj_id = $obj->save();
             if ($obj_id) {
                 $obj->pseudo_url = $obj_id;
                 $obj->save();
                 $obj = new ormPage($obj_id);
             } else {
                 $issetErrors = true;
                 $f = $obj->getErrorFields();
                 $answer = array('field' => $f['focus'], 'msg' => $obj->getErrorListText(' '));
             }
         }
         if (!$issetErrors) {
             // Отправка нужных писем
             page::assign('site_name', domains::curDomain()->getSiteName());
             page::assign('site_url', domains::curDomain()->getName());
             page::assign('base_email', domains::curDomain()->getEmail());
             while (list($key, $val) = each($_POST)) {
                 page::assign($key, system::checkVar($val, isText));
             }
             if (isset($obj)) {
                 $fields = $obj->getClass()->loadFields();
                 foreach ($fields as $field) {
                     if (in_array($field['f_type'], array(70, 75, 80, 85))) {
                         $fsname = $field['f_sname'];
                         $fvalue = $obj->{$fsname};
                         if ($fvalue != '') {
                             page::assign($fsname, $fvalue);
                         }
                     }
                 }
             }
             // Если указан список адресатов, отправляем письма
             if ($form_obj->mailing_list != '') {
                 $mail = new phpmailer();
                 $mail->From = $this->parse($form_obj->admin_sender_address);
                 $mail->FromName = $this->parse($form_obj->admin_sender_name);
                 /*
                                   if (!empty($this->files))
                 for($i = 0; $i < count($this->files); $i++)
                    $mail->AddAttachment($this->files[$i][0], $this->files[$i][1]);
                 */
                 $mail->AddAddress($form_obj->mailing_list);
                 $mail->WordWrap = 50;
                 $mail->IsHTML(true);
                 $mail->Subject = $this->parse($form_obj->admin_subject);
                 $mail->Body = $this->parse($form_obj->admin_template);
                 $mail->Send();
             }
             // Если нужно, отправляем уведомление пользователю
             if ($form_obj->send_notice && !$issetErrors) {
                 $mail = new phpmailer();
                 $mail->From = $this->parse($form_obj->notice_sender_address);
                 $mail->FromName = $this->parse($form_obj->notice_sender_name);
                 $mail->AddAddress(system::POST('email'));
                 $mail->WordWrap = 50;
                 $mail->IsHTML(true);
                 $mail->Subject = $this->parse($form_obj->notice_subject);
                 $mail->Body = $this->parse($form_obj->notice_template);
                 $mail->Send();
             }
             // Показываем результат
             if (system::isAjax()) {
                 if ($form_obj->msg != '') {
                     $text = $form_obj->msg;
                 } else {
                     $text = lang::get('FEEDBACK_MSG_1');
                 }
                 system::json(array('field' => 0, 'msg' => strip_tags($text)));
             } else {
                 system::redirect('/feedback/ok/' . $form_obj->id);
             }
         } else {
             // Произошли ошибки
             if (system::isAjax()) {
                 system::json($answer);
             } else {
                 system::savePostToSession();
                 system::saveErrorToSession('feedback', $answer);
                 if (empty($_POST['back_url'])) {
                     $_POST['back_url'] = '/structure/map';
                 }
                 system::redirect($_POST['back_url'], true);
             }
         }
         system::stop();
     } else {
         system::stop();
     }
 }
Пример #7
0
 /**
  * @return null
  * @param string $callback - Имя php-функции для обработки добавления/изменения объектов.
  * @desc Сохраняет все пришедшие данные. Метод используется обработчиком формы.
  */
 public function process($callback = '', $addit_parram = '')
 {
     if (isset($_POST['obj' . $this->form_name]) && isset($_POST['class_' . $this->form_name])) {
         $class = ormClasses::get($_POST['class_' . $this->form_name]);
         $mas = $class->loadFields();
         while (list($id, $fields) = each($_POST['obj' . $this->form_name])) {
             $keys = array_keys($fields);
             if (is_numeric($id)) {
                 $obj = ormObjects::get($id);
             } else {
                 if (!$this->without_add && !empty($fields[$keys[0]])) {
                     $obj = new ormObject();
                     $obj->setClass($class->getSName());
                 }
             }
             if (isset($obj) && $obj instanceof ormObject) {
                 if (!$this->without_del && isset($_POST['delete_' . $obj->id])) {
                     $obj->toTrash();
                 } else {
                     reset($mas);
                     while (list($key, $f_val) = each($mas)) {
                         if ($f_val['f_type'] > 89 && $f_val['f_type'] < 101 && $f_val['f_relation'] == 2 && isset($fields[$key])) {
                             // Справочник с типом "Выбор родителя"
                             $obj->clearParents();
                             $ps = $obj->getParents();
                             $parents = $fields[$key];
                             if (!empty($parents)) {
                                 if (is_numeric($parents) && !empty($parents)) {
                                     $pos = isset($ps[$parents]) ? $ps[$parents]['position'] : 0;
                                     $obj->setNewParent($parents, $pos);
                                 } else {
                                     if (is_array($parents)) {
                                         while (list($key, $val) = each($parents)) {
                                             if (!empty($val)) {
                                                 $pos = isset($ps[$val]) ? $ps[$val]['position'] : 0;
                                                 $obj->setNewParent($val, $pos);
                                             }
                                         }
                                     }
                                 }
                             }
                         } else {
                             if ($f_val['f_type'] == 50 && !isset($fields[$key])) {
                                 // Галочка
                                 $obj->__set($key, false);
                             } else {
                                 if (isset($fields[$key])) {
                                     // Дополнительная проверка для файловых полей
                                     if ($f_val['f_type'] > 69 && $f_val['f_type'] < 86) {
                                         if (!empty($_FILES['file_obj' . $this->form_name]['tmp_name'][$id][$key])) {
                                             // Создаем переменную обманку, чтобы объект сам обработал файл
                                             $file = array('name' => $_FILES['file_obj' . $this->form_name]['name'][$id][$key], 'type' => $_FILES['file_obj' . $this->form_name]['type'][$id][$key], 'tmp_name' => $_FILES['file_obj' . $this->form_name]['tmp_name'][$id][$key], 'error' => $_FILES['file_obj' . $this->form_name]['error'][$id][$key], 'size' => $_FILES['file_obj' . $this->form_name]['size'][$id][$key]);
                                             $_FILES['file_' . $key] = $file;
                                         }
                                     }
                                     $obj->__set($key, $fields[$key]);
                                 } else {
                                     if (!empty($fields[$key . '_date']) && isset($fields[$key . '_time'])) {
                                         $datetime = $fields[$key . '_date'] . ' ' . $fields[$key . '_time'] . ':00';
                                         $obj->__set($key, $datetime);
                                     }
                                 }
                             }
                         }
                     }
                     if (!empty($callback) && function_exists($callback)) {
                         $is_ok = call_user_func($callback, $obj, $addit_parram);
                     } else {
                         $is_ok = true;
                     }
                     if ($is_ok) {
                         $is_ok = $obj->save();
                     }
                     if ($is_ok === false) {
                         // echo $obj->getErrorListText();
                         system::savePostToSession();
                         ui::MessageBox(lang::get('TEXT_MESSAGE_ERROR'), $obj->getErrorListText());
                         //ui::selectErrorFields($obj->getErrorFields());
                     }
                     unset($obj);
                 }
             }
         }
     }
 }
Пример #8
0
 public function proc_upd()
 {
     $mini_action = substr(system::action(), -3);
     if (system::action() == "proc_upd") {
         // Говорим какой объект нужно изменить
         $obj = ormObjects::get(system::POST('obj_id'));
     } else {
         if (system::action() == "proc_add") {
             $class_name = 'user';
             $class = ormClasses::get($_POST['class_id']);
             if ($class instanceof ormClass && $class->isInheritor('user')) {
                 $class_name = $class->getSName();
             }
             // Говорим какой объект нужно создать
             $obj = new ormObject();
             $obj->setClass($class_name);
         }
     }
     // Если произошли ошибки, перенаправляем
     if ($obj->issetErrors()) {
         system::redirect('/users/userlist/' . $_POST['groups'][0]);
     }
     // Присваиваем полям в объекте пришедшие значения из POST
     $obj->loadFromPost($mini_action);
     if ($obj->newVal('active')) {
         $obj->error_passw = 0;
     }
     if ($obj->id == user::get('id')) {
         $obj->active = 1;
     }
     // Сохраняем изменения
     $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']) ? $_POST['groups'][0] : $_POST['obj_id'];
         system::redirect('/users/user_' . $mini_action . '/' . $obj_id);
     } else {
         rights::setListForModuls($obj_id, 1);
         cache::delete('user' . $obj_id);
     }
     // Если данные изменились корректно перенаправляем на соответствующию страницу
     if ($_POST['parram'] == 'apply') {
         system::redirect('/users/user_upd/' . $obj_id);
     } else {
         system::redirect('/users/userlist/' . $_POST['groups'][0]);
     }
 }
Пример #9
0
 public function proc_upd()
 {
     // Обработчик для еденичного изменения класса
     $mini_action = substr(system::action(), -3);
     if (system::action() == "proc_upd") {
         // Говорим какой объект нужно изменить
         $obj = ormObjects::get(system::POST('obj_id'));
         $parent_id = $obj->parent_id;
     } else {
         if (system::action() == "proc_add") {
             // Говорим какой объект нужно создать
             $obj = new ormObject();
             $obj->setClass('subscribe_msg');
             $obj->setParent(system::POST('obj_id'));
             $parent_id = system::POST('obj_id');
         }
     }
     // Если произошли ошибки, перенаправляем на главную страницу модуля
     if ($obj->issetErrors()) {
         system::redirect('/subscription');
     }
     // Присваиваем пришедшие значения полям в объекте
     $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']) ? '' : $_POST['obj_id'];
         system::redirect('/subscription/msg_' . $mini_action . '/' . $obj_id);
     }
     // Если данные изменились корректно перенаправляем на соответствующию страницу
     if ($_POST['parram'] == 'apply') {
         system::redirect('/subscription/msg_upd/' . $obj_id);
     } else {
         system::redirect('/subscription/msg/' . $parent_id);
     }
 }
Пример #10
0
 public function proc_upd()
 {
     $mini_action = substr(system::action(), -3);
     if (system::action() == "proc_upd") {
         // Говорим какой объект нужно изменить
         $obj = new ormObject(system::POST('obj_id'));
     } else {
         if (system::action() == "proc_add") {
             // Говорим какой объект нужно создать
             $obj = new ormObject();
             $obj->setClass('feedback_form');
         }
     }
     if ($obj->issetErrors()) {
         system::redirect('/feedback/settings');
     }
     $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());
         $class = $mini_action == 'add' ? '/' . system::POST('class_id') : '';
         system::redirect('/feedback/form_' . $mini_action . '/' . $_POST['obj_id']);
     }
     // Если данные изменились корректно перенаправляем на соответствующию страницу
     if ($_POST['parram'] == 'apply') {
         system::redirect('/feedback/form_upd/' . $obj_id);
     } else {
         system::redirect('/feedback/settings');
     }
 }
Пример #11
0
 public function proc_upd()
 {
     // Обработчик для еденичного изменения класса
     $mini_action = substr(system::action(), -3);
     if (system::action() == "proc_upd") {
         $obj = ormObjects::get(system::POST('obj_id'));
         $parent_id = $obj->parent_id;
     } else {
         if (system::action() == "proc_add") {
             $obj = new ormObject();
             $obj->setClass('subscribe_user');
             $parent_id = system::POST('obj_id');
         }
     }
     // Если произошли ошибки, перенаправляем на главную страницу модуля
     if ($obj->issetErrors()) {
         system::redirect('/subscription');
     }
     // Присваиваем пришедшие значения полям в объекте
     $obj->loadFromPost();
     // Сохраняем изменения
     $obj_id = $obj->save();
     if ($obj->issetErrors(29)) {
         // Если указанный e-mail уже существует, пытаемся найти его и подписать на рассылки.
         $sel = new ormSelect('subscribe_user');
         $sel->where('name', '=', system::POST('name', isString));
         $sel->limit(1);
         if ($obj = $sel->getObject()) {
             $obj->tabuList('subscribes');
             $obj->loadFromPost();
             reset($_POST['subscribes']);
             while (list($key, $val) = each($_POST['subscribes'])) {
                 $obj->setNewParent($val);
             }
             $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']) ? '' : $_POST['obj_id'];
         system::redirect('/subscription/user_' . $mini_action . '/' . $obj_id);
     }
     // Если данные изменились корректно перенаправляем на соответствующию страницу
     if ($_POST['parram'] == 'apply') {
         system::redirect('/subscription/user_upd/' . $obj_id);
     } else {
         system::redirect('/subscription/user/' . $parent_id);
     }
 }
Пример #12
0
 /**
  * @return null
  * @param string $change_funct - Имя php-функции для обработки добавления/изменения записей.
  * @param string $del_funct - Имя php-функции для обработки удаления записей.
  * @param string $addit_val - Дополнительный параметр передаваемый в функцию.
  * @desc Сохраняет все пришедшие данные. Метод используется обработчиком формы.
  */
 public function process($change_funct, $del_funct = '', $addit_val = '')
 {
     // print_r($_POST);
     if (isset($_POST['obj' . $this->form_name])) {
         while (list($id, $fields) = each($_POST['obj' . $this->form_name])) {
             $id = system::checkVar($id, isInt);
             if (!$this->without_del && isset($_POST['delete_' . $this->form_name . '_' . $id])) {
                 if (!empty($del_funct)) {
                     if (function_exists($del_funct)) {
                         call_user_func($del_funct, $id, $this->form_name, $addit_val);
                     } else {
                         trigger_error('Not found user function "' . $del_funct . '()"!', E_USER_ERROR);
                     }
                 }
             } else {
                 $check = false;
                 foreach ($fields as $val) {
                     if (!empty($val)) {
                         $check = true;
                     }
                 }
                 if ($check) {
                     if (function_exists($change_funct)) {
                         $is_ok = call_user_func($change_funct, $id, $fields, $this->form_name, $addit_val);
                     } else {
                         trigger_error('Not found user function "' . $change_funct . '()"!', E_USER_ERROR);
                     }
                     if (!$is_ok) {
                         system::savePostToSession();
                     }
                 }
             }
         }
     }
 }
Пример #13
0
 public function proc_upd()
 {
     if (system::action() == "proc_upd") {
         $class = new ormClass($_POST['obj_id']);
     } else {
         if (system::action() == "proc_add") {
             $class = new ormClass();
             $class->setParentId($_POST['obj_id']);
         }
     }
     $class->setName(system::POST('class_name'));
     $class->setSName(system::POST('sname'));
     $class->setSystem(system::POST('system'));
     $class->setIsList(system::POST('is_list'));
     if (isset($_POST['text'])) {
         $class->setPadej($_POST['text']);
     }
     if (isset($_POST['class_list'])) {
         $class->setBaseClass($_POST['class_list']);
     }
     $class_id = $class->save();
     if ($class_id === false) {
         $listError = '';
         $errors = $class->getErrorList();
         while (list($key, $text) = each($errors)) {
             $listError .= $text . '<br />';
         }
         system::savePostToSession();
         ui::MessageBox(lang::get('TEXT_MESSAGE_ERROR'), $listError);
         system::redirect('/constructor/class_' . substr(system::action(), -3) . '/' . $_POST['obj_id']);
     }
     if (isset($_POST['template_list1'])) {
         $class->setDefTemplate($_POST['template_list1'], 0);
     }
     if (isset($_POST['template_list2'])) {
         $class->setDefTemplate($_POST['template_list2'], 1);
     }
     if ($_POST['parram'] == 'apply') {
         system::redirect('/constructor/class_upd/' . $class_id);
     } else {
         system::redirect('/constructor/tree');
     }
 }
Пример #14
0
 public function edit_procAction()
 {
     if (user::isGuest()) {
         system::redirect('/users/add');
     }
     if (system::url(2) == 'del-photo') {
         $obj = user::getObject();
         $obj->avatara = '';
         $obj->save();
         if (!empty($_POST['back_url'])) {
             system::redirect($_POST['back_url'], true);
         } else {
             system::redirect('/users/edit');
         }
     }
     $obj = user::getObject();
     $obj->tabuList('def_modul', 'active', 'last_visit', 'last_ip', 'groups');
     $obj->loadFromPost();
     $obj->active = 1;
     if ($obj->save()) {
         cache::delete('user' . $obj->id);
         $answer = array('msg' => lang::get('USERS_CHANGE_MSG'), 'field' => '');
     } else {
         system::savePostToSession();
         $tmp = $obj->getErrorFields();
         $answer = array('msg' => $obj->getErrorListText(' '), 'field' => $tmp['focus']);
     }
     if (!system::isAjax()) {
         system::saveErrorToSession('edit_user', $answer);
         if (!empty($_POST['back_url'])) {
             system::redirect($_POST['back_url'], true);
         } else {
             system::redirect('/users/edit');
         }
     } else {
         system::json($answer);
     }
 }
Пример #15
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');
         }
     }
 }