Esempio n. 1
0
 public function proc()
 {
     //reg::setKey('/users/errorCountCapcha', system::POST('errorCountCapcha'));
     reg::setKey('/users/errorCountBlock', system::POST('errorCountBlock'));
     reg::setKey('/users/reg', system::POST('reg', isBool));
     reg::setKey('/users/activation', system::POST('activation', isBool));
     reg::setKey('/users/confirm', system::POST('confirm', isBool));
     reg::setKey('/users/ask_email', system::POST('ask_email', isBool));
     //авторизация чере соц. сети
     reg::setKey('/users/twitter_bool', system::POST('twitter_bool'), isBool);
     reg::setKey('/users/twitter_id', system::POST('twitter_id'), isString);
     reg::setKey('/users/twitter_secret', system::POST('twitter_secret'), isString);
     reg::setKey('/users/vk_bool', system::POST('vk_bool'), isBool);
     reg::setKey('/users/vk_id', system::POST('vk_id'), isString);
     reg::setKey('/users/vk_secret', system::POST('vk_secret'), isString);
     reg::setKey('/users/ok_bool', system::POST('ok_bool'), isBool);
     reg::setKey('/users/ok_id', system::POST('ok_id'), isString);
     reg::setKey('/users/ok_public', system::POST('ok_public'), isString);
     reg::setKey('/users/ok_secret', system::POST('ok_secret'), isString);
     reg::setKey('/users/facebook_bool', system::POST('facebook_bool'), isBool);
     reg::setKey('/users/facebook_id', system::POST('facebook_id'), isString);
     reg::setKey('/users/facebook_secret', system::POST('facebook_secret'), isString);
     reg::setKey('/users/yandex_bool', system::POST('yandex_bool'), isBool);
     reg::setKey('/users/google_bool', system::POST('google_bool'), isBool);
     ui::MessageBox(lang::get('CONFIG_SAVE_OK'), lang::get('CONFIG_SAVE_OK_MSG'));
     reg::clearCache();
     system::log(lang::get('CONFIG_LOG_SAVE'), warning);
     system::redirect('/users/settings');
 }
Esempio n. 2
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. 3
0
 public function proc()
 {
     reg::setKey('/comments/only_reg', system::POST('only_reg', isBool));
     reg::setKey('/comments/com_moderation', system::POST('com_moderation', isBool));
     reg::setKey('/comments/text_length', system::POST('text_length', isInt));
     ui::MessageBox(lang::get('CONFIG_SAVE_OK'), lang::get('CONFIG_SAVE_OK_MSG'));
     system::redirect('/comments/settings');
 }
Esempio n. 4
0
 public function proc()
 {
     reg::setKey('/subscription/count_mails', system::POST('count_mails', isInt));
     reg::setKey('/subscription/count_mails_day', system::POST('count_mails_day', isInt));
     reg::clearCache();
     ui::MessageBox(lang::get('CONFIG_SAVE_OK'), lang::get('CONFIG_SAVE_OK_MSG'));
     system::redirect('/subscription/settings');
 }
Esempio n. 5
0
 public function proc()
 {
     reg::setKey('/eshop/only_reg', system::POST('only_reg', isBool));
     reg::setKey('/eshop/check_count', system::POST('check_count', isBool));
     reg::setKey('/eshop/dubl_to_email', system::POST('dubl_to_email', isBool));
     reg::setKey('/eshop/fisrt_state', system::POST('fisrt_state', isInt));
     $min_count = system::POST('min_count', isInt);
     if (empty($min_count)) {
         $min_count = '0';
     }
     reg::setKey('/eshop/min_count', $min_count);
     reg::clearCache();
     ui::MessageBox(lang::get('CONFIG_SAVE_OK'), lang::get('CONFIG_SAVE_OK_MSG'));
     system::redirect('/eshop/settings');
 }
Esempio n. 6
0
 public function proc()
 {
     $obj = user::getObject();
     // Если произошли ошибки, перенаправляем на главную страницу админки
     if (!$obj instanceof ormObject) {
         system::redirect('/');
     }
     // Присваиваем пришедшие значения полям в объекте
     $obj->tabuList('active', 'groups', 'login');
     $obj->loadFromPost();
     // Сохраняем изменения
     $obj_id = $obj->save();
     // Если объект не сохранился, выводим пользователю текст ошибки.
     if ($obj_id === false) {
         system::savePostToSession();
         ui::MessageBox(lang::get('TEXT_MESSAGE_ERROR'), $obj->getErrorListText());
         ui::selectErrorFields($obj->getErrorFields());
     }
     cache::delete('user' . $obj_id);
     system::redirect('/core/profile');
 }
