Esempio n. 1
0
 public function del()
 {
     if (system::issetUrl(2) && is_numeric(system::url(2))) {
         // Одиночное удаление
         $obj = new ormObject(system::url(2));
         $obj->delete();
         echo 'delete';
     } else {
         if (isset($_POST['objects'])) {
             // Множественное удаление
             while (list($id, $val) = each($_POST['objects'])) {
                 if (is_numeric($id)) {
                     $obj = new ormObject($id);
                     $obj->delete();
                 }
             }
             echo 'delete';
         } else {
             if (!system::issetUrl(2)) {
                 // Удаление всех объектов
                 $objects = ormObjects::getTrashObjects();
                 while (list($id, $val) = each($objects)) {
                     $obj = new ormObject($val['id']);
                     $obj->delete();
                 }
                 echo 'delete';
             }
         }
     }
     system::stop();
 }
Esempio n. 2
0
 public function defAction()
 {
     $count = ormObjects::getCountTrashObjects();
     $max_count = uiTable::getMaxCount();
     if (uiTable::getCurPage() != 1) {
         $niz = empty($start_pos) ? uiTable::getCurPage() * $max_count - $max_count : 0;
         $objects = ormObjects::getTrashObjects($niz, $max_count);
     } else {
         $objects = ormObjects::getTrashObjects($max_count);
     }
     if (user::issetRight('object_del') && !empty($objects)) {
         ui::newButton(lang::get('BTN_NEW_CLEAК_TRASH'), 'javascript:clearTrash();');
     }
     $table = new uiTable($objects, $count);
     $table->addColumn('name', lang::get('TRASH_TABLE_1'), 400);
     $table->addColumn('class', lang::get('TRASH_TABLE_2'));
     $table->addColumn('date', lang::get('TRASH_TABLE_3'), 0, false, false, 'viewDateTime');
     $table->addColumn('user', lang::get('TRASH_TABLE_4'), 200);
     $table->addRight('object_restore', 'restore', multi, 'restoreObj(this)', lang::get('TRASH_TABLE_RESTORE'));
     $table->addRight('object_del', 'drop', multi);
     $table->setDelMessage(lang::get('TRASH_DEL_TITLE'), lang::get('TRASH_DEL_MSG'));
     $table->setMultiDelMessage(lang::get('TRASH_DEL_TITLE2'), lang::get('TRASH_DEL_MSG2'));
     $table->emptyText(lang::get('TRASH_EMPTY_MSG'));
     $html = '
     <script type="text/javascript" src="/css_mpanel/restore_objects.js"></script>
     <input id="clearTrashTitle" type="hidden" value="' . lang::get('TRASH_DEL_TITLE3') . '">
     <input id="clearTrashText" type="hidden" value="' . lang::get('TRASH_DEL_MSG3') . '">
     ';
     return $html . $table->getHTML();
 }
Esempio n. 3
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');
     }
 }
Esempio n. 4
0
 public function unsubscribeAction()
 {
     if (system::issetUrl(2) && system::issetUrl(3)) {
         if (($obj = ormObjects::get(system::url(2))) && $obj->isInheritor('subscription')) {
             mailingProcess::delEmailById(system::url(3), $obj->id);
             page::assign('name', $obj->name);
             return page::parse(lang::get('SUBSCRIPTION_MSG2'));
         }
     }
     return ormPages::get404();
 }
Esempio n. 5
0
 public function defAction()
 {
     if (file_exists(MODUL_DIR . '/eshop/template/settings.tpl')) {
         include MODUL_DIR . '/eshop/template/settings.tpl';
     }
     ui::newButton(lang::get('BTN_SAVE_ONLY'), "javascript:sendForm('save');");
     page::assignArray(lang::get('ESHOP_TEXT_SETTINGS'));
     ui::SelectBox('fisrt_state', ormObjects::getObjectsByClass('eshop_status'), reg::getKey('/eshop/fisrt_state'));
     ui::CheckBox('only_reg', 1, reg::getKey('/eshop/only_reg'), lang::get('ESHOP_TEXT_SETTINGS', 1));
     ui::CheckBox('check_count', 1, reg::getKey('/eshop/check_count'), lang::get('ESHOP_TEXT_SETTINGS', 2));
     ui::CheckBox('dubl_to_email', 1, reg::getKey('/eshop/dubl_to_email'), lang::get('ESHOP_TEXT_SETTINGS', 3));
     //page::assign('nds', reg::getKey('/eshop/nds'));
     page::assign('min_count', reg::getKey('/eshop/min_count'));
     return page::parse($TEMPLATE['frame']);
 }
