示例#1
0
 public function defAction()
 {
     $count = ormObjects::getCountTrashObjects();
     $max_count = uiTable::getMaxCount();
     if (uiTable::getCurPage() != 1) {
         $niz = empty($start_pos) ? uiTable::getCurPage() * $max_count - $max_count : 0;
         $objects = ormObjects::getTrashObjects($niz, $max_count);
     } else {
         $objects = ormObjects::getTrashObjects($max_count);
     }
     if (user::issetRight('object_del') && !empty($objects)) {
         ui::newButton(lang::get('BTN_NEW_CLEAК_TRASH'), 'javascript:clearTrash();');
     }
     $table = new uiTable($objects, $count);
     $table->addColumn('name', lang::get('TRASH_TABLE_1'), 400);
     $table->addColumn('class', lang::get('TRASH_TABLE_2'));
     $table->addColumn('date', lang::get('TRASH_TABLE_3'), 0, false, false, 'viewDateTime');
     $table->addColumn('user', lang::get('TRASH_TABLE_4'), 200);
     $table->addRight('object_restore', 'restore', multi, 'restoreObj(this)', lang::get('TRASH_TABLE_RESTORE'));
     $table->addRight('object_del', 'drop', multi);
     $table->setDelMessage(lang::get('TRASH_DEL_TITLE'), lang::get('TRASH_DEL_MSG'));
     $table->setMultiDelMessage(lang::get('TRASH_DEL_TITLE2'), lang::get('TRASH_DEL_MSG2'));
     $table->emptyText(lang::get('TRASH_EMPTY_MSG'));
     $html = '
     <script type="text/javascript" src="/css_mpanel/restore_objects.js"></script>
     <input id="clearTrashTitle" type="hidden" value="' . lang::get('TRASH_DEL_TITLE3') . '">
     <input id="clearTrashText" type="hidden" value="' . lang::get('TRASH_DEL_MSG3') . '">
     ';
     return $html . $table->getHTML();
 }
示例#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']);
 }
示例#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;
     }
 }
示例#4
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('/reference');
         }
         if (!user::issetRight('val_add')) {
             $form->withoutAdditions();
         }
         if (!user::issetRight('val_del')) {
             $form->withoutRemoving();
         }
         $form->process();
         if ($_POST['parram'] == 'apply') {
             system::redirect('/reference/values/' . $class->id());
         } else {
             system::redirect('/reference');
         }
     } 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('/reference/values/' . 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('/reference/val_' . $mini_action . '/' . $obj_id);
         }
         // Если данные изменились корректно перенаправляем на соответствующию страницу
         if ($_POST['parram'] == 'apply') {
             system::redirect('/reference/val_upd/' . $obj_id);
         } else {
             system::redirect('/reference/values/' . $obj->getClass()->id());
         }
     }
 }
示例#5
0
 public function view()
 {
     if (user::issetRight('delete')) {
         ui::newButton(lang::get('BTN_CLEAR_JORNAL'), 'javascript:clearJornal();');
     }
     ui::addLeftButton('Системный журнал', 'system_view');
     ui::addLeftButton('Журнал БД', 'db_view');
     function removeQuotes($val, $obj)
     {
         return substr($val, 1, strlen($val) - 2);
     }
     function rqDateTime($val, $obj)
     {
         return date('d.m.Y H:i:s', $val);
     }
     function sortByTime($a, $b)
     {
         if ($a[1] == $b[1]) {
             return 0;
         }
         return $a[1] > $b[1] ? -1 : 1;
     }
     $mas = array();
     $system_file = ROOT_DIR . '/revue.log';
     if (file_exists($system_file)) {
         // Читаем файл, формируем массив
         $tmp_mas = array();
         $file = file($system_file);
         while (list($key, $val) = each($file)) {
             $tmp = explode(Chr(9), $val);
             if (!empty($tmp[1])) {
                 $tmp[1] = strtotime(removeQuotes($tmp[1], $tmp[1]));
                 $tmp_mas[] = $tmp;
             }
         }
         // Сортиуем массив по времени
         usort($tmp_mas, 'sortByTime');
         // Выбераем часть массива в соотвествии с постраничной навигацией
         $count = count($tmp_mas);
         $max_count = uiTable::getMaxCount();
         if (uiTable::getCurPage() != 1) {
             $niz = empty($start_pos) ? uiTable::getCurPage() * $max_count - $max_count : 0;
             $mas = array_slice($tmp_mas, $niz, $max_count);
         } else {
             $mas = array_slice($tmp_mas, 0, $max_count);
         }
     } else {
         $count = 0;
     }
     $table = new uiTable($mas, $count);
     $table->emptyText('В системном журнале нет записей!');
     $table->addColumn('2', 'Важность', 0, false, false, 'removeQuotes');
     $table->addColumn('3', 'Пользователь', 0, false, false, 'removeQuotes');
     $table->addColumn('4', 'Действие', 400);
     $table->addColumn('1', 'Дата / Время', 0, false, false, 'rqDateTime');
     $table->addColumn('0', 'IP');
     return $table->getHTML();
 }
