Example #1
0
 public function restore()
 {
     if (system::issetUrl(2) && is_numeric(system::url(2))) {
         // Одиночное востановление
         $obj = new ormObject(system::url(2));
         if ($obj->isInheritor('section')) {
             $obj = new ormPage(system::url(2));
         }
         $obj->restore();
         echo 'delete';
     } else {
         if (isset($_POST['objects'])) {
             // Множественное востановление
             while (list($id, $val) = each($_POST['objects'])) {
                 if (is_numeric($id)) {
                     $obj = new ormObject($id);
                     if ($obj->isInheritor('section')) {
                         $obj = new ormPage($id);
                     }
                     $obj->restore();
                 }
             }
             echo 'delete';
         }
     }
     ormPages::clearCache();
     system::stop();
 }
Example #2
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('/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 static function get($obj_id, $filter_class = '')
 {
     if (!empty($obj_id)) {
         $obj = false;
         if (!is_array($obj_id)) {
             $id = system::checkVar($obj_id, isInt);
         }
         if (!is_array($obj_id) && self::isLoad($id)) {
             // Подгружаем использованный ранее объект
             $obj = self::$objects[$id];
         } else {
             if (is_array($obj_id)) {
                 // Подгрузка данных объекта через массив
                 if (isset($obj_id['o_id']) && self::isLoad($obj_id['o_id'])) {
                     $obj = self::$objects[$obj_id['o_id']];
                     $obj->supplementData($obj_id);
                 } else {
                     $obj = new ormObject($obj_id);
                     if ($obj->id == 0) {
                         $obj = false;
                     } else {
                         self::$objects[$obj->id] = $obj;
                     }
                 }
             } else {
                 if (!empty($id)) {
                     // Загрузка данных объекта из БД
                     $obj = new ormObject($id);
                     if ($obj->issetErrors() || $obj->id != $id) {
                         $obj = false;
                     } else {
                         self::$objects[$id] = $obj;
                     }
                 }
             }
         }
         if ($obj instanceof ormObject && !$obj->inTrash()) {
             if (empty($filter_class) || $obj->isInheritor($filter_class)) {
                 return $obj;
             }
         }
     }
 }
Example #4
0
 function proc_upd()
 {
     $mini_action = substr(system::action(), -3);
     if (system::action() == "proc_upd") {
         // Говорим какой объект нужно изменить
         if (!($obj = ormObjects::get(system::POST('obj_id'), 'eshop_status'))) {
             system::redirect('/eshop/state');
         }
     } else {
         if (system::action() == "proc_add") {
             // Говорим какой объект нужно создать
             $obj = new ormObject();
             $obj->setClass('eshop_status');
         }
     }
     // Если произошли ошибки, перенаправляем на главную страницу модуля
     if ($obj->issetErrors()) {
         system::redirect('/eshop/state');
     }
     // Присваиваем пришедшие значения полям в объекте
     $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/state_' . $mini_action . '/' . $class);
     }
     // Если данные изменились корректно перенаправляем на соответствующию страницу
     if ($_POST['parram'] == 'apply') {
         system::redirect('/eshop/state_upd/' . $obj_id);
     } else {
         system::redirect('/eshop/state');
     }
 }
Example #5
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');
     }
 }
Example #6
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);
                 }
             }
         }
     }
 }