Esempio n. 7
0
 function proc_upd()
 {
     if (!($obj = comments::get(system::POST('obj_id')))) {
         system::redirect('/comments/list');
     }
     $obj->setActive(system::POST('active'));
     $obj->setText(system::POST('c_text'));
     $obj->setParram(system::POST('c_parram'));
     $obj_id = $obj->save();
     // Если объект не сохранился, выводим пользователю текст ошибки.
     if ($obj_id === false) {
         ui::MessageBox(lang::get('TEXT_MESSAGE_ERROR'), $obj->getErrorListText());
         ui::selectErrorFields($obj->getErrorFields());
         system::redirect('/comments/comment_upd/' . system::POST('obj_id'));
     }
     // Если данные изменились корректно перенаправляем на соответствующию страницу
     if ($_POST['parram'] == 'apply') {
         system::redirect('/comments/comment_upd/' . $obj_id);
     } else {
         system::redirect('/comments/list');
     }
 }
Esempio n. 8
0
 function proc_upd()
 {
     $mini_action = substr(system::action(), -3);
     if (system::action() == "proc_upd") {
         // Говорим какой объект нужно изменить
         if (!($obj = ormObjects::get(system::POST('obj_id'), 'eshop_delivery_method'))) {
             system::redirect('/eshop/delivery');
         }
     } else {
         if (system::action() == "proc_add") {
             // Говорим какой объект нужно создать
             $obj = new ormObject();
             $obj->setClass('eshop_delivery_method');
         }
     }
     // Если произошли ошибки, перенаправляем на главную страницу модуля
     if ($obj->issetErrors()) {
         system::redirect('/eshop/delivery');
     }
     // Присваиваем пришедшие значения полям в объекте
     $obj->loadFromPost();
     // Сохраняем изменения
     $obj_id = $obj->save();
     // Если объект не сохранился, выводим пользователю текст ошибки.
     if ($obj_id === false) {
         system::savePostToSession();
         ui::MessageBox(lang::get('TEXT_MESSAGE_ERROR'), $obj->getErrorListText());
         ui::selectErrorFields($obj->getErrorFields());
         $class = $mini_action == 'add' ? '' : $_POST['obj_id'];
         system::redirect('/eshop/delivery_' . $mini_action . '/' . $class);
     }
     // Если данные изменились корректно перенаправляем на соответствующию страницу
     if ($_POST['parram'] == 'apply') {
         system::redirect('/eshop/delivery_upd/' . $obj_id);
     } else {
         system::redirect('/eshop/delivery');
     }
 }
Esempio n. 9
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. 10
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');
     }
 }
