Esempio n. 1
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 .= '<li><a href="' . system::au() . '/users/user_add/0/' . $bclass->getSName() . '" >' . $bclass->getName() . '</a></li>';
         }
         $java = '<script> $("#usel").parent().css("width", "150px"); </script>';
         ui::newButton(lang::get('BTN_NEW_USER'), "/users/user_add", 'class_list', '<ul id="usel">' . $class_list . '</ul>' . $java);
     } else {
         ui::newButton(lang::get('BTN_NEW_USER'), "/users/user_add");
     }
     ui::newButton(lang::get('BTN_NEW_UGROUP'), "/users/group_add");
     $sel = new ormSelect('user_group');
     $sel->orderBy('name', asc);
     $table = new uiTable($sel);
     $table->showSearch(true);
     $table->addColumn('name', lang::get('USERS_TABLE_FIELD_5'), 0, true);
     $table->addColumn('children', lang::get('USERS_TABLE_FIELD_6'), 0, true, true, 'count');
     $table->defaultRight('userlist');
     $table->addRight('userlist', 'users', single);
     $table->addRight('group_upd', 'edit', single);
     $table->addRight('group_act', 'active', multi);
     $table->addRight('group_del', 'drop', multi);
     $table->setDelMessage(lang::get('USERS_DEL_TITLE2'), lang::get('USERS_DEL_TEXT2'));
     $table->setMultiDelMessage(lang::get('USERS_DEL_TITLE_MULTI2'), lang::get('USERS_DEL_TEXT_MULTI2'));
     return $table->getHTML();
 }
Esempio n. 2
0
 function upd()
 {
     // Устанавливаем кнопки для формы
     ui::setCancelButton('/comments/list');
     ui::newButton(lang::get('BTN_SAVE'), "javascript:sendForm('save');");
     ui::newButton(lang::get('BTN_APPLY'), "javascript:sendForm('apply');");
     if (file_exists(MODUL_DIR . '/comments/template/comment.tpl')) {
         include MODUL_DIR . '/comments/template/comment.tpl';
     }
     if (!($obj = comments::get(system::url(2)))) {
         system::redirect('/comments/list');
     }
     if ($obj->getUserId() != 0 && user::issetRight('user_upd', 'users')) {
         $url = system::au() . '/users/user_upd/' . $obj->getUserId();
         page::assign('user_link', $url);
         page::fParse('user_name', $TEMPLATE['user_link']);
     } else {
         page::fParse('user_name', $TEMPLATE['user_name']);
     }
     page::assign('obj.id', $obj->id());
     page::assign('obj.username', $obj->getUserName());
     page::assign('obj.email', $obj->getEmail());
     page::assign('obj.text', $obj->getText());
     page::assign('obj.date', date('d.m.Y H:i', strtotime($obj->getPublDate())));
     page::assign('obj.parram', $obj->getParram());
     ui::CheckBox('active', 1, $obj->isActive(), 'Проверен');
     // Информация о странице
     if ($page = ormPages::get($obj->getObjId())) {
         page::assign('page.id', $page->id);
         page::assign('page.url', $page->url);
         page::assign('page.name', $page->name);
     }
     return page::parse($TEMPLATE['frame']);
 }
Esempio n. 3
0
 function getEditUser($val, $obj)
 {
     if (user::issetRight('user_upd', 'users')) {
         return '<a href="' . system::au() . '/users/user_upd/' . $obj['rev_user_id'] . '" target="_blank">' . $val . '</a>';
     } else {
         return $val;
     }
 }
Esempio n. 4
0
 function getUserName($val, $obj)
 {
     $name = $val . ' (' . $obj['c_email'] . ')';
     if (!empty($obj['c_user_id']) && user::issetRight('user_upd', 'users')) {
         $url = system::au() . '/users/user_upd/' . $obj['c_user_id'];
         $name = '<a href="' . $url . '" target="_blank">' . $name . '</a>';
     }
     return $name;
 }
Esempio n. 5
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']);
     }
 }