示例#6
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;
 }
示例#7
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');
     }
 }
示例#8
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']);
     }
 }
示例#9
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();
 }
示例#10
0
 private function getLangsAndDomains($TEMPLATE)
 {
     $sub_menu = '';
     $langs = languages::getAll();
     $domains = domains::getAll();
     page::assign('ldObjectLinks', '');
     if (count($langs) > 1 || count($domains) > 1) {
         $isMultiDom = count($domains) > 1 ? true : false;
         $sub_items = $curLD = '';
         $mas = array();
         $num = 0;
         while (list($num2, $domain) = each($domains)) {
             reset($langs);
             while (list($num1, $lang) = each($langs)) {
                 if (user::issetRight($lang['l_id'] . ' ' . $domain['d_id'], 'structure')) {
                     if ($isMultiDom) {
                         $lanver = $domain['d_name'];
                         if ($lang['l_id'] != $domain['d_def_lang']) {
                             $lanver .= '/' . $lang['l_prefix'];
                         }
                     } else {
                         $lanver = $lang['l_name'];
                     }
                     $link = ADMIN_URL;
                     if ($domain['d_id'] != domains::curSiteDomain()->id()) {
                         $link .= '/' . str_replace('.', '_', $domain['d_name']);
                     }
                     if ($lang['l_id'] != $domain['d_def_lang']) {
                         $link = '/' . $lang['l_prefix'] . $link;
                     }
                     if (domains::curId() == $domain['d_id'] && languages::curId() == $lang['l_id']) {
                         $curLD = $link;
                     }
                     page::assign('name', $lanver);
                     page::assign('url', $link);
                     $sub_items .= page::parse($TEMPLATE['langver']);
                     $mas[] = array('id' => $link, 'name' => $lanver);
                     $num++;
                 }
             }
         }
         if (!empty($sub_items) && $num > 1) {
             if ($isMultiDom) {
                 $lanver = domains::curDomain()->getName() . languages::pre();
             } else {
                 $lanver = languages::curLang()->getName();
             }
             page::assign('eshe', $lanver);
             page::assign('sub_items', $sub_items);
             $sub_menu = page::parse($TEMPLATE['sub_menu']);
             ui::SelectBox('ldObjectLinks', $mas, $curLD, 474, '', 'onSelectldObjectLinks()');
         }
     }
     return $sub_menu;
 }
示例#11
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']);
 }
示例#12
0
 private function getRightForField($parse, $field_id, $all_rights = true, $field_name = '')
 {
     $fieldRights = '';
     $rights = $all_rights ? $this->rights : $this->rights4;
     reset($rights);
     while (list($key, $right) = each($rights)) {
         if ($field_name == 'name' && $right['name'] == 'field_del') {
             $fieldRights .= page::parse($parse['item_right_null']);
         } else {
             if ($right == 'empty' || !user::issetRight($right['name'])) {
                 $fieldRights .= $right != 'empty' ? '' : page::parse($parse['item_right_null']);
             } else {
                 page::assign('title', $right['title']);
                 page::assign('image_style', $right['class']);
                 if (!empty($right['java'])) {
                     page::fParse('right_url', $right['java']);
                     $templ = 'item_right_java';
                 } else {
                     page::assign('right_url', $right['name'] . '/' . $field_id);
                     $templ = 'item_right';
                 }
                 $fieldRights .= page::parse($parse[$templ]);
             }
         }
     }
     return $fieldRights;
 }