Esempio n. 11
0
    public function defAction()
    {
        if (!reg::getKey(ormPages::getPrefix() . '/view_as_tree')) {
            system::redirect('/structure/list');
        }
        $_SESSION['STRUCTURE_LIST_FLAG'] = 0;
        // Если страниц нет, предлагаем добавить новую
        if (ormPages::getCountOfSection(0) == 0) {
            ui::MessageBox(lang::get('STRUCTURE_PAGE_NOT_FOUND'), lang::get('STRUCTURE_PAGE_NOT_FOUND2'));
            system::redirect('/structure/page_add');
        }
        $types = ormClasses::get('section')->getAllInheritors();
        $no_edit = reg::getList(ormPages::getPrefix() . '/no_edit');
        $elem_list = $cat_list = '';
        while (list($id, $name) = each($types)) {
            if (!in_array($id, $no_edit)) {
                $obj = ormClasses::get($id);
                $pach = '/css_mpanel/tree/images/';
                $ico = 'classes/' . $obj->getSName() . '.png';
                if (!file_exists(ROOT_DIR . $pach . $ico)) {
                    $ico = 'file1.gif';
                }
                if ($obj->isInheritor('category') || $obj->getSName() == 'section') {
                    $cat_list .= '
			    	<li><img src="' . $pach . $ico . '">
			    	<a name="' . system::au() . '/structure/page_add/%obj_id%/' . $obj->getSName() . '" href="">' . $obj->getName() . '</a></li>';
                } else {
                    $elem_list .= '
			    	<li ><img src="' . $pach . $ico . '">
			    	<a name="' . system::au() . '/structure/page_add/%obj_id%/' . $obj->getSName() . '" href="">' . $obj->getName() . '</a></li>';
                }
            }
        }
        $class_list = '<ul>' . $cat_list . '</ul><ul>' . $elem_list . '</ul>';
        function getPageNotice($page)
        {
            $notice = '';
            if ($page->is_home_page) {
                $notice = lang::get('STRUCTURE_TREE_TEXT1');
            }
            if ($page->other_link != '') {
                $notice = lang::get('STRUCTURE_TREE_TEXT3');
            }
            if (!$page->view_in_menu) {
                if (!empty($notice)) {
                    $notice .= ', ';
                }
                $notice .= lang::get('STRUCTURE_TREE_TEXT2');
            }
            if (!empty($notice)) {
                return '(' . $notice . ')';
            } else {
                return '';
            }
        }
        $tree = new ormTree(975, 265);
        $tree->setClass('ormPage');
        $tree->setRoot(0, reg::getKey(ormPages::getPrefix() . '/title_prefix'), 'settings');
        $tree->setRightEdit('page_upd');
        $tree->setRightActive('page_proc_act');
        $tree->setRightRemove('page_proc_moveto');
        $tree->setRightAjaxLoad('tree');
        $tree->setDelMessage(lang::get('STRUCTURE_DEL_TITLE'), lang::get('STRUCTURE_DEL_TEXT'));
        $tree->addRight('getUrl()', lang::get('STRUCTURE_PAGE_URL'), 'view_image');
        $tree->addEmptyRight();
        $tree->addEmptyRight();
        $tree->addRight('page_add', lang::right('page_add'), 'add_image', 0, 1, 'class_list', $class_list);
        $tree->addEmptyRight();
        $tree->addRight('list', lang::right('list'), 'list_block_image');
        $tree->addEmptyRight();
        $tree->addRight('page_upd', lang::right('page_upd'), 'compose_image');
        $tree->addRight('page_copy', lang::right('page_copy'), 'copy_image', 0, 0);
        $tree->addRight('page_history', lang::right('page_history'), 'history_image', 0, 0);
        $tree->addRight('page_del', lang::right('page_del'), 'drop_image', 1, 0);
        $tree->setNotice('getPageNotice');
        return $tree->getHTML();
    }