Esempio n. 6
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. 7
0
 public function upd()
 {
     // Указываем для какого объекта строить форму
     if (system::action() == "upd") {
         // Если это редактирование
         if (!($obj = ormObjects::get(system::url(2)))) {
             system::redirect('/subscription');
         }
         $parent_id = $obj->parent_id;
         $right = 'user_proc_upd';
     } else {
         if (system::action() == "add") {
             // Если это добавление нового объекта
             $parent_id = system::url(2);
             $right = 'user_proc_add';
             $obj = new ormObject();
             $obj->setClass('subscribe_user');
             $obj->setParent($parent_id);
         }
     }
     // Если произошли ошибки, перенаправляем на главную страницу модуля
     if ($obj->issetErrors()) {
         system::redirect('/subscription');
     }
     // Устанавливаем кнопки для формы
     ui::setCancelButton('/subscription/user/' . $parent_id);
     ui::newButton(lang::get('BTN_SAVE'), "javascript:sendForm('save');");
     ui::newButton(lang::get('BTN_APPLY'), "javascript:sendForm('apply');");
     // Создаем форму и выводим ее на страницу
     $form = new ormEditForm($obj, $right);
     if (($user = ormObjects::get($obj->user_id)) && user::issetRight('user_upd', 'users')) {
         $un = $user->surname . ' ' . $user->name . ' (' . $user->login . ')';
         $form->replaceField('user_id', '<a href="' . system::au() . '/users/user_upd/' . $user->id . '">' . $un . '</a>');
     } else {
         $form->replaceField('user_id', '', true);
     }
     return $form->getHTML();
 }
Esempio n. 8
0
 private function getMenu()
 {
     if (file_exists(MODUL_DIR . '/mpanel/template/menu.tpl')) {
         include MODUL_DIR . '/mpanel/template/menu.tpl';
         if (file_exists(MODUL_DIR . '/mpanel/lang-ru.php')) {
             include MODUL_DIR . '/mpanel/lang-ru.php';
         }
         $mas = user::getRights();
         ///print_r($mas);
         $items = $sub_items = '';
         $num = 0;
         while (list($name, $modul) = each($mas)) {
             if (!empty($modul['rights'])) {
                 $num++;
                 if (file_exists(MODUL_DIR . '/' . $name . '/lang-ru.php')) {
                     include MODUL_DIR . '/' . $name . '/lang-ru.php';
                 }
                 $mod_name = isset($MODNAME[$name]) ? $MODNAME[$name] : $name;
                 page::assign('name', $mod_name);
                 page::assign('url', system::au() . '/' . $name);
                 if ($num < 7) {
                     $act = system::url(0) == $name ? 'act' : 'no_act';
                     $items .= page::parse($TEMPLATE['item_' . $act]);
                 } else {
                     $sub_items .= page::parse($TEMPLATE['sub_item']);
                 }
             }
         }
         // Список редко используемых модулей
         if (!empty($sub_items)) {
             page::assign('eshe', $LANG['eshe']);
             page::assign('sub_items', $sub_items);
             $sub_menu = page::parse($TEMPLATE['sub_menu']);
         } else {
             $sub_menu = '';
         }
         // echo $sub_menu;
         // Вывод списка языковых версий и доменов
         $sub_menu .= $this->getLangsAndDomains($TEMPLATE);
         page::assign('items', $items);
         page::assign('sub_menu', $sub_menu);
         $menu = page::parse($TEMPLATE['basic_menu']);
         page::assign('menu', $menu);
         // Устанавливаем доступ к языковым переменным
         if (isset($RIGHT) && isset($MODNAME)) {
             lang::setLang($LANG);
             lang::setRight($RIGHT);
             lang::setModule($MODNAME);
         }
     }
 }
Esempio n. 9
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']);
 }
