Beispiel #1
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();
 }
Beispiel #2
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();
    }