Esempio n. 12
0
    public function defAction()
    {
        // Устанавливаем статус системы "в режиме администрирования".
        system::$isAdmin = true;
        page::$macros = 0;
        // Попытка авторизации
        if (!empty($_POST['enter'])) {
            if (!user::auth($_POST['login'], $_POST['passw'])) {
                $this->showAuthForm(1);
            } else {
                header("Location: " . $_SERVER["HTTP_REFERER"]);
            }
        }
        // Если пользователь не админ, показываем форму авторизации
        if (!user::isAdmin()) {
            $this->showAuthForm();
        }
        // Определяем текущий домен
        domains::curDomain();
        // Выход из системы
        if (system::issetUrl(0) && system::url(0) == 'logout') {
            user::logout();
        }
        if (system::url(0) == 'showhide') {
            $_SESSION['SH_FIELDS'] = system::url(1) == 0 ? 'hide' : 'show';
            system::stop();
        }
        // Обработка запросов от поля ObjectLinks
        ui::checkObjectLinks();
        system::$defTemplate = MODUL_DIR . '/mpanel/template/default.tpl';
        // Определяем модуль
        if (!system::issetUrl(0)) {
            system::setUrl(0, user::getDefModul());
        }
        // Если есть ссылка на обработчик формы
        if (!empty($_POST['right'])) {
            system::setUrl(1, system::POST('right', isVarName));
        }
        // Определяем право
        if (system::issetUrl(1)) {
            // Проверяем существует ли указанное право
            if (user::issetRight(system::url(1))) {
                $currRight = system::url(1);
            } else {
                if (user::issetRight(str_replace('_proc', '', system::url(1)))) {
                    $currRight = system::url(1);
                }
            }
        } else {
            // Пытаемся найти право по умолчанию
            $def_right = user::getDefaultRight(system::url(0));
            if ($def_right) {
                $currRight = $def_right;
                system::setUrl(1, $def_right);
            }
        }
        $this->getMenu();
        page::assign('current_url', system::getCurrentUrl());
        page::assign('admin_url', system::au());
        if (!empty($currRight)) {
            // Определяем имя и метод контролера
            $pos = strpos($currRight, '_');
            if ($pos) {
                $class_name = '__' . substr($currRight, 0, $pos);
                $action_name = substr($currRight, $pos + 1, strlen($currRight) - $pos);
            } else {
                $class_name = '__' . $currRight;
                $action_name = 'defAction';
            }
            $mod_name = MODUL_DIR . '/' . system::url(0) . '/' . $class_name . '.php';
            // Пытаемся подгрузить модуль
            if (file_exists($mod_name)) {
                include $mod_name;
                if (file_exists(MODUL_DIR . '/' . system::url(0) . '/lang-ru.php')) {
                    include MODUL_DIR . '/' . system::url(0) . '/lang-ru.php';
                }
                ui::setHeader(lang::right($currRight));
                if (class_exists($class_name)) {
                    eval('$c = new ' . $class_name . '();');
                    if (ui::$stop) {
                        $content = '.';
                    } else {
                        if (method_exists($c, $action_name)) {
                            $content = call_user_func(array($c, $action_name));
                        }
                    }
                }
            }
            if (empty($content)) {
                $msg = lang::get('TEXT_PROC_NOTFOUND2') . '<br />' . system::getCurrentUrl() . '<br /><br />
	                        ' . lang::get('TEXT_PROC_NOTFOUND3') . '<br />' . $mod_name . '<br /><br />
	                        ' . lang::get('TEXT_PROC_NOTFOUND4');
                system::log(lang::get('TEXT_PROC_NOTFOUND') . ' ' . system::getCurrentUrl());
                ui::MessageBox(lang::get('TEXT_PROC_NOTFOUND'), $msg);
                system::redirect('/');
            }
        } else {
            system::log(lang::get('TEXT_ERROR_RIGHT_LOG') . system::getCurrentUrl());
            ui::MessageBox(lang::get('TEXT_ERROR_RIGHT'), lang::get('TEXT_ERROR_RIGHT2'));
            system::redirect('/');
        }
        //Производим сжатие страницы
        if (reg::getKey('/config/gzip')) {
            $PREFER_DEFLATE = false;
            $FORCE_COMPRESSION = false;
            $AE = isset($_SERVER['HTTP_ACCEPT_ENCODING']) ? $_SERVER['HTTP_ACCEPT_ENCODING'] : $_SERVER['HTTP_TE'];
            $support_gzip = strpos($AE, 'gzip') !== FALSE || $FORCE_COMPRESSION;
            $support_deflate = strpos($AE, 'deflate') !== FALSE || $FORCE_COMPRESSION;
            if ($support_gzip && $support_deflate) {
                $support_deflate = $PREFER_DEFLATE;
            }
            if ($support_deflate) {
                header("Content-Encoding: deflate");
                ob_start("compress_output_deflate");
            } else {
                if ($support_gzip) {
                    header("Content-Encoding: gzip");
                    ob_start("compress_output_gzip");
                } else {
                    ob_start();
                }
            }
        }
        return ui::getMainHTML($content);
    }