示例#13
0
 static function start()
 {
     header('Content-Type: text/html; charset=utf-8');
     self::parseUrl();
     // Опредяем текущий язык и домен (в случае необходимости обрезаем URL)
     languages::curLang();
     // Устанавливаем в доступ языковые переменные
     if (file_exists(MODUL_DIR . '/core/sitelang-' . languages::curPrefix() . '.php')) {
         include MODUL_DIR . '/core/sitelang-' . languages::curPrefix() . '.php';
         lang::setLang($LANG);
     }
     // Подключаем класс для работы с текущим пользователем
     user::init();
     // активация шаблонной системы
     self::$defTemplate = '/structure/default.tpl';
     page::init('%', '%');
     page::globalVar('h1', '');
     page::globalVar('title', '');
     page::globalVar('site_name', domains::curDomain()->getSiteName());
     page::globalVar('base_email', domains::curDomain()->getEmail());
     page::globalVar('user_id', user::get('id'));
     page::globalVar('pre_lang', languages::pre());
     page::globalVar('time', time());
     page::globalVar('current_url', self::getCurrentUrl());
     page::globalVar('current_url_pn', self::getCurrentUrlPN());
     page::assign('current_url', self::getCurrentUrl());
     page::assign('current_url_pn', self::getCurrentUrlPN());
     // Заглушка для IE6
     if (reg::getKey('/core/noIE6') && preg_match('/msie/i', $_SERVER['HTTP_USER_AGENT']) && !preg_match('/opera/i', $_SERVER['HTTP_USER_AGENT'])) {
         $val = explode(" ", stristr($_SERVER['HTTP_USER_AGENT'], 'msie'));
         if ($val[1] == '6.0;') {
             page::parseIt('/ieDie.tpl', false, true);
             system::stop();
         }
     }
     // Заглушка для IE7
     if (reg::getKey('/core/noIE7') && preg_match('/msie/i', $_SERVER['HTTP_USER_AGENT']) && !preg_match('/opera/i', $_SERVER['HTTP_USER_AGENT'])) {
         $val = explode(" ", stristr($_SERVER['HTTP_USER_AGENT'], 'msie'));
         if ($val[1] == '7.0;') {
             page::parseIt('/ieDie.tpl', false, true);
             system::stop();
         }
     }
     // Заглушка для IE8
     if (reg::getKey('/core/noIE8') && preg_match('/msie/i', $_SERVER['HTTP_USER_AGENT']) && !preg_match('/opera/i', $_SERVER['HTTP_USER_AGENT'])) {
         $val = explode(" ", stristr($_SERVER['HTTP_USER_AGENT'], 'msie'));
         if ($val[1] == '8.0;') {
             page::parseIt('/ieDie.tpl', false, true);
             system::stop();
         }
     }
     // Оффлайн сообщение
     if (!domains::curDomain()->online() && !user::isAdmin() && !(self::issetUrl(0) && self::url(0) == 'mpanel')) {
         page::globalVar('content', domains::curDomain()->getOfflineMsg());
         page::parseIt('/offline.tpl', false, true);
         system::stop();
     }
     // Генерация файлов robots.txt и sitemap.xml
     ormPages::getContentFileRobots();
     ormPages::getContentFileSiteMap();
     // Проверяем, есть ли текущая страница в кэше
     page::checkCache();
     // Вызов макроса через Ajax
     page::callAjaxMacros();
     // Парсим мето-информацию "по умолчанию"
     page::globalVar('keywords', reg::getKey(ormPages::getPrefix() . '/keywords'));
     page::globalVar('description', reg::getKey(ormPages::getPrefix() . '/description'));
     // Загрузка необходимого функционала в зависимости от адреса
     $content = '';
     // Пытаемся загрузить МОДУЛЬ
     if (self::issetUrl(0)) {
         $content = self::loadController('controller');
     }
     // Пытаемся загрузить СТРАНИЦУ
     if (!self::issetUrl(0) || $content === false) {
         $content = self::loadController('controller', 1, 'structure');
     }
     // Отображение сообщения "Страница не найдена"
     if (empty($content)) {
         $content = ormPages::get404();
     }
     // Парсим контент на страницу
     page::fParse('content', $content);
     // Версия для печати
     $print_file = '/structure/_' . self::getCurrentNavVal() . '.tpl';
     if (self::getCurrentNavVal() != '' && file_exists(TEMPL_DIR . $print_file)) {
         self::$defTemplate = $print_file;
     }
     if (!self::$isAdmin) {
         $title = str_replace('%text%', page::getGlobalVar('title'), reg::getKey(ormPages::getPrefix() . '/title_prefix'));
         page::globalVar('title', $title);
         if (file_exists(MODUL_DIR . '/core/template/minitext.tpl')) {
             include MODUL_DIR . '/core/template/minitext.tpl';
         }
         // Мини-тексты, если есть
         $list = reg::getList(ormPages::getPrefix() . '/minitext');
         while (list($id, $val) = each($list)) {
             //инлайн редактирование
             if (user::isAdmin() && user::issetRight('minitext_edit', 'structure')) {
                 $val = str_replace('%val%', $val, str_replace('%id%', $id, $TEMPLATE['frame']));
             }
             page::globalVar('text_' . $id, $val);
         }
     }
     // Выводим содержимое на экран
     page::parseIt(self::$defTemplate);
     // Завершение работы
     self::stop();
 }
