示例#1
0
 function __construct()
 {
     // Настраиваем отображение для полей
     $this->setFieldsRightEdit("changeField(%item.id%, 'upd')");
     $this->addFieldsEmptyRight();
     $this->addFieldsEmptyRight();
     $this->addFieldsRight('field_upd', lang::right('field_upd'), 'compose_image', "changeField(%item.id%, 'upd')");
     $this->addFieldsRight('field_del', lang::right('field_del'), 'drop_image', 'delField(%item.id%)');
     // Настраиваем отображение для разделителей
     $this->setFieldsRightEdit2("changeSepar(%item.id%, 'upd')");
     $this->addFieldsEmptyRight2();
     $this->addFieldsEmptyRight2();
     $this->addFieldsRight2('separator_upd', lang::right('separator_upd'), 'compose_image', "changeSepar(%item.id%, 'upd')");
     $this->addFieldsRight2('field_del', lang::right('field_del'), 'drop_image', 'delField(%item.id%)');
     // Настраиваем отображение для групп
     $this->setGroupsRightEdit("changeGroup(%item.id%, 'upd')");
     $this->addGroupsRight('separator_add', lang::right('separator_add'), 'add_vacum', "addSepar(%item.id%)");
     $this->addGroupsRight('separator_add', lang::right('separator_add'), 'add_abc', "changeSepar(%item.id%, 'add')");
     $this->addGroupsRight('field_add', lang::right('field_add'), 'add_image', "changeField(%item.id%, 'add')");
     $this->addGroupsEmptyRight();
     $this->addGroupsRight('fgroup_upd', lang::right('fgroup_upd'), 'compose_image', "changeGroup(%item.id%, 'upd')");
     $this->addGroupsRight('fgroup_del', lang::right('fgroup_del'), 'drop_image', 'delGroup(%item.id%)');
     // Настраиваем отображение для системных групп
     $this->addGroupsRight2('separator_add', lang::right('separator_add'), 'add_vacum', "addSepar(%item.id%)");
     $this->addGroupsRight2('separator_add', lang::right('separator_add'), 'add_abc', "changeSepar(%item.id%, 'add')");
     $this->addGroupsRight2('field_add', lang::right('field_add'), 'add_image', "changeField(%item.id%, 'add')");
     $this->addGroupsEmptyRight2();
     $this->addGroupsEmptyRight2();
     $this->addGroupsEmptyRight2();
 }
示例#2
0
 public function __construct()
 {
     ui::checkClasses('handbook');
     ui::addLeftButton(lang::right('list'), 'list');
     ui::addLeftButton(lang::right('state'), 'state');
     ui::addLeftButton(lang::right('delivery'), 'delivery');
     ui::addLeftButton(lang::right('payment'), 'payment');
 }
示例#3
0
 public function defAction()
 {
     if (!system::issetUrl(2)) {
         system::redirect('/reference');
     }
     if ($class = ormClasses::get(system::url(2))) {
         if (!$class->isInheritor('handbook') || $class->getSName() == 'handbook') {
             system::redirect('/reference');
         }
         ui::setNaviBar(lang::right('values'));
         ui::setHeader($class->getName());
         ui::setBackButton('/reference');
         if (user::issetRight('val_upd')) {
             $count = 0;
             $fields = $class->loadFields();
             foreach ($fields as $field) {
                 if ($field['f_view'] == 1) {
                     $count++;
                 }
             }
         } else {
             $count = 4;
         }
         $sel = new ormSelect($class->getSName());
         if ($count > 5) {
             ui::newButton(lang::get('BTN_NEW_LIST'), '/reference/val_add/' . system::url(2));
             $table = new uiTable($sel);
             $table->showSearch(true);
             $table->addColumn('name', 'Имя объекта');
             $table->addColumn('id', '#', 200);
             $table->defaultRight('val_upd');
             $table->addRight('val_upd', 'edit', single);
             $table->addRight('val_del', 'drop', multi);
             return $table->getHTML();
         } else {
             ui::newButton(lang::get('BTN_SAVE'), "javascript:sendForm('save');");
             ui::newButton(lang::get('BTN_APPLY'), "javascript:sendForm('apply');");
             $form = new ormMultiForm('change');
             $form->setData($sel);
             $form->showColumnID();
             $form->setRight('val_proc_upd');
             $form->moreParam(system::url(2));
             if (!user::issetRight('val_upd') || !user::issetRight('val_add')) {
                 $form->withoutAdditions();
             }
             if (!user::issetRight('val_del')) {
                 $form->withoutRemoving();
             }
             return $form->getHTML();
         }
     } else {
         system::redirect('/reference');
     }
 }
