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(); }
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']); }
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; } }
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()); } } }
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(); }
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; }
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'); } }
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']); } }
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(); }
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; }
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']); }
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; }
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(); }
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(); }
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']); } }
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; } } }