Esempio n. 13
0
 // обработчик изменения объекта
 public function proc_upd()
 {
     if (isset($_POST['objchange'])) {
         // Обработчик мультиформы
         $form = new ormMultiForm('change');
         $class = ormClasses::get($form->getParam(0));
         if (!$class->isInheritor('handbook') || $class->getSName() == 'handbook') {
             system::redirect('/constructor');
         }
         $form->process();
         if ($_POST['parram'] == 'apply') {
             system::redirect('/constructor/list/' . $class->id());
         } else {
             system::redirect('/constructor');
         }
     } else {
         // Обработчик для еденичного изменения класса
         $mini_action = substr(system::action(), -3);
         if (system::action() == "proc_upd") {
             // Говорим какой объект нужно изменить
             $obj = ormObjects::get(system::POST('obj_id'));
         } else {
             if (system::action() == "proc_add") {
                 // Говорим какой объект нужно создать
                 $obj = new ormObject();
                 $obj->setClass(system::POST('class_id'));
             }
         }
         // Если произошли ошибки, перенаправляем на главную страницу модуля
         if ($obj->issetErrors()) {
             system::redirect('/constructor/list/' . system::POST('class_id'));
         }
         // Присваиваем пришедшие значения полям в объекте
         $obj->loadFromPost($mini_action);
         // Сохраняем изменения
         $obj_id = $obj->save();
         // Если объект не сохранился, выводим пользователю текст ошибки.
         if ($obj_id === false) {
             system::savePostToSession();
             ui::MessageBox(lang::get('TEXT_MESSAGE_ERROR'), $obj->getErrorListText());
             ui::selectErrorFields($obj->getErrorFields());
             $obj_id = empty($_POST['obj_id']) ? system::POST('class_id') : system::POST('obj_id');
             system::redirect('/constructor/list_' . $mini_action . '/' . $obj_id);
         }
         // Если данные изменились корректно перенаправляем на соответствующию страницу
         if ($_POST['parram'] == 'apply') {
             system::redirect('/constructor/list_upd/' . $obj_id);
         } else {
             system::redirect('/constructor/list/' . $obj->getClass()->id());
         }
     }
Esempio n. 14
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. 15
0
    public function defAction()
    {
        $_SESSION['STRUCTURE_LIST_FLAG'] = 1;
        // Если страниц нет, предлагаем добавить новую
        if (ormPages::getCountOfSection(0) == 0) {
            ui::MessageBox(lang::get('STRUCTURE_PAGE_NOT_FOUND'), lang::get('STRUCTURE_PAGE_NOT_FOUND2'));
            system::redirect('/structure/page_add');
        }
        $obj_id = system::issetUrl(2) ? system::url(2) : 0;
        function getPageNotice($page)
        {
            $notice = '';
            if ($page->is_home_page) {
                $notice = lang::get('STRUCTURE_TREE_TEXT12');
            }
            if ($page->other_link != '') {
                $notice = lang::get('STRUCTURE_TREE_TEXT32');
            }
            if (!$page->view_in_menu) {
                if (!empty($notice)) {
                    $notice .= ', ';
                }
                $notice .= lang::get('STRUCTURE_TREE_TEXT22');
            }
            if (!empty($notice)) {
                return '(' . $notice . ')';
            } else {
                return '';
            }
        }
        // Вывод дерева объектов
        $tree = new ormTree(328, 57);
        $tree->setClass('ormPage');
        $tree->setRoot(0, reg::getKey(ormPages::getPrefix() . '/title_prefix'), 'list/0');
        $tree->setNotice('getPageNotice');
        $tree->setRightEdit('list');
        $tree->setRightActive('page_proc_act');
        $tree->setRightRemove('page_proc_moveto');
        $tree->setRightAjaxLoad('list');
        $tree->setDelMessage(lang::get('STRUCTURE_DEL_TITLE'), lang::get('STRUCTURE_DEL_TEXT'));
        $tree->addRight('page_upd', lang::right('page_upd'), 'compose_image');
        $tree->addRight('page_add', lang::right('page_add'), 'add_image');
        //, 'class_list', $class_list
        ui::setLeftPanel($tree->getHTML());
        // Заголовок страницы
        ui::setHeader(lang::right('tree'));
        if (!empty($obj_id) && ($obj = ormPages::get($obj_id))) {
            ui::setNaviBar(lang::right('list'));
            ui::setHeader($obj->name);
            ui::setBackButton('/structure/list/' . $obj->getParentId());
        } else {
            $obj_id = 0;
        }
        // Формируем список классов для быстрого добавления
        $class_name = ormPages::getPopularClass($obj_id);
        $class = ormClasses::get($class_name);
        $types = ormClasses::get('section')->getAllInheritors();
        $no_edit = reg::getList(ormPages::getPrefix() . '/no_edit');
        $elem_list = $cat_list = '';
        while (list($id, $name) = each($types)) {
            if (!in_array($id, $no_edit)) {
                $bc = ormClasses::get($id);
                $pach = '/css_mpanel/tree/images/';
                $ico = 'classes/' . $bc->getSName() . '.png';
                if (!file_exists(ROOT_DIR . $pach . $ico)) {
                    $ico = 'file1.gif';
                }
                if ($bc->isInheritor('category') || $bc->getSName() == 'section') {
                    $cat_list .= '
			    	<li><img src="' . $pach . $ico . '">
			    	<a href="' . system::au() . '/structure/page_add/' . $obj_id . '/' . $bc->getSName() . '">' . $bc->getName() . '</a></li>';
                } else {
                    $elem_list .= '
			    	<li ><img src="' . $pach . $ico . '">
			    	<a href="' . system::au() . '/structure/page_add/' . $obj_id . '/' . $bc->getSName() . '">' . $bc->getName() . '</a></li>';
                }
            }
        }
        $class_list = '<ul>' . $cat_list . '</ul><ul>' . $elem_list . '</ul>';
        ui::newButton(lang::get('PANEL_BTN_ADD_PART') . $class->getPadej(0), "/structure/page_add/" . $obj_id, 'class_list', $class_list);
        // Формируем выборку страниц для таблицы
        $sel = new ormSelect();
        $sel->findInPages();
        $sel->where('parents', '=', $obj_id);
        // Определяем способ сортировки списка
        $order_by = !empty($obj_id) ? $obj->order_by : '';
        if (!empty($order_by)) {
            $pos = strpos($order_by, ' ');
            if ($pos) {
                $parram = substr($order_by, $pos + 1);
                $order_by = substr($order_by, 0, $pos);
            } else {
                $parram = '';
            }
            $sel->orderBy($order_by, $parram);
        } else {
            $sel->orderBy(position, asc);
        }
        // Вывод таблицы
        $table = new uiTable($sel);
        $table->formatValues(true);
        $table->showSearch(true);
        $table->hideEmptyColumns(true);
        $table->addColumn('name', lang::get('STRUCTURE_TABLE_FIELD_1'), 500, true);
        $table->addColumn('image', lang::get('STRUCTURE_TABLE_FIELD_2'), 400, false, false);
        $table->addColumn('price', lang::get('STRUCTURE_TABLE_FIELD_3'), 400);
        $table->addColumn('publ_date', lang::get('STRUCTURE_TABLE_FIELD_4'), 400);
        $table->defaultRight('page_upd');
        $table->addRight('page_upd', 'edit', single);
        $table->addRight('list', 'list', single);
        $table->addRight('page_history', 'history', single);
        $table->addRight('page_proc_act', 'active', multi);
        $table->addRight('page_del', 'drop', multi);
        $table->setDelMessage(lang::get('STRUCTURE_DEL_TITLE'), lang::get('STRUCTURE_DEL_TITLE'));
        $table->setMultiDelMessage(lang::get('STRUCTURE_DEL_TITLE_MULTI'), lang::get('STRUCTURE_DEL_TEXT_MULTI'));
        return $table->getHTML();
    }
Esempio n. 16
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]);
     }
 }