示例#4
0
 private function createTree($parent, $TEMPLATE)
 {
     $items = '';
     while ($obj = ormClasses::getInheritor($parent)) {
         page::assign('subitem', $this->createTree($obj->id(), $TEMPLATE));
         page::assign('obj.id', $obj->id());
         page::assign('obj.url', system::au() . '/constructor/class_upd/' . $obj->id());
         page::assign('obj.name', $obj->getName());
         page::assign('obj.sname', $obj->getSName());
         page::assign('obj.parent', $obj->getParentId());
         $pach = '/css_mpanel/tree/images/classes/';
         $ico = file_exists(ROOT_DIR . $pach . $obj->getSName() . '.png') ? $obj->getSName() . '.png' : 'file1.gif';
         page::assign('obj.ico', $pach . $ico);
         $rights = '';
         reset($this->rights);
         while (list($right, $pict) = each($this->rights)) {
             $modul = $right == 'values' ? 'reference' : 'constructor';
             if (user::issetRight($right, $modul) || $pict == 'empty') {
                 if ($pict == 'empty') {
                     $rights .= page::parse($TEMPLATE['empty_right']);
                 } else {
                     $parse = true;
                     if ($right == 'values') {
                         $parse = $obj->isInheritor('handbook') && $obj->getSName() != 'handbook';
                     }
                     if ($right == 'class_del') {
                         $parse = !$obj->isSystem();
                     }
                     if ($parse) {
                         $del_button = $right == 'class_del' ? 'class="del_button"' : '';
                         page::assign('del_button', $del_button);
                         page::assign('right.url', system::au() . '/' . $modul . '/' . $right);
                         page::assign('right.title', lang::right($right, $modul));
                         page::assign('right.class', $pict);
                         $rights .= page::parse($TEMPLATE['right']);
                     } else {
                         $rights .= page::parse($TEMPLATE['empty_right']);
                     }
                 }
             }
         }
         page::assign('rights', $rights);
         $items .= page::parse($TEMPLATE['item']);
     }
     if (!empty($items)) {
         page::assign('items', $items);
         return page::parse($TEMPLATE['frame_items']);
     }
 }
示例#5
0
 public function defAction()
 {
     ui::addLeftButton(lang::right('list'), 'list');
     ui::addLeftButton(lang::right('state'), 'state');
     ui::addLeftButton(lang::right('delivery'), 'delivery');
     ui::addLeftButton(lang::right('payment'), 'payment');
     ui::newButton(lang::get('ESHOP_ADD_PAYMENT'), '/eshop/payment_add');
     $sel = new ormSelect('eshop_payment_method');
     $table = new uiTable($sel);
     $table->addColumn('name', 'Название', 500);
     $table->defaultRight('payment_upd');
     $table->addRight('payment_upd', 'edit', single);
     $table->addRight('payment_del', 'drop', multi);
     return $table->getHTML();
 }
示例#6
0
 public function defAction()
 {
     ui::addLeftButton(lang::right('list'), 'list');
     ui::addLeftButton(lang::right('state'), 'state');
     ui::addLeftButton(lang::right('delivery'), 'delivery');
     ui::addLeftButton(lang::right('payment'), 'payment');
     ui::newButton(lang::get('ESHOP_ADD_DELIVERY'), '/eshop/delivery_add');
     $sel = new ormSelect('eshop_delivery_method');
     $table = new uiTable($sel);
     $table->addColumn('name', 'Название', 500);
     $table->addColumn('price', 'Добавочная стоимость (руб.)', 300);
     $table->defaultRight('delivery_upd');
     $table->addRight('delivery_upd', 'edit', single);
     $table->addRight('delivery_del', 'drop', multi);
     return $table->getHTML();
 }