Esempio n. 6
0
 /**
  * @return HTML
  * @param int $form_id - ID формы обратной связи. Форма предварительно должна быть создана в настройках модуля "Обратная связь".
  * @param string $templ_name - Шаблон оформления
  * @desc МАКРОС: Автоватически генерирует форму обратной связи (добавления отзыва, вопрос-ответа и пр.)
  */
 public function autoForm($form_id, $templ_name = 'default')
 {
     if ($form_obj = ormObjects::get($form_id, 'feedback_form')) {
         $obj = new ormPage();
         $obj->setClass($form_obj->form_class);
         $form = new ormEditForm($obj, languages::pre() . '/feedback/send_message');
         $form->tabuList('pseudo_url', 'h1', 'keywords', 'title', 'description', 'active', 'is_home_page', 'view_in_menu', 'view_submenu', 'in_search', 'answer', 'in_index', 'in_new_window', 'other_link', 'img_act', 'img_no_act', 'img_h1');
         page::assign('form_id', $form_obj->id);
         if ($form_obj->captcha) {
             $form->showCaptcha();
         }
         // Парсим текст сообщения
         page::parseError('feedback');
         return $form->getHTML('feedback/' . $templ_name);
     }
 }
Esempio n. 7
0
 public function defAction()
 {
     // Определяем какие кнопки будут
     $types = ormClasses::get('user')->getAllInheritors();
     if (count($types) > 1) {
         $class_list = '';
         while (list($id, $name) = each($types)) {
             $bclass = ormClasses::get($id);
             $class_list .= '<a href="' . system::au() . '/users/user_add/' . system::url(2) . '/' . $bclass->getSName() . '" style="line-height:17px;">' . $bclass->getName() . '</a><br />';
         }
         ui::newButton(lang::get('BTN_NEW_USER'), "/users/user_add/" . system::url(2), 'class_list', $class_list);
     } else {
         ui::newButton(lang::get('BTN_NEW_USER'), "/users/user_add/" . system::url(2));
     }
     ui::setBackButton('/users');
     // Заголовок страницы
     if ($group = ormObjects::get(system::url(2))) {
         ui::setNaviBar($group->name);
         ui::setHeader(lang::right('userlist'));
     }
     // Выбираем пользователей
     $sel = new ormSelect('user');
     if (system::issetUrl(2) && system::url(2) != 0) {
         $sel->where('parents', '=', system::url(2));
     }
     $sel->orderBy('create_date', desc);
     // Строим таблицу
     $table = new uiTable($sel);
     $table->formatValues(true);
     $table->showSearch(true);
     $table->addColumn('login', lang::get('USERS_TABLE_FIELD_1'), 0, true);
     $table->addColumn('surname name', lang::get('USERS_TABLE_FIELD_2'), 0, true);
     $table->addColumn('create_date', lang::get('USERS_TABLE_FIELD_7'), 0, true, true, '', 1);
     $table->addColumn('last_visit', lang::get('USERS_TABLE_FIELD_3'), 0, true, true, '', 1);
     $table->addColumn('parents', lang::get('USERS_TABLE_FIELD_4'), 0, false, true);
     $table->defaultRight('user_upd');
     $table->addRight('user_upd', 'edit', single);
     $table->addRight('user_act', 'active', multi);
     $table->addRight('user_del', 'drop', multi);
     $table->setDelMessage(lang::get('USERS_DEL_TITLE'), lang::get('USERS_DEL_TEXT'));
     $table->setMultiDelMessage(lang::get('USERS_DEL_TITLE_MULTI'), lang::get('USERS_DEL_TEXT_MULTI'));
     return $table->getHTML();
 }
Esempio n. 8
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');
     }
 }
Esempio n. 9
0
 public function getParent($class_name = '')
 {
     if (empty($class_name)) {
         if ($this instanceof ormPage) {
             return ormPages::get($this->getParentId());
         } else {
             return ormObjects::get($this->getParentId());
         }
     } else {
         if ($class = ormClasses::get($class_name)) {
             // Ищем родителя нужного класса
             $this->getParents();
             reset($this->parents);
             while (list($obj_id, $val) = each($this->parents)) {
                 if ($val['parent_class'] == $class->id()) {
                     if ($class->isPage()) {
                         return ormPages::get($obj_id);
                     } else {
                         return ormObjects::get($obj_id);
                     }
                 }
             }
         }
     }
     return false;
 }
Esempio n. 10
0
 public function del()
 {
     if (system::issetUrl(2) && is_numeric(system::url(2))) {
         // Одиночное удаление
         $obj = ormObjects::get(system::url(2));
         if ($obj->isInheritor('user') && $obj->id != user::get('id')) {
             $this->sendMailDel($obj);
             cache::delete('user' . $obj->id);
             $obj->toTrash();
             echo 'delete';
         }
     } else {
         if (isset($_POST['objects'])) {
             // Множественное удаление
             while (list($id, $val) = each($_POST['objects'])) {
                 if (is_numeric($id)) {
                     $obj = ormObjects::get($id);
                     if ($obj->isInheritor('user') && $obj->id != user::get('id')) {
                         $this->sendMailDel($obj);
                         cache::delete('user' . $obj->id);
                         $obj->toTrash();
                     }
                 }
             }
             echo 'delete';
         }
     }
     system::stop();
 }
