コード例 #1
0
ファイル: __user.php プロジェクト: sunfun/Bagira.CMS
 public function upd()
 {
     // Указываем для какого объекта строить форму
     if (system::action() == "upd") {
         // Если это редактирование
         if (!($obj = ormObjects::get(system::url(2)))) {
             system::redirect('/subscription');
         }
         $parent_id = $obj->parent_id;
         $right = 'user_proc_upd';
     } else {
         if (system::action() == "add") {
             // Если это добавление нового объекта
             $parent_id = system::url(2);
             $right = 'user_proc_add';
             $obj = new ormObject();
             $obj->setClass('subscribe_user');
             $obj->setParent($parent_id);
         }
     }
     // Если произошли ошибки, перенаправляем на главную страницу модуля
     if ($obj->issetErrors()) {
         system::redirect('/subscription');
     }
     // Устанавливаем кнопки для формы
     ui::setCancelButton('/subscription/user/' . $parent_id);
     ui::newButton(lang::get('BTN_SAVE'), "javascript:sendForm('save');");
     ui::newButton(lang::get('BTN_APPLY'), "javascript:sendForm('apply');");
     // Создаем форму и выводим ее на страницу
     $form = new ormEditForm($obj, $right);
     if (($user = ormObjects::get($obj->user_id)) && user::issetRight('user_upd', 'users')) {
         $un = $user->surname . ' ' . $user->name . ' (' . $user->login . ')';
         $form->replaceField('user_id', '<a href="' . system::au() . '/users/user_upd/' . $user->id . '">' . $un . '</a>');
     } else {
         $form->replaceField('user_id', '', true);
     }
     return $form->getHTML();
 }
コード例 #2
0
ファイル: __group.php プロジェクト: sunfun/Bagira.CMS
 public function upd()
 {
     // Указываем для какого объекта строить форму
     if (system::action() == "upd") {
         // Если это редактирование
         $obj = ormObjects::get(system::url(2));
         // Заголовок страницы
         ui::setNaviBar(lang::right('group_upd'));
         ui::setHeader($obj->name);
         $right = 'group_proc_upd';
     } else {
         if (system::action() == "add") {
             // Если это добавление нового объекта
             $obj = new ormObject();
             $obj->setParent(0);
             $obj->setClass('user_group');
             // Устанавливает параметры по умолчанию
             $obj->active = 1;
             $right = 'group_proc_add';
         }
     }
     // Если произошли ошибки, перенаправляем на главную страницу модуля
     if (!$obj->isInheritor('user_group')) {
         system::redirect('/users');
     }
     // Устанавливаем кнопки для формы
     ui::setCancelButton('/users/grouplist');
     ui::newButton(lang::get('BTN_SAVE'), "javascript:sendForm('save');");
     ui::newButton(lang::get('BTN_APPLY'), "javascript:sendForm('apply');");
     // Создаем форму и выводим ее на страницу
     $form = new ormEditForm($obj, $right);
     $form->attachJavaScript('/css_mpanel/group_upd.js');
     $form->addInBottomTabs('base', rights::getListForModuls(system::url(2), 0));
     // Здесь можно переопределить стандартные параметры формы редактирования
     // ...
     return $form->getHTML();
 }
コード例 #3
0
ファイル: __user.php プロジェクト: sunfun/Bagira.CMS
 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
ファイル: user.php プロジェクト: sunfun/Bagira.CMS
 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;
     }
 }
コード例 #5
0
ファイル: __msg.php プロジェクト: sunfun/Bagira.CMS
 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);
     }
 }
コード例 #6
0
ファイル: eShopOrder.php プロジェクト: sunfun/Bagira.CMS
 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;
 }
コード例 #7
0
ファイル: controller.php プロジェクト: sunfun/Bagira.CMS
 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);
     }
 }