示例#7
0
 public function defAction()
 {
     if ($parent = ormObjects::get(system::url(2))) {
         ui::setNaviBar(lang::right('msg'));
         ui::setHeader($parent->name);
     } else {
         system::redirect('/subscription');
     }
     ui::setBackButton('/subscription');
     ui::newButton(lang::get('SUBSCRIBE_BTN_ADD2'), '/subscription/msg_add/' . system::url(2));
     function getState($date, $obj)
     {
         if ($obj->error_part_num > 0) {
             $time = time() - strtotime($obj->last_subscribe);
             if ($time > 4) {
                 return str_replace('%part%', $obj->error_part_num, lang::get('SUBSCRIBE_MSG', 1));
             } else {
                 return str_replace('%part%', $obj->error_part_num, lang::get('SUBSCRIBE_MSG', 2));
             }
         } else {
             if ($obj->part_count_awaiting > 0) {
                 page::assign('part1', $obj->part_count - $obj->part_count_awaiting);
                 page::assign('part2', $obj->part_count);
                 return page::parse(lang::get('SUBSCRIBE_MSG', 3));
             } else {
                 if ($obj->last_subscribe == '0000-00-00 00:00:00') {
                     return lang::get('SUBSCRIBE_MSG', 4);
                 } else {
                     return lang::get('SUBSCRIBE_MSG', 5) . ' ' . date('d.m.Y ' . lang::get('SUBSCRIBE_MSG', 6) . ' H:i', strtotime($obj->last_subscribe));
                 }
             }
         }
     }
     // Выводим список сообщений рассылки
     $sel = new ormSelect('subscribe_msg');
     $sel->fields('name, last_subscribe, part_count, part_count_awaiting, error_part_num');
     $sel->where('parents', '=', system::url(2));
     $sel->orderBy('create_date', desc);
     $table = new uiTable($sel);
     $table->formatValues(true);
     $table->addColumn('name', lang::get('SUBSCRIBE_MSG_TT1'), 300);
     $table->addColumn('last_subscribe', lang::get('SUBSCRIBE_MSG_TT2'), 300, 0, 1, 'getState');
     $table->defaultRight('msg_upd');
     $table->addRight('msg_upd', 'edit', single);
     $table->addRight('msg_del', 'drop', multi);
     return $table->getHTML();
 }
示例#8
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();
 }
示例#9
0
 public function defAction()
 {
     ui::addLeftButton(lang::right('list'), 'list');
     ui::addLeftButton(lang::right('state'), 'state');
     ui::addLeftButton(lang::right('delivery'), 'delivery');
     ui::addLeftButton(lang::right('payment'), 'payment');
     ui::newButton(lang::get('ESHOP_ADD_STATE'), '/eshop/state_add');
     $sel = new ormSelect('eshop_status');
     //$sel->where('form_id', '<>', 0);
     $sel->orderBy('number', asc);
     $table = new uiTable($sel);
     $table->showFilters(true);
     $table->formatValues(true);
     $table->addColumn('number', '#', 10);
     $table->addColumn('name', 'Название', 200);
     $table->addColumn('notice', 'Описание', 400);
     $table->defaultRight('state_upd');
     $table->addRight('state_upd', 'edit', single);
     $table->addRight('state_del', 'drop', multi);
     return $table->getHTML();
 }
示例#10
0
 public function upd()
 {
     // Указываем для какого объекта строить форму
     if (system::action() == "upd") {
         // Если это редактирование
         $obj = ormObjects::get(system::url(2));
         // Заголовок страницы
         ui::setNaviBar(lang::right('group_upd'));
         ui::setHeader($obj->name);
         $right = 'group_proc_upd';
     } else {
         if (system::action() == "add") {
             // Если это добавление нового объекта
             $obj = new ormObject();
             $obj->setParent(0);
             $obj->setClass('user_group');
             // Устанавливает параметры по умолчанию
             $obj->active = 1;
             $right = 'group_proc_add';
         }
     }
     // Если произошли ошибки, перенаправляем на главную страницу модуля
     if (!$obj->isInheritor('user_group')) {
         system::redirect('/users');
     }
     // Устанавливаем кнопки для формы
     ui::setCancelButton('/users/grouplist');
     ui::newButton(lang::get('BTN_SAVE'), "javascript:sendForm('save');");
     ui::newButton(lang::get('BTN_APPLY'), "javascript:sendForm('apply');");
     // Создаем форму и выводим ее на страницу
     $form = new ormEditForm($obj, $right);
     $form->attachJavaScript('/css_mpanel/group_upd.js');
     $form->addInBottomTabs('base', rights::getListForModuls(system::url(2), 0));
     // Здесь можно переопределить стандартные параметры формы редактирования
     // ...
     return $form->getHTML();
 }
示例#11
0
 public function defAction()
 {
     if (!system::issetUrl(2)) {
         system::redirect('/subscription');
     }
     if ($parent = ormObjects::get(system::url(2))) {
         ui::setNaviBar(lang::right('user'));
         ui::setHeader($parent->name);
     }
     ui::newButton(lang::get('SUBSCRIBE_BTN_ADD3'), '/subscription/user_add/' . system::url(2));
     ui::newButton(lang::get('SUBSCRIBE_BTN_ADD4'), '/subscription/user_addlist/' . system::url(2));
     ui::setBackButton('/subscription');
     $sel = new ormSelect('subscribe_user');
     $sel->where('parents', '=', system::url(2));
     $table = new uiTable($sel);
     $table->showSearch(true);
     $table->moreParam(system::url(2));
     $table->addColumn('name', lang::get('SUBSCRIBE_USER_TT1'), 300);
     $table->addColumn('second_name first_name', lang::get('SUBSCRIBE_USER_TT2'), 300);
     $table->defaultRight('user_upd');
     $table->addRight('user_upd', 'edit', single);
     $table->addRight('user_del', 'drop', multi);
     return $table->getHTML();
 }