Esempio n. 11
0
 public function goodsList($order_id, $templ_name = 'goods_list')
 {
     $templ_file = '/eshop/' . $templ_name . '.tpl';
     $TEMPLATE = page::getTemplate($templ_file);
     if (!is_array($TEMPLATE)) {
         return page::errorNotFound('eshop.goodsList', $templ_file);
     }
     if ($order = ormObjects::get($order_id, 'eshop_order')) {
         $fields = page::getFields('obj', $TEMPLATE['list']);
         $sel = new ormSelect('eshop_goods');
         $sel->where('parents', '=', $order_id);
         $list = '';
         $num = $cost = 0;
         while ($goods = $sel->getObject()) {
             if ($obj = ormPages::get($goods->goods_id, 'goods')) {
                 $num++;
                 if (isset($fields['obj'])) {
                     while (list($key, $val) = each($fields['obj'])) {
                         if ($val != 'url' && $val != 'class' && $val != 'num') {
                             page::assign('obj.' . $val, $obj->__get($val));
                         }
                     }
                 }
                 page::assign('obj.num', $num);
                 page::assign('class-first', $num == 1 ? 'first' : '');
                 page::assign('class-last', $num == $sel->getObjectCount() ? 'last' : '');
                 page::assign('class-odd', $num % 2 == 0 ? 'odd' : '');
                 page::assign('class-even', $num % 2 != 0 ? 'even' : '');
                 page::assign('class-third', $num % 3 == 0 ? 'third' : '');
                 page::assign('obj.id', $obj->id);
                 page::assign('obj.name', $obj->name);
                 page::assign('obj.cost', $goods->cost);
                 page::assign('obj.count', $goods->count);
                 page::assign('obj.url', $obj->url);
                 $cost_all = $goods->cost * $goods->count;
                 page::assign('obj.cost_all', $cost_all);
                 $cost += $cost_all;
                 $list .= page::parse($TEMPLATE['list']);
             }
         }
         if (!empty($list)) {
             page::assign('cost', $cost);
             page::assign('list', $list);
             return page::parse($TEMPLATE['frame']);
         } else {
             return page::parse($TEMPLATE['empty']);
         }
     }
 }
Esempio n. 12
0
 static function createCookie()
 {
     $remeber_me = md5(self::get('id') + rand(1000, 10000000));
     $user = ormObjects::get(self::get('id'), 'user');
     $user->remember_me = $remeber_me;
     $user->save();
     return self::get('id') . '-' . self::browserHash() . '-' . $remeber_me;
 }
Esempio n. 13
0
 public function del()
 {
     if (system::issetUrl(2) && is_numeric(system::url(2))) {
         // Одиночное удаление
         if ($obj = ormObjects::get(system::url(2))) {
             if ($obj->isInheritor('subscribe_msg')) {
                 $obj->toTrash();
             }
         }
         echo 'delete';
     } else {
         if (isset($_POST['objects'])) {
             // Множественное удаление
             while (list($id, $val) = each($_POST['objects'])) {
                 if ($obj = ormObjects::get($id)) {
                     if ($obj->isInheritor('subscribe_msg')) {
                         $obj->toTrash();
                     }
                 }
             }
             echo 'delete';
         }
     }
     system::stop();
 }
Esempio n. 14
0
 public function del()
 {
     if (!isset($_POST['objects']) && system::issetUrl(2) && is_numeric(system::url(2))) {
         // Одиночное удаление
         $obj = ormObjects::get(system::url(2));
         if ($obj->isInheritor('user_group') && $obj->id != 32 && $obj->id != 48) {
             $obj->toTrash();
             echo 'delete';
         }
     } else {
         if (isset($_POST['objects'])) {
             // Множественное удаление
             while (list($id, $val) = each($_POST['objects'])) {
                 if (is_numeric($id)) {
                     $obj = ormObjects::get($id);
                     if ($obj->isInheritor('user_group') && $obj->id != 32 && $obj->id != 48) {
                         $obj->toTrash();
                     }
                 }
             }
             echo 'delete';
         }
     }
     system::stop();
 }
