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']); }
static function getMailHTML($release_id) { if ($release = ormObjects::get($release_id)) { if ($release->isInheritor('subscribe_msg')) { $subscribe = $release->getParent(); page::$macros = 1; $mail = ''; if (file_exists(TEMPL_DIR . '/subscription/mails/' . $subscribe->template . '.tpl')) { include TEMPL_DIR . '/subscription/mails/' . $subscribe->template . '.tpl'; page::assign('domain_name', domains::curDomain()->getName()); page::assign('site_name', domains::curDomain()->getSiteName()); page::assign('base_email', domains::curDomain()->getEmail()); page::assign('subscribe.id', $subscribe->id); page::assign('release.id', $release->id); page::assign('release.name', $release->name); page::assign('release.message', $release->message); $sel = new ormSelect(); $sel->depends($release->id, 1462); $num = 0; $list = ''; while ($obj = $sel->getObject()) { $num++; page::assign('obj.num', $num); page::assign('class-first', $num == 1 ? 'first' : ''); page::assign('class-last', $num == $sel->getObjectCount() ? 'last' : ''); page::assign('class-odd', $num % 2 == 0 ? 'odd' : ''); page::assign('class-even', $num % 2 != 0 ? 'even' : ''); page::assign('class-third', $num % 3 == 0 ? 'third' : ''); page::assign('obj.id', $obj->id); page::assign('obj.url', $obj->url); $obj->parseAllFields(); $list .= page::parse($TEMPLATE['list']); } page::assign('list', $list); if (!empty($list)) { page::fParse('list', $TEMPLATE['frame_list']); } $mail = page::parse($TEMPLATE['frame']); } return $mail; } } }
/** * @return string * @param string $templ_name - Шаблон оформления * @desc МАКРОС: Выводит форму редактирования акаунта */ function editForm($templ_name = 'edit') { if (!user::isGuest()) { $templ_file = '/users/' . $templ_name . '.tpl'; $TEMPLATE = page::getTemplate($templ_file); if (!is_array($TEMPLATE)) { return page::errorNotFound('users.editForm', $templ_file); } $user = user::getObject(); // Парсим все поля $fields = $user->getClass()->loadFields(); while (list($name, $field) = each($fields)) { page::assign('obj.' . $name, $user->__get($name)); } // Выводим аватару пользователя if ($user->avatara != '' && isset($TEMPLATE['photo_block'])) { page::assign('photo', $user->avatara); page::fParse('photo_block', $TEMPLATE['photo_block']); } else { page::assign('photo', ''); page::assign('photo_block', ''); } // Сообщение об ошибках page::parseError('edit_user'); return page::parse($TEMPLATE['frame']); } }
private function navigation($smeshenie = 5, $TEMPLATE) { $max_count = $_SESSION['table_' . $this->prefix]['max_count']; $current_num = $_SESSION['table_' . $this->prefix]['page_num']; if ($this->isSelection) { $count_page = ceil($this->select->getCount() / $max_count); } else { $count_page = ceil((!empty($this->all_count) ? $this->all_count : count($this->data)) / $max_count); } if ($current_num > $count_page) { $current_num = $_SESSION['table_' . $this->prefix]['page_num'] = $count_page; } $start = $current_num * $max_count - $max_count; if ($count_page > 1) { // Просчитывает какие страницы показывать $niz = $current_num - $smeshenie; if ($niz < 1) { $niz = 1; } $verx = $current_num + $smeshenie; if ($verx > $count_page) { $verx = $count_page; } // Определяемся с левым блоком page::assign('num_l', $current_num - 1); page::assign('first_num', 1); page::assign('num_r', $current_num + 1); page::assign('last_num', $count_page); if ($current_num == 1 && isset($TEMPLATE['left_block'])) { page::fParse('left_block', $TEMPLATE['noact_left_block']); page::fParse('first_block', $TEMPLATE['noact_first_block']); page::fParse('right_block', $TEMPLATE['right_block']); page::fParse('last_block', $TEMPLATE['last_block']); } else { if ($current_num == $count_page && isset($TEMPLATE['right_block'])) { page::fParse('left_block', $TEMPLATE['left_block']); page::fParse('first_block', $TEMPLATE['first_block']); page::fParse('right_block', $TEMPLATE['noact_right_block']); page::fParse('last_block', $TEMPLATE['noact_last_block']); } else { page::fParse('left_block', $TEMPLATE['left_block']); page::fParse('first_block', $TEMPLATE['first_block']); page::fParse('right_block', $TEMPLATE['right_block']); page::fParse('last_block', $TEMPLATE['last_block']); } } // Вывод списка страниц $pages = ''; for ($i = $niz; $i < $verx + 1; $i++) { page::assign('page_num', $i); $tmpl = $i == $current_num ? 'pages_a' : 'pages_na'; $pages .= page::parse($TEMPLATE[$tmpl]); } page::assign('pages', $pages); $navbar = page::parse($TEMPLATE['navigation']); } else { $navbar = ''; } if (!empty($navbar)) { $counts = array(1 => 1, 5 => 5, 10 => 10, 20 => 20, 30 => 30, 50 => 50, 100 => 100); ui::SelectBox('max_count', $counts, $max_count, 50); page::assign('navbar', $navbar); page::assign('count_page', $count_page); page::fParse('navbar', $TEMPLATE['navibar']); } else { page::assign('navbar', ''); } // Устанавливает лимит для выборки объектов if ($this->isSelection && $start > -1 && $max_count > 0) { $this->select->limit($start, $max_count); } }
private function parseField($obj, $field, $TEMPLATE, $current_id) { $is_upd = $obj->id == '' ? false : true; $is_editable = !isset($field['editable']) || $field['editable']; $width = empty($field['width']) ? $this->width : $field['width']; page::assign('width', $width); if (isset($_SESSION['SAVING_POST']['obj' . $this->form_name]) && ($field['f_type'] < 70 || $field['f_type'] > 85)) { $tmp = $_SESSION['SAVING_POST']['obj' . $this->form_name]; if (isset($tmp[$current_id][$field['f_sname']])) { $value = $tmp[$current_id][$field['f_sname']]; } } else { $value = ''; } if (empty($value)) { if ($field['f_type'] == 105) { $value = $obj->__get('_' . $field['f_sname']); } else { $value = $obj->__get($field['f_sname']); } $function = !empty($field['funct_name']) ? $field['funct_name'] : ''; if (!$is_editable) { $value = parent::processValue($obj, $field['f_sname'], $field['f_type'], $value, $function); } } if ($is_editable) { page::assign('field.id', $field['f_id']); page::assign('field.name', $field['f_name']); page::assign('field.sname', $field['f_sname']); page::assign('field.value', $value); $obj_id = $field['f_sname'] . '_' . $current_id; $elem_name = 'obj' . $this->form_name . '[' . $current_id . '][' . $field['f_sname'] . ']'; // Специальная обработка данных if ($field['f_type'] == 50) { page::assign('element', ui::CheckBox($elem_name, 1, $value, '', '', $obj_id)); } else { if ($field['f_type'] == 32) { if (empty($value) || $value == '0000-00-00 00:00:00') { page::assign('field.date', ''); page::assign('field.time', '00:00'); } else { page::assign('field.date', date('d.m.Y', strtotime($value))); page::assign('field.time', date('H:i', strtotime($value))); } } else { if ($field['f_type'] == 25) { $time = empty($value) || $value == '0000-00-00' ? '' : date('d.m.Y', strtotime($value)); page::assign('field.date', $time); } else { if ($field['f_type'] == 30) { $time = empty($value) ? '' : date('H:i:s', strtotime($value)); page::assign('field.time', $time); } else { if ($field['f_type'] > 69 && $field['f_type'] < 86) { // файлы if (system::$isAdmin) { page::assign('element', ui::loadFile($elem_name, $value, 'load_file_mini', $obj_id)); } else { page::fParse('element', ''); } } else { if ($field['f_type'] == 90 || $field['f_type'] == 95) { // Выпадающий список или Список со множественным выбором // Получаем список объектов справочника $data = ormObjects::getObjectsByClass($field['f_list_id']); $multi = $field['f_type'] == 95 ? 'selectbox_multi' : 'selectbox_template'; $empty = !$field['f_required'] ? ' ' : ''; if ($field['f_quick_add']) { $width = $width - 22; } $min = $field['f_type'] == 95 ? 8 : 30; page::assign('width_plu', $width - $min); page::assign('element', ui::SelectBox($elem_name, $data, $value, $width, $empty, '', $multi, $obj_id)); if ($field['f_quick_add']) { page::fParse('plus', $TEMPLATE['field_' . $field['f_type'] . '_plus']); } else { page::assign('plus', ''); } } else { if ($field['f_type'] == 100) { // Связь с объектом page::assign('element', ui::objectLinks($obj, $field['f_id'], '_' . $current_id, $elem_name, $width - 30, 'objectLinks2')); } } } } } } } // Генерируем яву (создаем правила проверки для элементов формы) if ($field['f_required'] && ($field['f_type'] == 35 && $this->action == 'add' || $field['f_type'] != 35)) { $msg = str_replace('%title%', $field['f_name'], lang::get('CONSTR_BASE_FIELD_E2')); $zpt = !empty($this->requred_field) ? ', ' : ''; $empty = $field['f_type'] == 90 || $field['f_type'] == 95 ? 'null' : '""'; if ($field['f_type'] == 100) { $this->requred_field .= $zpt . '["' . $obj_id . '", "' . $current_id . '", "' . $msg . '", ' . $empty . ', 1]'; } else { $this->requred_field .= $zpt . '["' . $obj_id . '", "' . $current_id . '", "' . $msg . '", ' . $empty . ']'; } } if ($field['f_type'] == 15) { $this->java .= page::parse('rules.push("valid_email,' . $obj_id . ',' . lang::get('CONSTR_BASE_FIELD_E3') . '");'); } if ($field['f_type'] == 20) { $this->java .= page::parse('rules.push("reg_exp,' . $obj_id . ',^(((f|ht){1}tp:/)*/[-a-zA-Z0-9@:%_\\+.~#?&//=]+)*$|^\\/{1}, ' . lang::get('CONSTR_BASE_FIELD_E4') . '");'); } if ($field['f_type'] == 40) { $this->java .= page::parse('rules.push("digits_only,' . $obj_id . ',' . lang::get('CONSTR_BASE_FIELD_E6') . '");'); } if ($field['f_type'] == 45) { $this->java .= page::parse('rules.push("float_only,' . $obj_id . ',' . lang::get('CONSTR_BASE_FIELD_E7') . '");'); } if ($field['f_type'] == 47) { $this->java .= page::parse('rules.push("price_only,' . $obj_id . ',' . lang::get('CONSTR_BASE_FIELD_E8') . '");'); } if (isset($TEMPLATE['field_' . $field['f_type']])) { $value = page::parse($TEMPLATE['field_' . $field['f_type']]); } else { $value = str_replace('%title%', $field['f_sname'], lang::get('CONSTR_BASE_FIELD_E5')); } } page::assign('content', $value); return page::parse($TEMPLATE['field_frame']); }
/** * @return HTML * @param int $comment_id - ID комментария * @param string $templ_name - Шаблон оформления комментария * @desc МАКРОС: Выводит информацию об указанном комментарии */ public function view($comment_id, $templ_name = 'tree') { $templ_file = '/comments/' . $templ_name . '.tpl'; $TEMPLATE = page::getTemplate($templ_file); if (!is_array($TEMPLATE)) { return page::errorNotFound('comments.view', $templ_file); } if ($comment = comments::get($comment_id)) { if ($comment->isActive() || reg::getKey('/comments/show_noactive')) { page::assign('obj.id', $comment->id()); page::assign('obj.parent_id', $comment->getParentId()); page::assign('obj.user_id', $comment->getUserId()); page::assign('obj.publ_date', $comment->getPublDate()); page::assign('obj.username', $comment->getUserName()); page::assign('obj.email', $comment->getEmail()); page::assign('obj.text', $comment->getText()); page::assign('obj.rate', $comment->getRate()); if (isset($_SESSION['comments_rate'][$comment->id()])) { page::fParse('rate', $TEMPLATE['rate_change']); } else { page::fParse('rate', $TEMPLATE['rate']); } page::assign('list', ''); return page::parse($TEMPLATE['list']); } } }
/** * @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']); } }
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 tagAction() { $templ_file = '/search/gettag.tpl'; $TEMPLATE = page::getTemplate($templ_file); if (!is_array($TEMPLATE)) { return page::errorNotFound('search.getTag', $templ_file); } if (system::issetUrl(2) && ($tag = tags::infoTag(system::url(2)))) { $msg = lang::get('SEARCH_H1_TAGS') . ' "' . $tag['name'] . '"'; page::globalVar('h1', $msg); page::globalVar('title', $msg); // Получаем список классов $classes_filter = array(); if (!empty($_POST['classes'])) { $tmp = explode(",", $_POST['classes']); $classes_filter = array(); foreach ($tmp as $v) { $v = trim($v); if (!empty($v)) { $classes_filter[] = $v; } } } $max_count = reg::getKey(ormPages::getPrefix('search') . '/max_count'); $start = (system::getCurrentNavNum() - 1) * $max_count; $result = tags::find(array($tag['id']), $max_count, $start, $classes_filter); $list = ''; while (list($num, $val) = each($result['pages'])) { if ($page = ormPages::get($val['page_id'])) { page::assign('obj.id', $page->id); page::assign('obj.num', $num + $start + 1); page::assign('obj.name', $page->name); page::assign('obj.url', $page->_url); //page::assign('obj.content', $page->content); $cn = $page->getClass()->getSName(); $block_name = isset($TEMPLATE['list_' . $cn]) ? 'list_' . $cn : 'list'; $list .= page::parse($TEMPLATE[$block_name]); } } page::assign('count_page', ceil($result['count'] / $max_count)); } else { $list = ''; $msg = lang::get('SEARCH_H1_TAGS2'); page::globalVar('h1', $msg); page::globalVar('title', $msg); } if (!empty($list)) { page::assign('list', $list); page::fParse('list', $TEMPLATE['frame_list']); } else { page::fParse('list', $TEMPLATE['not_found']); } return page::parse($TEMPLATE['frame']); }
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(); }
private function parseField($field, $TEMPLATE) { if (in_array($field['f_sname'], $this->read_only)) { $value = $this->obj->__get($field['f_sname']); page::assign('value', $value); if ($field['f_type'] == 90 || $field['f_type'] == 95 || $field['f_type'] == 105) { page::assign('val', $this->obj->__get('_' . $field['f_sname'])); } else { page::assign('val', $value); } $value = page::parse($TEMPLATE['read_only']); page::assign('content', $value); return page::parse($TEMPLATE['field_standart']); } // Определяем значение поля if (isset($_SESSION['SAVING_POST']) && ($field['f_type'] < 70 || $field['f_type'] > 85) && isset($_SESSION['SAVING_POST'][$field['f_sname']])) { $value = $_SESSION['SAVING_POST'][$field['f_sname']]; } else { if ($field['f_type'] == 105) { $value = $this->obj->__get('_' . $field['f_sname']); } else { $value = $this->obj->__get($field['f_sname']); } } page::assign('field.value', $value); // Для страниц, для кнопки "Показать \ скрыть доп. поля" if ($this->obj instanceof ormPage && in_array($field['f_sname'], $this->page_fields)) { $sh_page = isset($_SESSION['SH_FIELDS']) && $_SESSION['SH_FIELDS'] == 'show' ? '' : ' style="display:none;"'; page::assign('sh_page', $sh_page); } else { page::assign('sh_page', ''); } // Специальная обработка данных if ($field['f_type'] == 50) { page::assign('element', ui::CheckBox($field['f_sname'], 1, $value)); } else { if ($field['f_type'] == 32) { if (empty($value) || $value == '0000-00-00 00:00:00') { page::assign('field.date', ''); page::assign('field.time', '00:00'); } else { page::assign('field.date', date('d.m.Y', strtotime($value))); page::assign('field.time', date('H:i', strtotime($value))); } } else { if ($field['f_type'] == 25) { $time = empty($value) || $value == '0000-00-00' ? '' : date('d.m.Y', strtotime($value)); page::assign('field.date', $time); } else { if ($field['f_type'] == 30) { $time = empty($value) ? '' : date('H:i:s', strtotime($value)); page::assign('field.time', $time); } else { if ($field['f_type'] == 70 || $field['f_type'] == 75 || $field['f_type'] == 80 || $field['f_type'] == 85) { if (system::$isAdmin) { page::assign('element', ui::loadFile($field['f_sname'], $value)); } else { page::fParse('element', $TEMPLATE['upload_file_field']); } } else { if ($field['f_type'] == 73) { page::assign('element', ui::listFile($field['f_sname'], $value)); } else { if ($field['f_type'] == 90 || $field['f_type'] == 95) { // Выпадающий список или Список со множественным выбором // Получаем список объектов справочника page::assign('field.sname', $field['f_sname']); $data = ormObjects::getObjectsByClass($field['f_list_id']); $multi = $field['f_type'] == 95 ? 'selectbox_multi' : 'selectbox_template'; $empty = !$field['f_required'] ? ' ' : ''; if (system::$isAdmin) { page::assign('element', ui::SelectBox($field['f_sname'], $data, $value, 400, $empty, '', $multi)); if ($field['f_quick_add']) { page::fParse('plus', $TEMPLATE['field_' . $field['f_type'] . '_plus']); } else { page::assign('plus', ''); } } else { page::assign('element', ui::SelectBox($field['f_sname'], $data, $value, 200, $empty, '', $multi)); } } else { if ($field['f_type'] == 97) { // Подчиненный справочник // Получаем список объектов справочника $sel = new ormSelect($field['f_list_id']); $sel->where('parents', '=', $this->obj->id); // Выводим мультиформу для добавления и редактирования $form = new ormMultiForm('subject_list_' . $field['f_id']); $form->setData($sel); $form->insideForm(); $re = $form->getHTML(); // echo $re; page::assign('element', $re); } else { if ($field['f_type'] == 100) { // Связь с объектом page::assign('element', ui::objectLinks($this->obj, $field['f_id'])); } } } } } } } } } page::assign('field.id', $field['f_id']); page::assign('field.name', $field['f_name']); page::assign('field.hint', $field['f_hint']); page::assign('field.sname', $field['f_sname']); page::fParse('field.dotted', !empty($field['f_hint']) ? 'dotted' : ''); if (empty($field['f_max_size'])) { $field['f_max_size'] = $field['f_type'] == 60 ? 200 : 100; } page::assign('field.max_size', $field['f_max_size']); // Генерируем яву (создаем правила проверки для элементов формы) if ($field['f_required'] && ($field['f_type'] == 35 && $this->obj->id == '' || $field['f_type'] != 35)) { $msg = str_replace('%title%', $field['f_name'], lang::get('CONSTR_BASE_FIELD_E2')); if ($field['f_type'] == 60) { // HTML - редактор $this->addit_function .= page::parse(' function checkValue%field.sname%(){ var value = CKEDITOR.instances["%field.sname%"].getData(); return (value != "") ? true : [[ "cke_%field.sname%", "' . $msg . '" ]]; } '); $this->java .= page::parse('rules.push("function,checkValue%field.sname%");'); } else { if ($field['f_type'] == 100) { // Выбор объекта $this->addit_function .= page::parse(' function checkObjectLinks%field.sname%(){ var count = $("#objectsLinkList_%field.sname% > li").length; return (count > 0) ? true : [[ %field.sname%, "' . $msg . '" ]]; } '); $this->java .= page::parse('rules.push("function,checkObjectLinks%field.sname%");'); } else { if ($field['f_type'] == 32) { // Каледарь и время $this->java .= page::parse('rules.push("required,%field.sname%_date,' . $msg . '");'); } else { $this->java .= page::parse('rules.push("required,%field.sname%,' . $msg . '");'); } } } $zvezd = 'chek'; } else { $zvezd = ''; } page::assign('field.zvezd', $zvezd); if ($field['f_type'] == 15) { $this->java .= page::parse('rules.push("valid_email,%field.sname%,' . lang::get('CONSTR_BASE_FIELD_E3') . '");'); } if ($field['f_type'] == 20) { $this->java .= page::parse('rules.push("reg_exp,%field.sname%,^(((f|ht){1}tp:/)*/[-a-zA-Z0-9@:%_\\+.~#?&//=]+)*$|^\\/{1}, ' . lang::get('CONSTR_BASE_FIELD_E4') . '");'); } if ($field['f_type'] == 40) { $this->java .= page::parse('rules.push("digits_only,%field.sname%,' . lang::get('CONSTR_BASE_FIELD_E6') . '");'); } if ($field['f_type'] == 45) { $this->java .= page::parse('rules.push("float_only,%field.sname%,' . lang::get('CONSTR_BASE_FIELD_E7') . '");'); } if ($field['f_type'] == 47) { $this->java .= page::parse('rules.push("price_only,%field.sname%,' . lang::get('CONSTR_BASE_FIELD_E8') . '");'); } if (isset($TEMPLATE['field_' . $field['f_type']])) { return page::parse($TEMPLATE['field_' . $field['f_type']]); } else { return str_replace('%title%', $field['f_sname'], lang::get('CONSTR_BASE_FIELD_E5')); } }
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 function parseLineForm($obj, $TEMPLATE, $new_num = 1) { $is_upd = !is_numeric($obj['id']) ? false : true; $current_id = !$is_upd ? 'new' . $new_num : $obj['id']; page::assign('obj_id', $current_id); $del_check = $this->without_del || !$is_upd ? '' : $TEMPLATE['del_check']; page::fParse('del_check', $del_check); $flist = ''; reset($this->columns); while (list($name, $column) = each($this->columns)) { if ($is_upd) { $new = ' ' . $name; } else { $new = empty($flist) ? ' new' : ' new_' . $name; } page::assign('new', $new); $flist .= $this->parseField($obj, $column, $TEMPLATE, $current_id); } page::assign('object', $flist); return page::parse($TEMPLATE['lines']); }
public function upd() { $is_page = false; if (file_exists(MODUL_DIR . '/constructor/template/class.tpl')) { include MODUL_DIR . '/constructor/template/class.tpl'; } if (system::action() == "upd") { // форма обновления информации $class = new ormClass(system::url(2)); if ($class->id() == '') { system::redirect('/constructor/tree'); } page::assign('obj.class_name', $class->getName()); page::assign('obj.sname', $class->getSName()); page::assign('obj.text', $class->getPadej()); page::assign('obj.id', $class->id()); $system = $class->isSystem(); $is_list = $class->isList(); $is_page = $class->isPage(); $is_user = $class->isInheritor('user'); $base_class = $class->getBaseClass(); page::assign('right', 'class_proc_upd'); // Выводим дерево для отображения структуры класса $tree = new ormFieldsTree(); page::assign('fields', $tree->getHTML($class)); } else { if (system::action() == "add") { // форма добавления информации $system = $is_list = $uniqum = $base_class = 0; // Проверяем существует ли родитель? if (system::issetUrl(2)) { $parent = new ormClass(system::url(2)); if ($parent->id() == '') { system::redirect('/constructor/tree'); } $is_list = $parent->isList(); $is_page = $parent->isPage(); $is_user = $parent->isInheritor('user'); } else { $is_user = false; } page::assign('obj.id', system::url(2)); page::assign('right', 'class_proc_add'); } } if ($is_page) { ui::SelectBox('class_list', ormClasses::getPagesClassList(), $base_class, 400, ' '); ui::SelectBox('template_list1', templates::getByDestination(0, true), isset($class) ? $class->getDefTemplate(0) : 0, 400, ' '); ui::SelectBox('template_list2', templates::getByDestination(1, true), isset($class) ? $class->getDefTemplate(1) : 0, 400, ' '); page::fParse('page_fields', $TEMPLATE['page_fields']); } else { if ($is_user) { page::fParse('page_fields', $TEMPLATE['user_fields']); } else { page::assign('page_fields', ''); } } if (system::action() == "add" || !$class->isSystem()) { ui::newButton(lang::get('BTN_SAVE'), "javascript:sendForm('save');"); ui::newButton(lang::get('BTN_APPLY'), "javascript:sendForm('apply');"); ui::setCancelButton('/constructor'); } else { ui::setBackButton('/constructor'); } page::assignArray(lang::get('CONSTR_FORM_FIELD')); page::assignSavingPost(); ui::CheckBox('system', 1, $system, lang::get('CONSTR_FORM_FIELD', 3)); ui::CheckBox('is_list', 1, $is_list, lang::get('CONSTR_FORM_FIELD', 4)); return page::parse($TEMPLATE['frame'], 1); }
/** * @return HTML * @param int $count_page - Количество страниц которое необходимо отобразить. Если = 0, список не выведется. * @param int $smeshenie - Количество страниц выводящихся справа и слева от текущей. * @param string $templ_name - Шаблон оформления. * @desc МАКРОС: Вывод постраничной навигации. */ public function navigation($count_page = 0, $smeshenie = 4, $templ_name = 'default') { $navbar = ''; $templ_file = '/structure/navigation/' . $templ_name . '.tpl'; $TEMPLATE = page::getTemplate($templ_file); if (!is_array($TEMPLATE)) { return page::errorNotFound('structure.navigation', $templ_file); } else { $current_num = system::getCurrentNavNum(); $current_url = system::getCurrentUrl(); if ($count_page > 1) { // Просчитывает какие страницы показывать $raznica1 = $current_num - $smeshenie; $raznica1 = $raznica1 < 0 ? -$raznica1 : 0; $raznica2 = $count_page - $current_num - $smeshenie; $raznica2 = $raznica2 < 0 ? -$raznica2 : 0; $niz = $current_num - $smeshenie - $raznica2; if ($niz < 1) { $niz = 1; } $verx = $current_num + $smeshenie + $raznica1; if ($verx > $count_page) { $verx = $count_page; } page::assign('current_num', $current_num); page::assign('count_page', $count_page); page::assign('first_page', $current_url . '=1'); page::assign('previous_page', $current_url . '=' . ($current_num - 1)); page::assign('next_page', $current_url . '=' . ($current_num + 1)); page::assign('last_page', $current_url . '=' . $count_page); if (!empty($smeshenie)) { // Определяемся с левым блоком page::assign('num', $current_num - 1); if ($niz !== 1 && isset($TEMPLATE['left_block'])) { $left_block = page::parse($TEMPLATE['left_block']); } else { $left_block = ''; } page::assign('left_block', $left_block); // Определяемся с правым блоком page::assign('num', $current_num + 1); if ($verx != $count_page && isset($TEMPLATE['right_block'])) { $right_block = page::parse($TEMPLATE['right_block']); } else { $right_block = ''; } page::assign('right_block', $right_block); // Вывод списка страниц $pages = ''; for ($i = $niz; $i < $verx + 1; $i++) { page::assign('page_num', $i); page::assign('page_url', $current_url . '=' . $i); $tmpl = $i == $current_num ? 'list_active' : 'list'; $pages .= page::parse($TEMPLATE[$tmpl]); } page::assign('list', $pages); } else { // Определяемся с левым блоком page::assign('num', $current_num - 1); if ($current_num - 1 > 0 && isset($TEMPLATE['left_block'])) { $left_block = page::parse($TEMPLATE['left_block']); } else { $left_block = ''; } page::assign('left_block', $left_block); // Определяемся с правым блоком page::assign('num', $current_num + 1); if ($current_num + 1 <= $count_page && isset($TEMPLATE['right_block'])) { $right_block = page::parse($TEMPLATE['right_block']); } else { $right_block = ''; } page::assign('right_block', $right_block); page::assign('page_num', $current_num); page::assign('page_url', $current_url . '=' . $current_num); page::fParse('list', $TEMPLATE['list_active']); } $navbar = page::parse($TEMPLATE['frame']); } } return $navbar; }
private static function getConfig($TEMPLATE) { $cModul = ''; if (!empty(self::$newLink)) { // Настройки в виде списка while (list($num, $link) = each(self::$newLink)) { if (user::issetRight($link['link'])) { $anchor = !empty($link['anchor']) ? '#' . $link['anchor'] : ''; page::assign('url', system::au() . '/' . system::url(0) . '/' . $link['link'] . $anchor); page::assign('title', $link['title']); $cModul .= page::parse($TEMPLATE['config_item']); } } if (!empty($cModul)) { page::assign('config_items', $cModul); page::assign('text.settings', lang::get('TEXT_SETTINGS')); $cModul = page::parse($TEMPLATE['config_frame']); } } else { if (user::issetRight('settings')) { // Обычные настройки page::assign('url_settings', system::au() . '/' . system::url(0) . '/settings'); page::assign('text.settings', lang::get('TEXT_SETTINGS')); $cModul = page::parse($TEMPLATE['config_module']); } } page::assign('settings', $cModul); // Ссылка "Помощь" page::assign('text.help', lang::get('TEXT_HELP')); page::fParse('help_link', $TEMPLATE['help_link']); // Ссылка "На сайт" page::assign('url_site', domains::curDomain()->getName() . languages::pre()); page::assign('text.to_site', lang::get('TEXT_TOSITE')); page::fParse('to_site', $TEMPLATE['to_site']); // Аккаунт пользователя и кнопка выход page::assign('username', user::get('name')); page::assign('user_url', user::issetRight('profile', 'core') ? system::au() . '/core/profile' : '#'); page::assign('url_exit', system::au() . '/logout'); page::assign('text.exit', lang::get('TEXT_URL_EXIT')); page::fParse('mpanel_config', $TEMPLATE['account']); // Формируем цепочку-заголовок page::assign("title", lang::module(system::url(0))); page::assign("link", system::au() . '/' . system::url(0)); $cep = page::parse($TEMPLATE['navibar_link']); for ($i = 0; $i < count(self::$pageNavibar); $i++) { page::assign("title", substr(self::$pageNavibar[$i]['title'], 0, 100)); page::assign("link", system::au() . self::$pageNavibar[$i]['link']); $t = empty(self::$pageNavibar[$i]['link']) ? '' : '_link'; $cep .= page::parse($TEMPLATE['navibar' . $t]); } page::assign('navibar', $cep); page::fParse('navibar', $TEMPLATE['navibar_frame']); }