示例#12
0
 public function history()
 {
     if (system::url(2) == 0) {
         system::redirect('/structure');
     }
     if ($obj = ormPages::get(system::url(2))) {
         if (isset($_SESSION['STRUCTURE_LIST_FLAG']) && $_SESSION['STRUCTURE_LIST_FLAG']) {
             ui::setBackButton('/structure/list/' . $obj->getParentId());
         } else {
             ui::setBackButton('/structure/tree');
         }
         ui::setNaviBar(lang::right('page_history') . ' ' . $obj->getClass()->getPadej(1));
         ui::setHeader($obj->name);
         return ui::getHistoryTable($obj->id);
     }
     system::redirect('/structure');
 }
示例#13
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);
    }
示例#14
0
 static function setRight($mas)
 {
     self::$right = $mas;
 }
示例#15
0
 private function rights($TEMPLATE)
 {
     $rights = $rights_multi = $rights_act = '';
     while (list($key, $right) = each($this->rights)) {
         // Определяем модуль для указанного права
         $pos = strpos($right['name'], '.');
         if (!empty($pos)) {
             $module = substr($right['name'], 0, $pos);
             $right['name'] = substr($right['name'], $pos + 1, strlen($right['name']));
         } else {
             $module = system::url(0);
         }
         if (user::issetRight($right['name'], $module)) {
             $url = system::au() . '/' . $module . '/' . $right['name'] . '/';
             page::assign('url', $url);
             page::assign('class', $right['class']);
             page::assign('hint', lang::right($right['name']));
             page::assign('del_button', $right['class'] == 'drop' ? 'id="del_button"' : '');
             $java = !empty($right['java']) ? ' onClick="return ' . $right['java'] . '"' : '';
             page::assign('java', $java);
             if ($right['class'] != 'active' && $right['view'] != only_multi) {
                 // Формируем список прав с одинарным выбором
                 $rights .= page::parse($TEMPLATE['right']);
             } else {
                 if ($right['class'] == 'active') {
                     // Активность объекта
                     $rights_act .= page::parse($TEMPLATE['right_active']);
                     //$active_right = $url;
                 }
             }
             // Формируем список прав с множественным выбором
             if ($right['view'] == multi || $right['view'] == only_multi) {
                 if ($right['class'] == 'active') {
                     $text = lang::get('TABLE_ACTIVE_RIGHT');
                 } else {
                     if ($right['class'] == 'drop') {
                         $text = lang::get('TABLE_DROP_RIGHT');
                     } else {
                         $text = $right['text'];
                     }
                 }
                 page::assign('hint', $text);
                 $rights_multi .= page::parse($TEMPLATE['right_multi']);
             }
         } else {
             if ($right['class'] == 'active') {
                 // Активность объекта - не кликабельно
                 $rights_act .= page::parse($TEMPLATE['right_active_noclick']);
             }
         }
     }
     page::assign('rights', $rights);
     page::fParse('rights', $TEMPLATE['rights']);
     page::assign('active', $rights_act);
     page::assign('rights_multi', $rights_multi);
     // Смотрим, нужно ли выводить чекбоксы
     if (!empty($rights_multi)) {
         page::fParse('checkbox', $TEMPLATE['checkbox']);
         page::fParse('checkbox_multi', $TEMPLATE['checkbox_multi']);
     } else {
         page::assign('checkbox', '');
         page::assign('checkbox_multi', '');
     }
     // Смотрим, выводить или нет первый столбец-заглушку
     if (!empty($rights_act) || !empty($rights_multi)) {
         $width = !empty($rights_act) && !empty($rights_multi) ? 60 : 30;
         page::assign('width', $width);
         page::fParse('first_column', $TEMPLATE['first_column']);
         page::fParse('item_check', $TEMPLATE['item_check']);
     } else {
         page::assign('first_column', '');
         page::assign('item_check', '');
     }
     page::fParse('shapka', $TEMPLATE['shapka']);
 }
示例#16
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();
    }
示例#17
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();
    }
示例#18
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');
 }