Esempio n. 15
0
 // удаление объекта
 public function del()
 {
     if (system::issetUrl(2) && is_numeric(system::url(2))) {
         // Одиночное удаление
         ormObjects::get(system::url(2))->toTrash();
         echo 'delete';
     } else {
         if (isset($_POST['objects'])) {
             // Множественное удаление
             while (list($id, $val) = each($_POST['objects'])) {
                 ormObjects::get($id)->toTrash();
             }
             echo 'delete';
         }
     }
     system::stop();
Esempio n. 16
0
 function okAction()
 {
     if ($form_obj = ormObjects::get(system::url(2))) {
         page::globalVar('h1', lang::get('FEEDBACK_TITLE'));
         page::globalVar('title', lang::get('FEEDBACK_TITLE'));
         if ($form_obj->msg != '') {
             return $form_obj->msg;
         } else {
             return lang::get('FEEDBACK_MSG_1');
         }
     }
     system::redirect('/');
 }
Esempio n. 17
0
 public function getChild($with_trash = false)
 {
     $this->getChildren(-1, $with_trash);
     if (count($this->childr) > 0) {
         if (isset($this->childr[$this->child_num])) {
             $obj = ormPages::get($this->childr[$this->child_num]);
             if (!$obj instanceof ormObject) {
                 $obj = ormObjects::get($this->childr[$this->child_num]);
             }
             if ($obj instanceof ormObject) {
                 $this->child_num++;
                 if ($this->child_num > count($this->childr)) {
                     $this->child_num = 0;
                 }
                 return $obj;
             }
         }
     }
 }
Esempio n. 18
0
 static function delEmailById($user_id, $subscription_id)
 {
     if (($obj = ormObjects::get($user_id)) && !empty($subscription_id)) {
         if ($obj->isInheritor('subscribe_user')) {
             $parents = $obj->getParents();
             if (count($parents) > 1) {
                 $obj->delParent($subscription_id);
             } else {
                 $obj->delete();
             }
             return true;
         }
     }
     return false;
 }
Esempio n. 19
0
 protected function viewChildren($val, $obj)
 {
     if (!empty($val)) {
         $names = '';
         while (list($key, $id) = each($val)) {
             $pre = empty($key) ? '' : ', ';
             $names .= $pre . ormObjects::get($id)->name;
         }
         return $names;
     }
 }
Esempio n. 20
0
 public function addlist()
 {
     // Устанавливаем кнопки для формы
     ui::setCancelButton('/subscription/user/' . system::url(2));
     ui::newButton(lang::get('BTN_SAVE'), "javascript:sendForm('save');");
     if (file_exists(MODUL_DIR . '/subscription/template/add_userlist.tpl')) {
         include MODUL_DIR . '/subscription/template/add_userlist.tpl';
     }
     // Добавляем поле "Подписан на рассылку"
     $html = ui::SelectBox('subscribes', ormObjects::getObjectsByClass('subscription'), system::url(2), 400, '', '', 'selectbox_multi_big');
     page::assignArray(lang::get('SUBSCRIBE_TEXT'));
     page::assign('parent_id', system::url(2));
     return page::parse($TEMPLATE['frame']);
 }
Esempio n. 21
0
 public function filter($section, $templ_name = 'filter_default')
 {
     $templ_file = '/structure/objects/' . $templ_name . '.tpl';
     $TEMPLATE = page::getTemplate($templ_file);
     if (!is_array($TEMPLATE)) {
         return page::errorNotFound('structure.filter', $templ_file);
     }
     // Определяем текущий раздел
     $info = ormPages::getSectionByPath($section);
     $section_id = $info['section'] instanceof ormPage ? $info['section']->id : 'NULL';
     $class_name = !empty($info['class']) ? $info['class'] : '';
     // Определяем общий ORM-класс для всех объектов данного раздела.
     if (empty($class_name) && ($section_id != 'NULL' || is_array($info['section']))) {
         $sel = new ormSelect();
         $sel->findInPages();
         if (is_array($info['section'])) {
             $sel->where('parents', '=', $info['section']);
         } else {
             $sel->where('parents', '=', $section_id);
         }
         $class_name = $sel->getObjectsClass();
     }
     // Получаем список полей
     $fields = !empty($class_name) ? ormClasses::get($class_name)->loadFields() : array();
     $ind = is_array($info['section']) ? $info['section'] : $section_id;
     $prefix = md5($class_name . $ind);
     page::assign('section_id', $section_id);
     page::assign('class_name', $class_name);
     page::assign('target', $prefix);
     // Выводим список фильтров
     $num = 0;
     $list = '';
     $all_count = count($fields);
     while (list($fname, $field) = each($fields)) {
         if ($field['f_filter'] && $field['f_type'] < 100) {
             $this->checkFilterPost($fname, $field, $prefix);
             $num++;
             page::assign('field.num', $num);
             page::assign('class-first', $num == 1 ? 'first' : '');
             page::assign('class-last', $num == $all_count ? 'last' : '');
             page::assign('class-odd', $num % 2 == 0 ? 'odd' : '');
             page::assign('class-even', $num % 2 != 0 ? 'even' : '');
             page::assign('class-third', $num % 3 == 0 ? 'third' : '');
             page::assign('field.id', $field['f_id']);
             page::assign('field.name', $field['f_name']);
             page::assign('field.sname', $field['f_sname']);
             $value = isset($_SESSION['filters'][$prefix][$fname]) ? $_SESSION['filters'][$prefix][$fname] : '';
             $value2 = isset($_SESSION['filters'][$prefix][$fname . '_2']) ? $_SESSION['filters'][$prefix][$fname . '_2'] : '';
             page::assign('field.value', $value);
             if ($field['f_type'] == 90 || $field['f_type'] == 95) {
                 // Справочники
                 $data = ormObjects::getObjectsByClass($field['f_list_id']);
                 $list_vals = '';
                 if (isset($TEMPLATE['filter_relation_list_null'])) {
                     page::assign('obj.selected', $value == 0 ? ' selected' : '');
                     $list_vals .= page::parse($TEMPLATE['filter_relation_list_null']);
                 }
                 while (list($k, $val) = each($data)) {
                     page::assign('obj.id', $val['id']);
                     page::assign('obj.name', $val['name']);
                     page::assign('obj.selected', $value == $val['id'] ? ' selected' : '');
                     if (!empty($list_vals) && isset($TEMPLATE['filter_relation_separator'])) {
                         $list_vals .= page::parse($TEMPLATE['filter_relation_separator']);
                     }
                     $list_vals .= page::parse($TEMPLATE['filter_relation_list']);
                 }
                 page::assign('list', $list_vals);
                 $filter = page::parse($TEMPLATE['filter_relation']);
             } else {
                 if ($field['f_type'] == 10 || $field['f_type'] == 15 || $field['f_type'] == 20 || $field['f_type'] == 30) {
                     // Текстовые поля
                     $filter = page::parse($TEMPLATE['filter_text']);
                 } else {
                     if ($field['f_type'] == 25 || $field['f_type'] == 35) {
                         // Дата
                         page::assign('field.value1', $value);
                         page::assign('field.value2', $value2);
                         $filter = page::parse($TEMPLATE['filter_beetwen_date']);
                     } else {
                         if ($field['f_type'] == 40 || $field['f_type'] == 45 || $field['f_type'] == 47) {
                             // Числа и цены
                             page::assign('field.value1', $value);
                             page::assign('field.value2', $value2);
                             $filter = page::parse($TEMPLATE['filter_beetwen_int']);
                         } else {
                             // Все остальные, как логические Есть \ нет
                             page::assign('field.checked', system::checkVar($value, isBool) ? 'checked' : '');
                             $filter = page::parse($TEMPLATE['filter_boolean']);
                         }
                     }
                 }
             }
             page::assign('filter', $filter);
             if ($num > 1 && isset($TEMPLATE['separator'])) {
                 $list .= page::parse($TEMPLATE['separator']);
             }
             $list .= page::parse($TEMPLATE['list']);
         }
     }
     if (!empty($list)) {
         page::assign('list', $list);
         return page::parse($TEMPLATE['frame']);
     } else {
         return page::parse($TEMPLATE['empty']);
     }
 }
Esempio n. 22
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);
                 }
             }
         }
     }
 }