示例#14
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();
 }
示例#15
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']);
     }
 }
示例#16
0
 private static function init()
 {
     if (!self::$isAdmin && system::$isAdmin) {
         // Определяем домен для панели управления
         // Определяем домен по УРЛу
         if (system::issetUrl(0)) {
             $tmp_domain = self::get(str_replace('_', '.', system::url(0)));
             if ($tmp_domain instanceof domain) {
                 self::$cur_domain = $tmp_domain;
                 system::clipUrl();
                 languages::setCurLang(self::$cur_domain->getDefLang());
             }
         }
         // Проверяем, имеет ли пользователь доступ к данному домену
         if (!user::issetRight(languages::curId() . ' ' . self::$cur_domain->id(), 'structure')) {
             //echo languages::curId().' '.self::$cur_domain->id();
             $langs = languages::getAll();
             $domains = domains::getAll();
             if (count($langs) > 1 || count($domains) > 1) {
                 while (list($num2, $domain) = each($domains)) {
                     reset($langs);
                     while (list($num1, $lang) = each($langs)) {
                         if (user::issetRight($lang['l_id'] . ' ' . $domain['d_id'], 'structure')) {
                             $link = ADMIN_URL;
                             if ($domain['d_id'] != 1) {
                                 $link .= '/' . str_replace('.', '_', $domain['d_name']);
                             }
                             if ($lang['l_id'] != 1) {
                                 $link = '/' . $lang['l_prefix'] . $link;
                             }
                             system::redirect($link, true);
                         }
                     }
                 }
             }
         }
         self::$isAdmin = true;
     } else {
         if (empty(self::$cur_domain)) {
             // Опеделяем домен для сайта
             $domain_id = reg::getKey('/core/cur_domain/id');
             if (!empty($domain_id)) {
                 // Если домен в системе один, загружаем его данные из реестра
                 $domain_name = reg::getKey('/core/cur_domain/name');
                 self::$domains[$domain_id] = array('d_id' => $domain_id, 'd_name' => $domain_name, 'd_domain_id' => '', 'd_def_lang' => reg::getKey('/core/cur_domain/def_lang'), 'd_sitename' => reg::getKey('/core/cur_domain/sitename'), 'd_email' => reg::getKey('/core/cur_domain/email'), 'd_online' => reg::getKey('/core/cur_domain/online'), 'd_offline_msg' => reg::getKey('/core/cur_domain/offline_msg'), 'd_error_msg' => reg::getKey('/core/cur_domain/error_msg'), 'id' => $domain_id);
                 self::$domains_rel[$domain_name] = $domain_id;
             } else {
                 $serv_name = $_SERVER['HTTP_HOST'];
                 if (substr($serv_name, 0, 4) == 'www.') {
                     $serv_name = substr($serv_name, 4, strlen($serv_name) - 4);
                 }
                 self::$cur_domain = self::get($serv_name);
             }
             if (!self::$cur_domain instanceof domain) {
                 self::$cur_domain = self::get(1);
             }
             if (!self::$cur_domain instanceof domain) {
                 die('не могу определить домен');
             }
             self::$cur_site_domain = self::$cur_domain;
         }
     }
 }