Example #7
0
 public function add_procAction()
 {
     $answer = array();
     if (!reg::getKey('/users/reg')) {
         system::redirect('/');
     }
     if (!user::isGuest()) {
         system::redirect('/users/edit');
     }
     // Проверка капчи
     if (!system::validCapcha('random_image')) {
         $answer = array('msg' => lang::get('SITE_CAPHCA'), 'field' => 'captcha');
     }
     // Проверка согласия с условиями оферты
     if (reg::getKey('/users/confirm') && !system::POST('confirm', isBool)) {
         $answer = array('msg' => lang::get('USERS_COMFIRM'), 'field' => 'confirm');
     }
     // Добавляем объект
     if (empty($answer)) {
         $obj = new ormObject();
         $obj->setParent(41);
         // Устанавливаем группу "Пользователи сайта"
         $obj->setClass('user');
         $obj->tabuList('def_modul', 'active', 'last_visit', 'last_ip', 'groups');
         $obj->loadFromPost();
         $obj->active = 1;
         $obj->email = $obj->newVal('login');
         $max_tickets = reg::getKey('/booking/max_tickets');
         $obj->place_limit = $max_tickets == '' || $max_tickets == 0 ? 6 : $max_tickets;
         if ($obj->save()) {
             if (reg::getKey('/users/activation')) {
                 // Регистрация с проверкой
                 // Формируем временный ключ активации пользователя
                 $key = md5(date('d.m.Y') . 'activate' . $obj->id);
                 $obj->md5_flag = $key;
                 $obj->active = 0;
                 $obj->save();
                 // Отправляем письмо
                 $url_pre = 'http://' . domains::curDomain()->getName() . languages::pre();
                 page::assign('url', $url_pre . '/users/activate/' . $key);
                 page::assign('passw', system::POST('password'));
                 page::assign('login', $obj->login);
                 page::assign('name', $obj->name);
                 system::sendMail('/users/mails/activate.tpl', $obj->email);
                 $_SESSION['user_email'] = $obj->login;
             } else {
                 // Регистрация без проверки
                 // Отправляем письмо
                 page::assign('passw', system::POST('password'));
                 page::assign('login', $obj->login);
                 page::assign('name', $obj->name);
                 system::sendMail('/users/mails/registration.tpl', $obj->email);
                 // Автоматическая авторизация
                 user::authHim($obj);
             }
             // Все хорошо. Пользователь добавлен.
             if (system::isAjax()) {
                 system::json(array('ok' => 1));
             } else {
                 system::redirect('/users/ok');
             }
         } else {
             // Произошли ошибки
             if ($obj->issetErrors(32)) {
                 $answer = array('msg' => lang::get('USERS_ISSET'), 'field' => 'login');
             } else {
                 $tmp = $obj->getErrorFields();
                 $answer = array('msg' => $obj->getErrorListText(' '), 'field' => $tmp['focus']);
             }
         }
     }
     if (!system::isAjax()) {
         system::savePostToSession();
         system::saveErrorToSession('add_user', $answer);
         if (!empty($_POST['back_url'])) {
             system::redirect($_POST['back_url'], true);
         } else {
             system::redirect('/users/add');
         }
     } else {
         system::json($answer);
     }
 }
Example #8
0
 public function copy($with_child = true, $copyTo = 0)
 {
     if (!empty($this->id)) {
         $copy = new ormObject();
         $copy->setClass($this->getClass()->id());
         // Перенос данных полей
         $fields = $this->getClass()->loadFields();
         while (list($fname, $field) = each($fields)) {
             if (!empty($field['f_type']) && $field['f_type'] != 97 && $field['f_relation'] < 2) {
                 $copy->__set($fname, $this->__get($fname));
             }
         }
         if (empty($copyTo)) {
             $copy->__set('name', $this->__get('name') . lang::get('copy'));
         }
         // Устанавливаем родителя
         if (empty($copyTo)) {
             $parents = $this->getParents();
             while (list($id, $parent) = each($parents)) {
                 $copy->setNewParent($id);
             }
         } else {
             $copy->setNewParent($copyTo);
         }
         $copy->save();
         if (!$copy->issetErrors() && $with_child) {
             while ($child = $this->getChild()) {
                 $child->copy(true, $copy->id);
             }
             return true;
         } else {
             if ($copy->issetErrors()) {
                 return false;
             }
         }
     }
 }
Example #9
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]);
     }
 }
Example #10
0
 private static function createUserForSocial($user_info)
 {
     if (!empty($user_info['login']) && !empty($user_info['first_name'])) {
         $obj = new ormObject();
         $obj->setParent(41);
         // Устанавливаем группу "Пользователи сайта"
         $obj->setClass('user');
         $obj->active = 1;
         $obj->login = $user_info['login'];
         $obj->name = $user_info['first_name'];
         $obj->surname = $user_info['last_name'];
         $obj->social_identity = $user_info['identity'];
         $obj->social_type = $user_info['social_type'];
         $max_tickets = reg::getKey('/booking/max_tickets');
         $obj->place_limit = $max_tickets == '' || $max_tickets == 0 ? 6 : $max_tickets;
         if (!empty($user_info['photo'])) {
             $obj->avatara = $user_info['photo'];
         }
         $obj->password = rand(100000, 999999);
         if (!empty($user_info['email'])) {
             $obj->email = $user_info['email'];
         } else {
             $md5 = substr(md5($user_info['login'] . $user_info['social'] . rand(10, 99)), 0, 15);
             $obj->email = $md5 . '@' . domains::curDomain()->getName();
         }
         if ($obj->save()) {
             unset($_SESSION['SOCIAL_AUTH_USER_INFO']);
         }
         return $obj;
     }
 }