Esempio n. 23
0
 function delete()
 {
     if (!empty($this->obj)) {
         if (($state = ormObjects::get($this->obj->state)) && $state->is_delete) {
             $this->obj->delete();
             return true;
         }
     }
     return false;
 }
Esempio n. 24
0
 public function getObject()
 {
     if (!isset($this->cache['data'])) {
         $this->cache['data'] = $this->createQuery(1);
     }
     if (!isset($this->cache['num'])) {
         $this->reset();
     }
     $this->cache['num']++;
     if ($this->cache['num'] < count($this->cache['data'])) {
         $obj_data = $this->cache['data'][$this->cache['num']];
         if (($class = ormClasses::get($obj_data['o_class_id'])) && $class->isPage()) {
             return ormPages::get($obj_data);
         } else {
             return ormObjects::get($obj_data);
         }
     }
 }
Esempio n. 25
0
 public function history()
 {
     if (system::url(2) == 0) {
         system::redirect('/subscription');
     }
     if ($obj = ormObjects::get(system::url(2))) {
         ui::setBackButton('/subscription');
         ui::setNaviBar(lang::right('subscribe_history'));
         ui::setHeader($obj->name);
         return ui::getHistoryTable($obj->id);
     }
     system::redirect('/subscription');
 }
Esempio n. 26
0
 public function getHTML($templ_name = 'filters')
 {
     if ($this->getCount() > 0 && file_exists(MODUL_DIR . '/mpanel/template/' . $templ_name . '.tpl')) {
         include MODUL_DIR . '/mpanel/template/' . $templ_name . '.tpl';
         $items = '';
         $num = 0;
         // Строим список фильтров
         reset($this->filters);
         while (list($key, $field) = each($this->filters)) {
             $num++;
             if (isset($this->new_filters[$num])) {
                 if ($this->new_filters[$num][2]) {
                     page::assign('field.name', $this->new_filters[$num][0]);
                     page::assign('field.content', $this->new_filters[$num][1]);
                     $items .= page::parse($TEMPLATE['field_spec']);
                 } else {
                     $items .= $this->new_filters[$num][1];
                 }
             }
             if (!isset($_SESSION['filters_' . $this->prefix][$field['f_sname']])) {
                 $_SESSION['filters_' . $this->prefix][$field['f_sname']] = '';
             }
             if (isset($this->show_filters[$field['f_sname']]) && !empty($this->show_filters[$field['f_sname']][0])) {
                 $field['f_name'] = $this->show_filters[$field['f_sname']][0];
             }
             page::assign('field.name', $field['f_name']);
             if ($field['f_type'] == 50 || $field['f_type'] > 69 && $field['f_type'] < 96) {
                 // Выпадающий список
                 $data = array();
                 if ($field['f_type'] == 50) {
                     $data = lang::get('FILTER_BOOL');
                 } else {
                     if ($field['f_type'] > 69 && $field['f_type'] < 86) {
                         $data = lang::get('FILTER_ISSET');
                     } else {
                         if ($field['f_type'] == 90 || $field['f_type'] == 95) {
                             $data = ormObjects::getObjectsByClass($field['f_list_id']);
                         }
                     }
                 }
                 $element = ui::SelectBox($field['f_sname'], $data, $_SESSION['filters_' . $this->prefix][$field['f_sname']], 172, '&nbsp;', '', 'selectbox_mini');
                 page::assign('element', $element);
                 $items .= page::parse($TEMPLATE['field_select']);
             } else {
                 if (isset($this->show_filters[$field['f_sname']]) && $this->show_filters[$field['f_sname']][1] || ($field['f_type'] == 25 || $field['f_type'] == 30 || $field['f_type'] == 32) && (!isset($this->show_filters[$field['f_sname']]) || $this->show_filters[$field['f_sname']][1] !== false)) {
                     // Выбор промежутка для чисел или дат
                     if (!isset($_SESSION['filters_' . $this->prefix][$field['f_sname'] . '_2'])) {
                         $_SESSION['filters_' . $this->prefix][$field['f_sname'] . '_2'] = '';
                     }
                     page::assign('field.sname', $field['f_sname']);
                     page::assign('field.value', $_SESSION['filters_' . $this->prefix][$field['f_sname']]);
                     page::assign('field.value2', $_SESSION['filters_' . $this->prefix][$field['f_sname'] . '_2']);
                     $items .= page::parse($TEMPLATE['field_period']);
                 } else {
                     // Обычный фильтр - текстовое поле
                     page::assign('field.sname', $field['f_sname']);
                     page::assign('field.value', $_SESSION['filters_' . $this->prefix][$field['f_sname']]);
                     $items .= page::parse($TEMPLATE['field']);
                 }
             }
         }
         $all_count = $num + count($this->new_filters);
         while ($num < $all_count) {
             $num++;
             if (isset($this->new_filters[$num])) {
                 if ($this->new_filters[$num][2]) {
                     page::assign('field.name', $this->new_filters[$num][0]);
                     page::assign('field.content', $this->new_filters[$num][1]);
                     $items .= page::parse($TEMPLATE['field_spec']);
                 } else {
                     $items .= $this->new_filters[$num][1];
                 }
             }
         }
         page::assign('fields', $items);
         return page::parse($TEMPLATE['frame']);
     }
 }
