/** * @return HTML * @param int $form_id - ID формы обратной связи. Форма предварительно должна быть создана в настройках модуля "Обратная связь". * @param string $templ_name - Шаблон оформления * @desc МАКРОС: Автоватически генерирует форму обратной связи (добавления отзыва, вопрос-ответа и пр.) */ public function autoForm($form_id, $templ_name = 'default') { if ($form_obj = ormObjects::get($form_id, 'feedback_form')) { $obj = new ormPage(); $obj->setClass($form_obj->form_class); $form = new ormEditForm($obj, languages::pre() . '/feedback/send_message'); $form->tabuList('pseudo_url', 'h1', 'keywords', 'title', 'description', 'active', 'is_home_page', 'view_in_menu', 'view_submenu', 'in_search', 'answer', 'in_index', 'in_new_window', 'other_link', 'img_act', 'img_no_act', 'img_h1'); page::assign('form_id', $form_obj->id); if ($form_obj->captcha) { $form->showCaptcha(); } // Парсим текст сообщения page::parseError('feedback'); return $form->getHTML('feedback/' . $templ_name); } }
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 static function sendMailBlock($user) { page::assign('domain', 'http://' . domains::curDomain()->getName() . languages::pre()); page::assign('login', $user->login); page::assign('name', $user->name); system::sendMail('/users/mails/block.tpl', $user->email); }
/** * @return null * @param string $url - URL на который необходимо сделать редирект * @param boolean $absolut - Если true, считает что $url указан абсолютный. Если false, $url обрабатывается с учетом состояния системы: учитывается текущий домен, языковая версия, находимся ли мы в панели управления. * @desc Делает редирект и корректно завершает работу системы */ static function redirect($url, $absolut = false) { if (!$absolut) { $url = self::$isAdmin ? self::au() . $url : languages::pre() . $url; } Header('Location: ' . $url); self::stop(); }
public function add_procAction() { $answer = array(); if (!reg::getKey('/users/reg')) { system::redirect('/'); } if (!user::isGuest()) { system::redirect('/users/edit'); } // Проверка капчи if (!system::validCapcha('random_image')) { $answer = array('msg' => lang::get('SITE_CAPHCA'), 'field' => 'captcha'); } // Проверка согласия с условиями оферты if (reg::getKey('/users/confirm') && !system::POST('confirm', isBool)) { $answer = array('msg' => lang::get('USERS_COMFIRM'), 'field' => 'confirm'); } // Добавляем объект if (empty($answer)) { $obj = new ormObject(); $obj->setParent(41); // Устанавливаем группу "Пользователи сайта" $obj->setClass('user'); $obj->tabuList('def_modul', 'active', 'last_visit', 'last_ip', 'groups'); $obj->loadFromPost(); $obj->active = 1; $obj->email = $obj->newVal('login'); $max_tickets = reg::getKey('/booking/max_tickets'); $obj->place_limit = $max_tickets == '' || $max_tickets == 0 ? 6 : $max_tickets; if ($obj->save()) { if (reg::getKey('/users/activation')) { // Регистрация с проверкой // Формируем временный ключ активации пользователя $key = md5(date('d.m.Y') . 'activate' . $obj->id); $obj->md5_flag = $key; $obj->active = 0; $obj->save(); // Отправляем письмо $url_pre = 'http://' . domains::curDomain()->getName() . languages::pre(); page::assign('url', $url_pre . '/users/activate/' . $key); page::assign('passw', system::POST('password')); page::assign('login', $obj->login); page::assign('name', $obj->name); system::sendMail('/users/mails/activate.tpl', $obj->email); $_SESSION['user_email'] = $obj->login; } else { // Регистрация без проверки // Отправляем письмо page::assign('passw', system::POST('password')); page::assign('login', $obj->login); page::assign('name', $obj->name); system::sendMail('/users/mails/registration.tpl', $obj->email); // Автоматическая авторизация user::authHim($obj); } // Все хорошо. Пользователь добавлен. if (system::isAjax()) { system::json(array('ok' => 1)); } else { system::redirect('/users/ok'); } } else { // Произошли ошибки if ($obj->issetErrors(32)) { $answer = array('msg' => lang::get('USERS_ISSET'), 'field' => 'login'); } else { $tmp = $obj->getErrorFields(); $answer = array('msg' => $obj->getErrorListText(' '), 'field' => $tmp['focus']); } } } if (!system::isAjax()) { system::savePostToSession(); system::saveErrorToSession('add_user', $answer); if (!empty($_POST['back_url'])) { system::redirect($_POST['back_url'], true); } else { system::redirect('/users/add'); } } else { system::json($answer); } }
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']); }