Esempio n. 10
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. 11
0
 /**
  * @return Сгенерированный HTML
  * @param ormClass $class -  экземпляр ORM-класса, для которого необходимо построить структуру
  * @param String $templ_name - имя шаблона оформления
  * @desc Генерирует структуру полей для класса данных
  */
 function getHTML($class, $templ_name = 'orm_fields_tree')
 {
     if (file_exists(MODUL_DIR . '/mpanel/template/' . $templ_name . '.tpl')) {
         include MODUL_DIR . '/mpanel/template/' . $templ_name . '.tpl';
         $nodes['groups'] = $class->getAllGroups();
         $nodes['fields'] = $class->getAllFields();
         $main_url = system::au() . '/' . system::url(0) . '/';
         page::assign('main_url', $main_url);
         if (is_array($nodes) && isset($nodes['groups']) && isset($nodes['fields'])) {
             $groups = '';
             while (list($key, $node) = each($nodes['groups'])) {
                 // Парсим данные о вложенных полях
                 $fields = '';
                 reset($nodes['fields']);
                 while (list($key, $field) = each($nodes['fields'])) {
                     if ($field['f_group_id'] == $node['fg_id']) {
                         if (empty($field['f_name'])) {
                             $field['f_name'] = '- - - - -';
                         }
                         page::assign('item.id', $field['f_id']);
                         page::assign('item.parent_id', $field['f_group_id']);
                         page::fParse('item.url', $this->rightEdit);
                         page::assign('item.name', $field['f_name']);
                         page::assign('item.sname', $field['f_sname']);
                         page::assign('item.type', lang::get('CONSTR_TYPE_LIST', $field['f_type']));
                         page::assign('star', $field['f_required'] ? '*' : '');
                         page::assign('sh', $field['f_view'] ? 'lshow' : 'lhide');
                         if (empty($field['f_type'])) {
                             page::assign('item.right', $this->getRightForField($TEMPLATE, $field['f_id'], $field['f_type'], $field['f_sname']));
                             $fields .= page::parse($TEMPLATE['separator']);
                         } else {
                             if ($field['f_system'] || $field['f_is_clone']) {
                                 $fields .= page::parse($TEMPLATE['field_not_edit']);
                             } else {
                                 page::assign('item.right', $this->getRightForField($TEMPLATE, $field['f_id'], $field['f_type'], $field['f_sname']));
                                 $fields .= page::parse($TEMPLATE['field_edit']);
                             }
                         }
                     }
                 }
                 page::assign('items', $fields);
                 page::assign('item.id', $node['fg_id']);
                 page::fParse('sub_items', $TEMPLATE['frame_items']);
                 // Парсим данные о группе полей 		fg_view   fg_sname
                 page::assign('item.id', $node['fg_id']);
                 page::assign('item.parent_id', 0);
                 page::fParse('item.url', $this->rightEdit2);
                 page::assign('item.name', $node['fg_name']);
                 page::assign('item.sname', $node['fg_sname']);
                 page::assign('sh', $node['fg_view'] ? ' lshow' : ' lhide');
                 $other = $node['fg_system'] || $node['fg_is_clone'] ? true : false;
                 page::assign('item.right', $this->getRightForGroup($TEMPLATE, $node['fg_id'], $other));
                 $groups .= page::parse($TEMPLATE['groups']);
             }
             page::assign('frame_items', $groups);
         } else {
             page::assign('frame_items', '');
         }
         ui::insertButton('button_new_group', lang::get('BTN_NEW_FGROUP'), 'javascript:changeGroup(' . $class->id() . ', \'add\');');
         return page::parse($TEMPLATE['main']);
     }
 }