Esempio n. 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_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);
     }
 }
Esempio n. 18
0
 static function checkClasses()
 {
     $classes = '';
     $cl_name = func_get_args();
     while (list($num, $val) = each($cl_name)) {
         if (!ormClasses::get($val)) {
             $classes .= '<li>' . $val . '</li>';
         }
     }
     if (!empty($classes)) {
         $modul = lang::module(system::url(0));
         if (empty($modul)) {
             $modul = system::url(0);
         }
         ui::$stop = true;
         ui::MessageBox(str_replace('%name%', $modul, lang::get('TEXT_CLASS_NOT_FOUND')), lang::get('TEXT_CLASS_NOT_FOUND2') . '<ul>' . $classes . '</ul>');
     }
 }
Esempio n. 19
0
 function delLang($id)
 {
     $obj = new language($id);
     if ($obj->delete() === false) {
         ui::MessageBox(lang::get('TEXT_MESSAGE_ERROR'), $obj->getErrorListText());
     }
 }
Esempio n. 20
0
 public function proc_upd()
 {
     $mini_action = substr(system::action(), -3);
     $this->createTemplate('template_id');
     $this->createTemplate('template2_id');
     if (system::action() == "proc_upd") {
         // Говорим какой объект нужно изменить
         $obj = new ormPage(system::POST('obj_id'));
     } else {
         if (system::action() == "proc_add") {
             // Говорим какой объект нужно создать
             $obj = new ormPage();
             $obj->setClass(system::POST('class_id'));
             $obj->setParent(system::POST('obj_id'));
         }
     }
     // Если произошли ошибки, перенаправляем на главную страницу модуля
     if ($obj->issetErrors()) {
         system::redirect('/structure/tree');
     }
     // Присваиваем пришедшие значения полям в объекте
     $obj->loadFromPost($mini_action);
     rights::setListForObject($obj);
     // Сохраняем изменения
     $obj_id = $obj->save();
     // Если объект не сохранился, выводим пользователю текст ошибки.
     if ($obj_id === false) {
         system::savePostToSession();
         ui::MessageBox(lang::get('TEXT_MESSAGE_ERROR'), $obj->getErrorListText());
         ui::selectErrorFields($obj->getErrorFields());
         $class = $mini_action == 'add' ? '/' . system::POST('class_id') : '';
         system::redirect('/structure/page_' . $mini_action . '/' . $_POST['obj_id'] . $class);
     } else {
         // Присваиваем выбранные шаблоны для всех вложенных объектов, если выбрано.
         if (system::POST('template_id_all', isBool)) {
             $this->inheritTemplate($_POST['template_id'], false, $obj_id);
         }
         if (system::POST('template2_id_all', isBool)) {
             $this->inheritTemplate($_POST['template2_id'], true, $obj_id);
         }
     }
     // Если данные изменились корректно перенаправляем на соответствующию страницу
     if ($_POST['parram'] == 'apply') {
         system::redirect('/structure/page_upd/' . $obj_id);
     } else {
         if (isset($_SESSION['STRUCTURE_LIST_FLAG']) && $_SESSION['STRUCTURE_LIST_FLAG']) {
             system::redirect('/structure/list/' . $obj->getParentId());
         } else {
             system::redirect('/structure/tree');
         }
     }
 }