Esempio n. 27
0
    private function parseField($field, $TEMPLATE)
    {
        if (in_array($field['f_sname'], $this->read_only)) {
            $value = $this->obj->__get($field['f_sname']);
            page::assign('value', $value);
            if ($field['f_type'] == 90 || $field['f_type'] == 95 || $field['f_type'] == 105) {
                page::assign('val', $this->obj->__get('_' . $field['f_sname']));
            } else {
                page::assign('val', $value);
            }
            $value = page::parse($TEMPLATE['read_only']);
            page::assign('content', $value);
            return page::parse($TEMPLATE['field_standart']);
        }
        // Определяем значение поля
        if (isset($_SESSION['SAVING_POST']) && ($field['f_type'] < 70 || $field['f_type'] > 85) && isset($_SESSION['SAVING_POST'][$field['f_sname']])) {
            $value = $_SESSION['SAVING_POST'][$field['f_sname']];
        } else {
            if ($field['f_type'] == 105) {
                $value = $this->obj->__get('_' . $field['f_sname']);
            } else {
                $value = $this->obj->__get($field['f_sname']);
            }
        }
        page::assign('field.value', $value);
        // Для страниц, для кнопки "Показать \ скрыть доп. поля"
        if ($this->obj instanceof ormPage && in_array($field['f_sname'], $this->page_fields)) {
            $sh_page = isset($_SESSION['SH_FIELDS']) && $_SESSION['SH_FIELDS'] == 'show' ? '' : ' style="display:none;"';
            page::assign('sh_page', $sh_page);
        } else {
            page::assign('sh_page', '');
        }
        // Специальная обработка данных
        if ($field['f_type'] == 50) {
            page::assign('element', ui::CheckBox($field['f_sname'], 1, $value));
        } else {
            if ($field['f_type'] == 32) {
                if (empty($value) || $value == '0000-00-00 00:00:00') {
                    page::assign('field.date', '');
                    page::assign('field.time', '00:00');
                } else {
                    page::assign('field.date', date('d.m.Y', strtotime($value)));
                    page::assign('field.time', date('H:i', strtotime($value)));
                }
            } else {
                if ($field['f_type'] == 25) {
                    $time = empty($value) || $value == '0000-00-00' ? '' : date('d.m.Y', strtotime($value));
                    page::assign('field.date', $time);
                } else {
                    if ($field['f_type'] == 30) {
                        $time = empty($value) ? '' : date('H:i:s', strtotime($value));
                        page::assign('field.time', $time);
                    } else {
                        if ($field['f_type'] == 70 || $field['f_type'] == 75 || $field['f_type'] == 80 || $field['f_type'] == 85) {
                            if (system::$isAdmin) {
                                page::assign('element', ui::loadFile($field['f_sname'], $value));
                            } else {
                                page::fParse('element', $TEMPLATE['upload_file_field']);
                            }
                        } else {
                            if ($field['f_type'] == 73) {
                                page::assign('element', ui::listFile($field['f_sname'], $value));
                            } else {
                                if ($field['f_type'] == 90 || $field['f_type'] == 95) {
                                    // Выпадающий список или Список со множественным выбором
                                    // Получаем список объектов справочника
                                    page::assign('field.sname', $field['f_sname']);
                                    $data = ormObjects::getObjectsByClass($field['f_list_id']);
                                    $multi = $field['f_type'] == 95 ? 'selectbox_multi' : 'selectbox_template';
                                    $empty = !$field['f_required'] ? '&nbsp;' : '';
                                    if (system::$isAdmin) {
                                        page::assign('element', ui::SelectBox($field['f_sname'], $data, $value, 400, $empty, '', $multi));
                                        if ($field['f_quick_add']) {
                                            page::fParse('plus', $TEMPLATE['field_' . $field['f_type'] . '_plus']);
                                        } else {
                                            page::assign('plus', '');
                                        }
                                    } else {
                                        page::assign('element', ui::SelectBox($field['f_sname'], $data, $value, 200, $empty, '', $multi));
                                    }
                                } else {
                                    if ($field['f_type'] == 97) {
                                        // Подчиненный справочник
                                        // Получаем список объектов справочника
                                        $sel = new ormSelect($field['f_list_id']);
                                        $sel->where('parents', '=', $this->obj->id);
                                        // Выводим мультиформу для добавления и редактирования
                                        $form = new ormMultiForm('subject_list_' . $field['f_id']);
                                        $form->setData($sel);
                                        $form->insideForm();
                                        $re = $form->getHTML();
                                        //  echo $re;
                                        page::assign('element', $re);
                                    } else {
                                        if ($field['f_type'] == 100) {
                                            // Связь с объектом
                                            page::assign('element', ui::objectLinks($this->obj, $field['f_id']));
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        page::assign('field.id', $field['f_id']);
        page::assign('field.name', $field['f_name']);
        page::assign('field.hint', $field['f_hint']);
        page::assign('field.sname', $field['f_sname']);
        page::fParse('field.dotted', !empty($field['f_hint']) ? 'dotted' : '');
        if (empty($field['f_max_size'])) {
            $field['f_max_size'] = $field['f_type'] == 60 ? 200 : 100;
        }
        page::assign('field.max_size', $field['f_max_size']);
        // Генерируем яву (создаем правила проверки для элементов формы)
        if ($field['f_required'] && ($field['f_type'] == 35 && $this->obj->id == '' || $field['f_type'] != 35)) {
            $msg = str_replace('%title%', $field['f_name'], lang::get('CONSTR_BASE_FIELD_E2'));
            if ($field['f_type'] == 60) {
                // HTML - редактор
                $this->addit_function .= page::parse('
  					function checkValue%field.sname%(){
  					 	var value = CKEDITOR.instances["%field.sname%"].getData();
    					return (value != "") ? true : [[ "cke_%field.sname%", "' . $msg . '" ]];
					}
  				');
                $this->java .= page::parse('rules.push("function,checkValue%field.sname%");');
            } else {
                if ($field['f_type'] == 100) {
                    // Выбор объекта
                    $this->addit_function .= page::parse('
  					function checkObjectLinks%field.sname%(){
  						var count = $("#objectsLinkList_%field.sname% > li").length;
    					return (count > 0) ? true : [[ %field.sname%, "' . $msg . '" ]];
					}
  				');
                    $this->java .= page::parse('rules.push("function,checkObjectLinks%field.sname%");');
                } else {
                    if ($field['f_type'] == 32) {
                        // Каледарь и время
                        $this->java .= page::parse('rules.push("required,%field.sname%_date,' . $msg . '");');
                    } else {
                        $this->java .= page::parse('rules.push("required,%field.sname%,' . $msg . '");');
                    }
                }
            }
            $zvezd = 'chek';
        } else {
            $zvezd = '';
        }
        page::assign('field.zvezd', $zvezd);
        if ($field['f_type'] == 15) {
            $this->java .= page::parse('rules.push("valid_email,%field.sname%,' . lang::get('CONSTR_BASE_FIELD_E3') . '");');
        }
        if ($field['f_type'] == 20) {
            $this->java .= page::parse('rules.push("reg_exp,%field.sname%,^(((f|ht){1}tp:/)*/[-a-zA-Z0-9@:%_\\+.~#?&//=]+)*$|^\\/{1}, ' . lang::get('CONSTR_BASE_FIELD_E4') . '");');
        }
        if ($field['f_type'] == 40) {
            $this->java .= page::parse('rules.push("digits_only,%field.sname%,' . lang::get('CONSTR_BASE_FIELD_E6') . '");');
        }
        if ($field['f_type'] == 45) {
            $this->java .= page::parse('rules.push("float_only,%field.sname%,' . lang::get('CONSTR_BASE_FIELD_E7') . '");');
        }
        if ($field['f_type'] == 47) {
            $this->java .= page::parse('rules.push("price_only,%field.sname%,' . lang::get('CONSTR_BASE_FIELD_E8') . '");');
        }
        if (isset($TEMPLATE['field_' . $field['f_type']])) {
            return page::parse($TEMPLATE['field_' . $field['f_type']]);
        } else {
            return str_replace('%title%', $field['f_sname'], lang::get('CONSTR_BASE_FIELD_E5'));
        }
    }
Esempio n. 28
0
 public function del()
 {
     if (system::issetUrl(2) && is_numeric(system::url(2))) {
         // Одиночное удаление
         if ($obj = ormObjects::get(system::url(2), 'eshop_delivery_method')) {
             $obj->toTrash();
             echo 'delete';
         }
     } else {
         if (isset($_POST['objects'])) {
             // Множественное удаление
             while (list($id, $val) = each($_POST['objects'])) {
                 if ($obj = ormObjects::get($val, 'eshop_delivery_method')) {
                     $obj->toTrash();
                 }
             }
             echo 'delete';
         }
     }
     system::stop();
 }
Esempio n. 29
0
 static function checkObjectLinks()
 {
     if (system::url(0) == 'getObjectLinksTree') {
         if (file_exists(MODUL_DIR . '/mpanel/template/objectLinks.tpl')) {
             include MODUL_DIR . '/mpanel/template/objectLinks.tpl';
         }
         $tree = new ormTree(457, 0);
         $tree->miniStyle();
         $tree->setClass('ormPage');
         $tree->setRoot(0, reg::getKey(ormPages::getPrefix() . '/title_prefix'));
         $tree->setRightAjaxLoad('tree');
         page::assign('tree', $tree->getHTML());
         page::assign('parram', system::url(1));
         echo page::parse($TEMPLATE['tree_frame']);
         system::stop();
     } else {
         if (system::url(0) == 'getObjectLinks') {
             if (file_exists(MODUL_DIR . '/mpanel/template/objectLinks.tpl')) {
                 include MODUL_DIR . '/mpanel/template/objectLinks.tpl';
                 if (!($obj = ormPages::get(system::url(1)))) {
                     $obj = ormObjects::get(system::url(1));
                 }
                 if ($obj instanceof ormObject && !$obj->issetErrors()) {
                     page::assign('id', $obj->id);
                     page::assign('name', $obj->name);
                     page::assign('url', $obj->url);
                     page::assign('field_name', system::url(2));
                     page::assign('field_id', system::url(3));
                     if ($obj->getClass()->isPage()) {
                         echo page::parse($TEMPLATE['new_object_link']);
                     } else {
                         echo page::parse($TEMPLATE['object_link']);
                     }
                 }
             }
             system::stop();
         } else {
             if (system::url(0) == 'findObjectLinks' && isset($_POST['query'])) {
                 // Формируем список подсказок
                 $sel = new ormSelect();
                 $sel->findInPages();
                 $sel->fields('name');
                 $sel->where('name', 'LIKE', '%' . $_POST['query'] . '%');
                 $list = $list2 = '';
                 while ($obj = $sel->getObject()) {
                     $zapi = $sel->getObjectNum() != 0 ? ', ' : '';
                     $list .= $zapi . "'" . $obj->name . "'";
                     $list2 .= $zapi . " ['" . $obj->id . "', '" . system::url(1) . "' ]";
                 }
                 echo "{ query:'" . $_POST['query'] . "', suggestions:[" . $list . "], data:[" . $list2 . "] }";
                 system::stop();
             }
         }
     }
 }