Esempio n. 12
0
 public function upd()
 {
     // Указываем для какого объекта строить форму
     if (system::action() == "upd") {
         // Если это редактирование
         $obj = ormObjects::get(system::url(2));
         // Заголовок страницы
         ui::setNaviBar(lang::get('TEXT_EDIT') . $obj->getClass()->getPadej(1));
         ui::setHeader($obj->login);
         $class_list = '';
         $group_id = system::issetUrl(3) ? system::url(3) : $obj->getParentId();
         $right = 'user_proc_upd';
     } else {
         if (system::action() == "add") {
             $class_name = system::issetUrl(3) ? system::url(3) : 'user';
             // Если это добавление нового объекта
             $group_id = system::url(2);
             $right = 'user_proc_add';
             $obj = new ormObject();
             $obj->setParent($group_id);
             $obj->setClass($class_name);
             $obj->active = 1;
             // Формируем список классов для быстрого изменения класса объекта
             $types = ormClasses::get('user')->getAllInheritors();
             $class_list = '';
             while (list($id, $name) = each($types)) {
                 if ($bc = ormClasses::get($id)) {
                     $url = system::au() . '/users/user_add/' . $group_id . '/' . $bc->getSName();
                     $class_list .= '<a href="' . $url . '" style="line-height:17px;">' . $bc->getName() . '</a><br />';
                 }
             }
             // Заголовок страницы
             if ($group = ormObjects::get($group_id)) {
                 ui::setNaviBar($group->name, '/users/userlist/' . $group_id);
                 ui::setHeader(lang::get('TEXT_ADD') . $obj->getClass()->getPadej(1));
             }
         }
     }
     // Если произошли ошибки, перенаправляем на главную страницу модуля
     if (!$obj->isInheritor('user')) {
         system::redirect('/users/userlist');
     }
     // Устанавливаем кнопки для формы
     if (empty($group_id)) {
         ui::setCancelButton('/users/grouplist');
     } else {
         ui::setCancelButton('/users/userlist/' . $group_id);
     }
     ui::newButton(lang::get('BTN_SAVE'), "javascript:sendForm('save');");
     ui::newButton(lang::get('BTN_APPLY'), "javascript:sendForm('apply');");
     // Создаем форму и выводим ее на страницу
     $form = new ormEditForm($obj, $right);
     $form->setORMList($class_list);
     // Изменяем вид поля "Модуль по умолчанию"
     $modules = user::getModulesForObject($obj);
     $form->replaceField('def_modul', ui::SelectBox('def_modul', $modules, $obj->def_modul, 400));
     // Добавляем вкладку "Права доступа"
     $tab_content = '<div style="margin-left:20px;width: 950px;">' . lang::get('USERS_TEXT_RIGHT_HINT') . rights::getListForModuls($obj->id, 1) . '</div>';
     $form->attachJavaScript('/css_mpanel/users_upd.js');
     $form->newTabs(lang::get('USERS_TABS_RIGHT'), $tab_content);
     return $form->getHTML();
 }
Esempio n. 13
0
 public function upd()
 {
     if (system::url(3) == 'view') {
         header('Content-Type: text/html; charset=utf-8');
         page::assign('hello', '');
         page::assign('user_name', user::get('name'));
         echo page::parse(mailingProcess::getMailHTML(system::url(2)));
         system::stop();
     }
     // Указываем для какого объекта строить форму
     if (system::action() == "upd") {
         // Если это редактирование
         $obj = ormObjects::get(system::url(2));
         $parent_id = $obj->parent_id;
         $right = 'msg_proc_upd';
         if ($obj->error_part_num > 0) {
             $time = time() - strtotime($obj->last_subscribe);
             if ($time < 5) {
                 ui::MessageBox(lang::get('SUBSCRIBE_MSG_MB_TITLE'), lang::get('SUBSCRIBE_MSG_MB_TEXT'));
                 system::redirect('/subscription/msg/' . $parent_id);
             }
         }
     } else {
         if (system::action() == "add") {
             // Если это добавление нового объекта
             $parent_id = system::url(2);
             $right = 'msg_proc_add';
             $obj = new ormObject();
             $obj->setClass('subscribe_msg');
             $obj->setParent($parent_id);
             $obj->publ_date = date('d.m.Y');
         }
     }
     // Если произошли ошибки, перенаправляем на главную страницу модуля
     if ($obj->issetErrors()) {
         system::redirect('/subscription');
     }
     // Устанавливаем кнопки для формы
     ui::setCancelButton('/subscription/msg/' . $parent_id);
     ui::newButton(lang::get('BTN_SAVE'), "javascript:sendForm('save');");
     ui::newButton(lang::get('BTN_APPLY'), "javascript:sendForm('apply');");
     // Создаем форму и выводим ее на страницу
     $form = new ormEditForm($obj, $right);
     // Формируем форму рассылки сообщений
     $send_form = '';
     if (system::action() == "upd" && user::issetRight('msg_send') && ($parent = ormObjects::get($parent_id))) {
         if (file_exists(MODUL_DIR . '/subscription/template/subscription.tpl')) {
             include MODUL_DIR . '/subscription/template/subscription.tpl';
             $links = '';
             // Получаем количество частей в рассылке
             $count = mailingProcess::getPartCount($parent->id);
             if ($count > 0) {
                 $part_num = $obj->part_count - $obj->part_count_awaiting + 1;
                 if ($part_num > $obj->part_count) {
                     $part_num = 1;
                 }
                 page::assign('subject', $parent->subject);
                 // page::assign('count_part', ruNumbers::decl($count, lang::get('SUBSCRIBE_TS')));
                 page::assign('count_part', $count);
                 page::assign('count_part2', $count);
                 page::assign('part_num', $part_num);
                 page::assign('release_id', $obj->id);
                 if ($obj->error_part_num == 0) {
                     page::assign('error_part_num', $part_num);
                     page::fParse('sh1', 'block');
                     page::fParse('sh2', 'none');
                 } else {
                     page::assign('error_part_num', $obj->error_part_num);
                     ui::MessageBox(lang::get('SUBSCRIBE_TEXT_SEND', 9) . $obj->error_part_num . lang::get('SUBSCRIBE_TEXT_SEND', 10), lang::get('SUBSCRIBE_TEXT_SEND', 11));
                     page::fParse('sh2', 'block');
                     page::fParse('sh1', 'none');
                 }
                 $send_form = page::parse($TEMPLATE['frame']);
                 $links .= page::parse($TEMPLATE['send_link']);
             }
             page::assignArray(lang::get('SUBSCRIBE_TEXT_SEND'));
             page::assign('url', system::au() . '/subscription/msg_upd/' . $obj->id . '/view');
             $links .= page::parse($TEMPLATE['view_link']);
             page::assign('list', $links);
             $form->addInBottomTabs('base', page::parse($TEMPLATE['frame_link']));
         }
     }
     return $send_form . $form->getHTML();
 }