Example #11
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'] . '";');
    }
Example #12
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);
     }
 }
Example #13
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');
     }
 }
Example #14
0
    public function restore()
    {
        $restore = parent::restore();
        if ($restore) {
            $parent_id = $this->getParentId();
            $s = empty($this->id) ? '' : 'p_obj_id <> "' . $this->id . '" and ';
            $s .= empty($parent_id) ? 'r_parent_id is NULL' : 'r_parent_id = "' . $parent_id . '"';
            $sql = 'SELECT count(p_obj_id) FROM <<pages>>, <<objects>>, <<rels>>
							WHERE pseudo_url = "' . $this->__get('pseudo_url') . '" and
								  lang_id = "' . languages::curId() . '" and
								  domain_id = "' . domains::curId() . '" and
								  r_children_id = p_obj_id and ' . $s . ' and
								  o_id = p_obj_id and
								  o_to_trash = 0;';
            $count = db::q($sql, value);
            if ($count > 0) {
                $pseudo_url = $this->__get('pseudo_url') . rand(100, 999);
                db::q('UPDATE <<pages>>
                      SET pseudo_url="' . $pseudo_url . '"
                      WHERE p_obj_id = "' . $this->id . '";');
                return true;
            }
        }
        return false;
    }
Example #15
0
 static function addEmail($email, $subscriptions, $copyUserData = false)
 {
     $email = system::checkVar($email, isEmail);
     if (!empty($email) && !empty($subscriptions)) {
         $obj = new ormObject();
         $obj->setClass('subscribe_user');
         $obj->name = $email;
         if (!user::isGuest() && $copyUserData) {
             $obj->second_name = user::get('surname');
             $obj->first_name = user::get('name');
             $obj->user_id = user::get('id');
         }
         // Указываем на какие подписки подписать
         while (list($key, $val) = each($subscriptions)) {
             $obj->setNewParent($val);
         }
         // Сохраняем изменения
         $sid = $obj->save();
         if ($obj->issetErrors(29)) {
             // Если указанный e-mail уже существует, пытаемся найти его и подписать на рассылки.
             $sel = new ormSelect('subscribe_user');
             $sel->where('name', '=', $email);
             $sel->limit(1);
             if ($obj = $sel->getObject()) {
                 if (!user::isGuest() && $copyUserData) {
                     $obj->second_name = user::get('surname');
                     $obj->first_name = user::get('name');
                     $obj->user_id = user::get('id');
                 }
                 reset($subscriptions);
                 while (list($key, $val) = each($subscriptions)) {
                     $obj->setNewParent($val);
                 }
                 $sid = $obj->save();
             }
         }
         return $sid;
     }
 }
Example #16
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;
 }
Example #17
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);
     }
 }
Example #18
0
 public function save()
 {
     if (basket::getCount() > 0) {
         $order_id = $this->obj->save();
         if ($order_id) {
             // Заказ сохранен добавляем в него товары
             $goods_list = basket::getGoodsData();
             while (list($id, $goods) = each($goods_list)) {
                 $obj = new ormObject();
                 $obj->setClass('eshop_goods');
                 $obj->setParent($order_id);
                 $obj->goods_id = $goods['goods_id'];
                 $obj->count = $goods['count'];
                 $obj->cost = $goods['cost'];
                 $obj->save();
             }
             // Если нужно, отправляем сообщение для текущего статуса
             $this->sendStateMsg();
             basket::clear();
             return $order_id;
         } else {
             //echo $this->obj->getErrorListText();
             // Произошла ошибка
         }
     } else {
         if (!empty($this->obj)) {
             // Изменяем данные заказа
             $order_id = $this->obj->save();
             if ($order_id) {
                 // Если нужно, отправляем сообщение для текущего статуса
                 $this->sendStateMsg();
                 return $order_id;
             } else {
                 //echo $this->obj->getErrorListText();
                 // Произошла ошибка
             }
         } else {
             // Корзина путая, создать новый заказ не возможно
         }
     }
     return false;
 }