Esempio n. 21
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');
     }
 }
Esempio n. 22
0
 public function proc_addlist()
 {
     $count = 0;
     if (!empty($_POST['emails']) && !empty($_POST['subscribes'])) {
         preg_match_all("/[-0-9a-z_\\.]+@[-0-9a-z^\\.]+\\.[a-z]{2,4}/i", $_POST['emails'], $mas);
         while (list($num, $email) = each($mas[0])) {
             $id = mailingProcess::addEmail($email, $_POST['subscribes']);
             if ($id) {
                 $count++;
             }
         }
     }
     ui::MessageBox(lang::get('SUBSCRIBE_ADDED_EMAILS') . ruNumbers::decl($count, lang::get('SUBSCRIBE_AE')) . '.');
     system::redirect('/subscription/user/' . system::POST('parent_id', isInt));
 }
Esempio n. 23
0
 public function proc_upd()
 {
     if (system::action() == "proc_upd") {
         $class = new ormClass($_POST['obj_id']);
     } else {
         if (system::action() == "proc_add") {
             $class = new ormClass();
             $class->setParentId($_POST['obj_id']);
         }
     }
     $class->setName(system::POST('class_name'));
     $class->setSName(system::POST('sname'));
     $class->setSystem(system::POST('system'));
     $class->setIsList(system::POST('is_list'));
     if (isset($_POST['text'])) {
         $class->setPadej($_POST['text']);
     }
     if (isset($_POST['class_list'])) {
         $class->setBaseClass($_POST['class_list']);
     }
     $class_id = $class->save();
     if ($class_id === false) {
         $listError = '';
         $errors = $class->getErrorList();
         while (list($key, $text) = each($errors)) {
             $listError .= $text . '<br />';
         }
         system::savePostToSession();
         ui::MessageBox(lang::get('TEXT_MESSAGE_ERROR'), $listError);
         system::redirect('/constructor/class_' . substr(system::action(), -3) . '/' . $_POST['obj_id']);
     }
     if (isset($_POST['template_list1'])) {
         $class->setDefTemplate($_POST['template_list1'], 0);
     }
     if (isset($_POST['template_list2'])) {
         $class->setDefTemplate($_POST['template_list2'], 1);
     }
     if ($_POST['parram'] == 'apply') {
         system::redirect('/constructor/class_upd/' . $class_id);
     } else {
         system::redirect('/constructor/tree');
     }
 }