Esempio n. 14
0
 function getHTML($templ_name = 'orm_tree')
 {
     if (file_exists(MODUL_DIR . '/mpanel/template/' . $templ_name . '.tpl')) {
         include MODUL_DIR . '/mpanel/template/' . $templ_name . '.tpl';
         $main_url = system::au() . '/' . system::url(0) . '/';
         page::assign('main_url', $main_url);
         page::assign('plus_table', $this->plus_table);
         // Помечаем веточку закрытой
         if (system::isAjax() && (system::url(2) == 'close' || system::url(2) == 'open') && system::issetUrl(3)) {
             if (system::url(2) == 'open' && is_numeric(system::url(3))) {
                 $_SESSION['TREE_OPEN_NODES'][system::url(3)] = 1;
             } else {
                 if (isset($_SESSION['TREE_OPEN_NODES'][system::url(3)])) {
                     unset($_SESSION['TREE_OPEN_NODES'][system::url(3)]);
                 }
             }
             system::stop();
         } else {
             // По POST запросу формируем ветку дерева
             if (isset($_POST['id'])) {
                 if (!empty($_POST['id'])) {
                     //system::log($_POST['id']);
                     $_POST['id'] = str_replace('phtml_', '', $_POST['id']);
                     $pos = strpos($_POST['id'], '_');
                     $_POST['id'] = substr($_POST['id'], 0, strlen($_POST['id']) - (strlen($_POST['id']) - $pos));
                     //system::log($_POST['id']);
                 }
                 $_SESSION['TREE_OPEN_NODES'][$_POST['id']] = 1;
                 ormPages::init(array($_POST['id'] => 1));
                 // Строим одни уровень дерева
                 $tmp = $this->build_menu($_POST['id'], $TEMPLATE, false);
                 //echo str_replace('`%`', '%', $tmp);
                 echo $tmp;
                 system::stop();
             }
         }
         // Парсим дерево разделов
         if (isset($_SESSION['TREE_OPEN_NODES'])) {
             ormPages::init($_SESSION['TREE_OPEN_NODES']);
         }
         $subm = $this->build_menu($this->root_id, $TEMPLATE);
         page::assign('sub_items', $subm);
         page::assign('item.id', $this->root_id);
         page::assign('item.parent_id', '');
         page::assign('item.url', $this->root_url);
         page::assign('item.active', 1);
         page::assign('item.name', $this->root_title);
         page::assign('item.notice', '');
         page::assign('obj.ico', '/css_mpanel/tree/images/classes/core.png');
         page::assign('obj.url', '');
         page::assign('close', empty($subm) ? '' : ' open');
         page::fParse('items', $TEMPLATE['items']);
         page::fParse('frame_items', $TEMPLATE['frame_items']);
         // Выводим список прав для веточек
         $item = '';
         $zagl_width = 0;
         while (list($key, $right) = each($this->rights)) {
             if ($right['java'] == 1) {
                 $zagl_width += 20;
             }
             if ($right == 'empty' || !user::issetRight($right['name']) && $right['name'] != 'getUrl()') {
                 $item .= $right != 'empty' ? '' : page::parse($TEMPLATE['item_right_null']);
             } else {
                 page::assign('title', $right['title']);
                 page::assign('image_style', $right['class']);
                 page::assign('url', $main_url . $right['name'] . '/');
                 page::assign('hide_in_root', $right['show_in_root'] ? '' : ' hide_in_root');
                 if ($right['name'] == 'getUrl()') {
                     $templ = 'item_right_url';
                 } else {
                     $templ = $right['java'] == 1 ? 'item_right_del' : 'item_right';
                 }
                 if (!empty($right['list'])) {
                     $templ = 'item_right_list';
                     page::assign('list_id', $right['list']);
                     page::assign('list_html', $right['list_html']);
                     page::fParse('tree_list', $TEMPLATE['tree_list']);
                 }
                 $item .= page::parse($TEMPLATE[$templ]);
             }
         }
         page::assign('rights', $item);
         page::assign('act_link', $this->rightActive);
         page::assign('remove_link', $this->rightRemove);
         page::assign('load_link', $this->ajaxLink);
         page::assign('root_id', $this->root_id);
         page::assign('zagl_width', $zagl_width);
         // Текст сообщения об удалении элементов
         if (empty($this->del_title) || empty($this->del_text)) {
             $this->del_title = lang::get('TABLE_DROP_TITLE');
             $this->del_text = lang::get('TABLE_DROP_TEXT');
         }
         page::assign('del_title', $this->del_title);
         page::assign('del_text', $this->del_text);
         page::assign('width', $this->width);
         page::assign('width2', $this->width2);
         page::assign('left', $this->width - $this->width2);
         page::assign('style_prefix', $this->miniStyle ? '_mini' : '');
         page::assign('isEditable', $this->rightEdit ? 1 : 0);
         page::assign('isChangeActive', $this->rightActive ? 1 : 0);
         page::assign('isDragged', $this->rightRemove ? 1 : 0);
         page::assign('isShowRight', empty($this->rights) ? 0 : 1);
         return page::parse($TEMPLATE['main']);
     }
 }
Esempio n. 15
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. 16
0
    public function upd()
    {
        // Проверяем наличие шаблонов
        $templs = templates::getByDestination(0, true);
        if (empty($templs)) {
            ui::MessageBox(lang::get('STRUCTURE_TEMPL_NOT_FOUND'), lang::get('STRUCTURE_TEMPL_NOT_FOUND2'));
            system::redirect('/structure/settings#tabs-page_tpl');
        }
        // Указываем для какого объекта строить форму
        if (system::action() == "upd") {
            // Изменение страницы
            if (system::url(2) == 0) {
                system::redirect('/structure/settings');
            }
            $obj = ormPages::get(system::url(2));
            if ($obj instanceof ormPage) {
                $parent_id = $obj->getParentId();
                ui::setHeader($obj->name);
                ui::setNaviBar(lang::get('TEXT_EDIT') . $obj->getClass()->getPadej(1));
            }
            $class_list = '';
            $right = 'page_proc_upd';
        } else {
            if (system::action() == "add") {
                // Добавление страницы
                $class_name = system::issetUrl(3) ? system::url(3) : ormPages::getPopularClass(system::url(2));
                if (!($class = ormClasses::get($class_name))) {
                    system::redirect('/structure/tree');
                }
                if (in_array($class->id(), reg::getList(ormPages::getPrefix() . '/no_edit'))) {
                    system::redirect('/structure/tree');
                }
                if (system::issetUrl(2) && system::url(2) != 0) {
                    $parent = ormPages::get(system::url(2));
                    ui::setNaviBar($parent->name, '/structure/list/' . $parent->id);
                }
                ui::setHeader(lang::get('TEXT_ADD') . $class->getPadej(1));
                // Если это добавление нового объекта
                $obj = new ormPage();
                $obj->setParent(system::url(2));
                $obj->setClass($class_name);
                $obj->view_in_menu = 1;
                $obj->view_submenu = 1;
                $obj->active = 1;
                $obj->in_search = 1;
                $obj->in_index = 1;
                $obj->publ_date = date('d.m.Y H:i:s');
                // Наследуем параметры от родителя
                // Шаблоны
                $parent_id = $obj->issetParents() ? $obj->getParentId() : 0;
                $templ = templates::getPopularForSection($parent_id);
                $def_templ_1 = $obj->getClass()->getDefTemplate(0);
                $def_templ_2 = $obj->getClass()->getDefTemplate(1);
                $obj->template_id = $def_templ_1 != 0 ? $def_templ_1 : $templ[0];
                $obj->template2_id = $def_templ_2 != 0 ? $def_templ_2 : $templ[1];
                $parent_id = system::url(2);
                // Количество элементов на странице
                $this->getPopularValue($obj, 'number_of_items', 10);
                // Способ сортировки
                $this->getPopularValue($obj, 'order_by', '');
                // Формируем список классов для быстрого изменения класса объекта
                $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/' . $parent_id . '/' . $bc->getSName() . '">' . $bc->getName() . '</a></li>';
                        } else {
                            $elem_list .= '
				    	<li ><img src="' . $pach . $ico . '">
				    	<a href="' . system::au() . '/structure/page_add/' . $parent_id . '/' . $bc->getSName() . '">' . $bc->getName() . '</a></li>';
                        }
                    }
                }
                $class_list = '<ul>' . $cat_list . '</ul><ul>' . $elem_list . '</ul>';
                $right = 'page_proc_add';
            }
        }
        page::assign('right', $right);
        // Если произошли ошибки, перенаправляем на главную страницу модуля
        if (!$obj instanceof ormPage || $obj->issetErrors()) {
            system::redirect('/structure/tree');
        }
        // Устанавливаем кнопки для формы
        if (isset($_SESSION['STRUCTURE_LIST_FLAG']) && $_SESSION['STRUCTURE_LIST_FLAG']) {
            ui::setCancelButton('/structure/list/' . $parent_id);
        } else {
            ui::setCancelButton('/structure/tree');
        }
        if ($obj->isEditable()) {
            ui::newButton(lang::get('BTN_SAVE'), "javascript:sendForm('save');");
            ui::newButton(lang::get('BTN_APPLY'), "javascript:sendForm('apply');");
        }
        // Создаем форму и выводим ее на страницу
        $form = new ormEditForm($obj, $right);
        $form->setORMList($class_list);
        $form->addPadding('param', 9, 1);
        // Выбор шаблона оформления страниц
        $form->addField('param', 10, '', lang::get('STRUCTURE_TEMPLATE'), $this->getTemplateBox('template_id', $templs, $obj->template_id));
        // Выбор шаблона оформления объектов
        $form->addField('param', 11, '', lang::get('STRUCTURE_TEMPLATE2'), $this->getTemplateBox('template2_id', templates::getByDestination(1, true), $obj->template2_id, 1));
        // Выводим ID и URL страницы
        $this->getPageInfo($obj, $form);
        $form->newTabs(lang::get('STRUCTURE_TABS_RIGHT'), rights::getListForObject($obj, system::action()));
        //$form->newTabs(lang::get('STRUCTURE_TABS_RESTORE'), '&nbsp;');
        return $form->getHTML();
    }