예제 #1
0
 public function upd()
 {
     // Указываем для какого объекта строить форму
     if (system::action() == "upd") {
         // Если это редактирование
         $obj = ormObjects::get(system::url(2));
         $right = 'subscribe_proc_upd';
     } else {
         if (system::action() == "add") {
             // Если это добавление нового объекта
             $right = 'subscribe_proc_add';
             $obj = new ormObject();
             $obj->setClass('subscription');
             $obj->back_email = domains::curDomain()->getEmail();
             $obj->back_name = domains::curDomain()->getSiteName();
             $obj->template = 'default';
             $obj->active = 1;
         }
     }
     // Если произошли ошибки, перенаправляем на главную страницу модуля
     if ($obj->issetErrors()) {
         system::redirect('/subscription');
     }
     // Устанавливаем кнопки для формы
     ui::setCancelButton('/subscription');
     ui::newButton(lang::get('BTN_SAVE'), "javascript:sendForm('save');");
     ui::newButton(lang::get('BTN_APPLY'), "javascript:sendForm('apply');");
     // Создаем форму и выводим ее на страницу
     $form = new ormEditForm($obj, $right);
     $form->replaceField('template', $this->templList('template', $obj->template));
     $form->replaceField('name_format', ui::SelectBox('name_format', lang::get('SUBSCRIBE_NAMEFORMAT'), $obj->name_format, 440));
     return $form->getHTML();
 }
예제 #2
0
 public function proc_upd()
 {
     $obj = ormPages::get(system::POST('obj_id'));
     $obj->tabuList('pseudo_url', 'h1', 'keywords', 'title', 'description', 'active', 'is_home_page', 'view_in_menu', 'view_submenu', 'in_search', 'in_index', 'in_new_window', 'other_link', 'img_act', 'img_no_act', 'img_h1');
     $obj->loadFromPost();
     // Публикация на сайте
     if (system::POST('publ', isBool)) {
         if ($obj->isInheritor('faq') && $obj->newVal('answer') == '') {
             ui::MessageBox(lang::get('TEXT_MESSAGE_ERROR'), lang::get('FEEDBACK_MSG_3'));
             ui::selectErrorFields(array('select' => '', 'focus' => 'answer'));
         } else {
             $obj->active = 1;
         }
     }
     $obj_id = $obj->save();
     // Если объект не сохранился, выводим пользователю текст ошибки.
     if ($obj_id === false) {
         system::savePostToSession();
         ui::MessageBox(lang::get('TEXT_MESSAGE_ERROR'), $obj->getErrorListText());
         ui::selectErrorFields($obj->getErrorFields());
         system::redirect('/feedback/message_upd/' . $_POST['obj_id']);
     }
     if (system::POST('send_to_email', isBool) && !$obj->send_answer_to_user && ($form_obj = ormObjects::get($obj->form_id))) {
         if ($form_obj->send_answer) {
             if ($obj->answer != '') {
                 $fields = $obj->getClass()->loadFields();
                 while (list($num, $field) = each($fields)) {
                     if (!empty($field['f_sname'])) {
                         page::assign($field['f_sname'], $obj->__get($field['f_sname']));
                     }
                 }
                 page::assign('site_name', domains::curDomain()->getSiteName());
                 page::assign('base_email', domains::curDomain()->getEmail());
                 $mail = new phpmailer();
                 $mail->From = $this->parse($form_obj->answer_sender_address);
                 $mail->FromName = $this->parse($form_obj->answer_sender_name);
                 $mail->AddAddress($obj->email);
                 $mail->WordWrap = 50;
                 $mail->IsHTML(true);
                 $mail->Subject = $this->parse($form_obj->answer_subject);
                 $mail->Body = $this->parse($form_obj->answer_template);
                 $mail->Send();
                 // Помечаем, что ответ отправлен
                 $obj->send_answer_to_user = 1;
                 $obj->save();
                 ui::MessageBox(lang::get('FEEDBACK_MSG_1'), '');
             } else {
                 ui::MessageBox(lang::get('TEXT_MESSAGE_ERROR'), lang::get('FEEDBACK_MSG_2'));
                 ui::selectErrorFields(array('select' => '', 'focus' => 'answer'));
             }
         }
     }
     // Если данные изменились корректно перенаправляем на соответствующию страницу
     if ($_POST['parram'] == 'apply') {
         system::redirect('/feedback/message_upd/' . $obj_id);
     } else {
         system::redirect('/feedback');
     }
 }
예제 #3
0
 public function pre()
 {
     if ($this->id != domains::curDomain()->getDefLang()) {
         return '/' . $this->getPrefix();
     } else {
         return '';
     }
 }
예제 #4
0
 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;
         }
     }
 }
예제 #5
0
 static function getFileSiteMap()
 {
     self::init();
     $cur_date = reg::getKey('/structure/' . domains::curId() . '/cur_date');
     $text = '';
     reset(self::$pages);
     foreach (self::$pages as $page) {
         if ($page['active'] && $page['in_index'] && empty($page['other_link'])) {
             $date = date('Y-m-d', strtotime($page['o_change_date']));
             if ($cur_date) {
                 $left = (time() - strtotime($page['o_change_date'])) / 86400;
                 if ($left > 30) {
                     $date = date('Y-m-d');
                 }
             }
             $url = self::getPageUrlById($page['o_id']);
             $priority = $page['is_home_page'] ? 1 : 1 - (count(explode('/', $url)) - 1) * 0.1;
             $tmp = '';
             $tmp .= '<loc>http://' . domains::curDomain()->getName() . $url . '</loc>';
             $tmp .= '<lastmod>' . $date . '</lastmod>';
             $tmp .= '<priority>' . $priority . '</priority>';
             $text .= '<url>' . $tmp . '</url>';
         }
     }
     return '<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">' . $text . '</urlset>';
 }
예제 #6
0
 /**
  * @return null
  * @param string $templ_name - Полный путь до шаблона письма, от папки /template
  * @param string $email - E-mail на который нужно отправить письмо.
  * @param string $from - E-mail от кого отправляется письмо
  * @param string $from_name - Имя автора письма
  * @desc Парсит письмо по указанному шаблону и отправляет его на указанный ящик.
  */
 static function sendMail($templ_name, $email, $from = '', $from_name = '')
 {
     $TEMPLATE = page::getTemplate($templ_name);
     if (is_array($TEMPLATE)) {
         page::assign('domain', domains::curDomain()->getName());
         page::assign('site_name', domains::curDomain()->getSiteName());
         page::assign('base_email', domains::curDomain()->getEmail());
         if (empty($from)) {
             $from = domains::curDomain()->getEmail();
         }
         if (empty($from_name)) {
             $from_name = domains::curDomain()->getSiteName();
         }
         // Отправляет письмо с инструкциями
         $mail = new phpmailer();
         $mail->From = $from;
         $mail->FromName = $from_name;
         $mail->AddAddress($email);
         $mail->WordWrap = 50;
         $mail->IsHTML(true);
         $mail->Subject = page::parse($TEMPLATE['subject']);
         $mail->Body = page::parse($TEMPLATE['frame']);
         $mail->Send();
     }
 }
예제 #7
0
 /**
  * @return string
  * @param integer $section - ID объекта с которого начинается построение дерева
  * @param array $parse - Шаблон оформления
  * @desc Рекурсивная функция строит дерево н-го уровня
  */
 private function build_menu($section_id, $parse, $with_frame = true)
 {
     $items = '';
     while ($obj = $this->getTreeObject($section_id)) {
         if (isset($_SESSION['TREE_OPEN_NODES'][$obj->id]) && $obj->issetChildren()) {
             $sub_items = $this->build_menu($obj->id, $parse);
         }
         page::assign('item.id', $obj->id);
         page::assign('item.parent_id', $section_id);
         page::assign('item.url', $this->rightEdit . '/' . $obj->id);
         $pach = '/css_mpanel/tree/images/';
         $ico = 'file1.gif';
         if ($obj->getClass()->issetField('active')) {
             page::assign('item.active', $obj->active);
             if (!$obj->active) {
                 $ico = 'file0.gif';
             } else {
                 $ico = 'classes/' . $obj->getClass()->getSName() . '.png';
                 if (!file_exists(ROOT_DIR . $pach . $ico)) {
                     $ico = 'file1.gif';
                 }
             }
         } else {
             page::assign('item.active', 1);
         }
         page::assign('obj.ico', $pach . $ico);
         page::assign('obj.sname', $obj->getClass()->getSName());
         //определяем иконку класса, если нету присваем пустой листик
         $active_ico = 'classes/' . $obj->getClass()->getSName() . '.png';
         if (!file_exists(ROOT_DIR . $pach . $active_ico)) {
             $active_ico = 'file1.gif';
         }
         page::assign('obj.active_ico', $active_ico);
         page::assign('item.name', $obj->name);
         if (!empty($this->funct_name) && function_exists($this->funct_name)) {
             $notice = call_user_func($this->funct_name, $obj);
         } else {
             $notice = '';
         }
         page::assign('item.notice', $notice);
         page::assign('obj.url', 'http://' . domains::curDomain()->getName() . $obj->_url);
         if (isset($_SESSION['TREE_OPEN_NODES'][$obj->id]) && $obj->issetChildren()) {
             page::assign('close', ' open');
             page::assign('sub_items', $sub_items);
         } else {
             page::assign('close', $obj->issetChildren() ? ' closed' : '');
             page::assign('sub_items', '');
         }
         $items .= page::parse($parse['items']);
     }
     if (!empty($items) && $with_frame) {
         page::assign('items', $items);
         $items = page::parse($parse['frame_items']);
     }
     return $items;
 }
예제 #8
0
 public function proc()
 {
     // ******************	Основные настройки	***************************
     reg::setKey(ormPages::getPrefix() . '/title_prefix', system::POST('title_prefix'));
     reg::setKey(ormPages::getPrefix() . '/keywords', system::POST('keywords'));
     reg::setKey(ormPages::getPrefix() . '/description', system::POST('description'));
     reg::setKey('/structure/' . domains::curId() . '/cur_date', system::POST('cur_date', isBool));
     reg::setKey(ormPages::getPrefix() . '/no_view_no_edit', system::POST('no_view_no_edit', isBool));
     reg::setKey(ormPages::getPrefix() . '/view_as_tree', system::POST('view_as_tree', isBool));
     reg::setKey(ormPages::getPrefix('search') . '/auto_index', system::POST('auto_index', isBool));
     // Сохраняем информацию о части файла Robots.txt
     if (isset($_POST['robots'])) {
         $file = ROOT_DIR . '/robots_part_' . domains::curDomain()->getName() . '.txt';
         if (empty($_POST['robots']) && file_exists($file)) {
             unlink($file);
         } else {
             if (!empty($_POST['robots'])) {
                 $f = fopen($file, "w");
                 fwrite($f, $_POST['robots']);
                 fclose($f);
             }
         }
     }
     // Управление отображением
     reg::delKey(ormPages::getPrefix() . '/no_view');
     if (isset($_POST['no_view_classes'])) {
         while (list($num, $val) = each($_POST['no_view_classes'])) {
             if (!empty($val)) {
                 reg::setKey(ormPages::getPrefix() . '/no_view/' . $num, $val);
             }
         }
     }
     reg::delKey(ormPages::getPrefix() . '/no_edit');
     if (isset($_POST['no_edit_classes'])) {
         while (list($num, $val) = each($_POST['no_edit_classes'])) {
             if (!empty($val)) {
                 reg::setKey(ormPages::getPrefix() . '/no_edit/' . $num, $val);
             }
         }
     }
     // ******************	Сохранение шаблонов	***************************
     function changeTempl($id, $obj, $form_name)
     {
         $type = $form_name == 'page_tpl' ? 0 : 1;
         $templ = new template($id);
         $templ->setName($obj['t_name']);
         $templ->setFile($obj['t_file']);
         $templ->setDestination($type);
         $templ->setLangId(languages::curId());
         $templ->setDomainId(domains::curId());
         $templ->save();
         return true;
     }
     function delTempl($id)
     {
         $templ = new template($id);
         $templ->delete();
     }
     $form = new uiMultiForm('page_tpl');
     $form->process('changeTempl', 'delTempl');
     $form = new uiMultiForm('obj_tpl');
     $form->process('changeTempl', 'delTempl');
     ormPages::clearCache();
     if ($_POST['parram'] == 'apply') {
         system::redirect('/structure/settings');
     } else {
         if ($_SESSION['STRUCTURE_LIST_FLAG']) {
             system::redirect('/structure/list');
         } else {
             system::redirect('/structure/tree');
         }
     }
 }
예제 #9
0
 static function pre()
 {
     self::init();
     if (self::$cur_lang->id() != domains::curDomain()->getDefLang()) {
         return '/' . self::$cur_lang->getPrefix();
     } else {
         return '';
     }
 }
예제 #10
0
 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);
     }
 }
예제 #11
0
 /**
  * @return stirng - Контент
  * @param string $templ_name - имя шаблона
  * @desc МАКРОС: Возвращает пропарсенный шаблон из папки /template/structure
  */
 function include_templ($templ_name)
 {
     $site_prefix = domains::curId() == 1 && languages::curId() == 1 ? '' : '/__' . str_replace('.', '_', domains::curDomain()->getName()) . '_' . languages::curPrefix();
     $file = TEMPL_DIR . $site_prefix . '/structure/' . $templ_name . '.tpl';
     if (!file_exists($file)) {
         return str_replace('%name%', $templ_name, 'Указанный шаблон (%name%.tpl) не найден!');
     } else {
         $file_tpl = implode('', file($file));
         return page::parse($file_tpl);
     }
 }
예제 #12
0
파일: page.php 프로젝트: sunfun/Bagira.CMS
 /**
  * @return null
  * @param string $filename - Путь к файлу шаблона
  * @param boolean $absolut - Если true - путь считается абсолютным и вычисляется от корневой папки, в которой находится движок
  * @desc Обрабатывает указанный файл шаблона и выводит его на страницу
  */
 static function parseIt($filename, $absolut = false, $withoutCache = false)
 {
     if (!system::$isAdmin && !$absolut) {
         $site_prefix = domains::curId() == 1 && languages::curId() == 1 ? '' : '/__' . str_replace('.', '_', domains::curDomain()->getName()) . '_' . languages::curPrefix();
         if (file_exists(TEMPL_DIR . $site_prefix . $filename)) {
             $filename = TEMPL_DIR . $site_prefix . $filename;
         } else {
             if (file_exists(TEMPL_DIR . $site_prefix . '/structure/default.tpl')) {
                 $filename = TEMPL_DIR . $site_prefix . '/structure/default.tpl';
             } else {
                 echo lang::get('ERROR_TEMPL2');
                 system::stop();
             }
         }
     }
     while (list($key, $val) = each(self::$page_mas)) {
         self::assign($key, $val);
     }
     self::$arr = self::parse(file($filename));
     // Сохраняем страницу в кэш
     if (!$withoutCache && self::isCashePage()) {
         $page = array('html' => self::$arr, 'page_id' => ormPages::getCurPageId(), 'page_url' => system::getCurrentUrlPN(), 'active_pages' => ormPages::getActiveId(), 'host' => $_SERVER['HTTP_HOST']);
         cache::set(system::getCurrentUrlPN(), $page);
     }
     // Вторично обрабатывает шаблон
     self::$arr = self::parse(self::parse(self::$arr, 2), 2);
     // Выводит обработанный шаблон на печать
     //echo str_replace('`%`', '%', self::$arr);
     echo self::$arr;
     self::freshAll();
 }
예제 #13
0
 /**
  * @return HTML
  * @param int $section_id - ID новостной ленты, для которой необходимо построить RSS-ленту
  * @param string $templ_name - Шаблон оформления, по которому будет строится RSS-лента
  * @desc МАКРОС: Выводит содержимое RSS-ленты.
  */
 public function rss($section_id, $templ_name = 'rss')
 {
     $templ_file = '/structure/rss/' . $templ_name . '.tpl';
     $TEMPLATE = page::getTemplate($templ_file);
     if (!is_array($TEMPLATE)) {
         return page::errorNotFound('structure.rss', $templ_file);
     }
     $cur_domain = 'http://' . domains::curDomain()->getName();
     page::assign('channel.url', $cur_domain);
     page::assign('channel.date', date('r'));
     page::assign('channel.notice', '');
     // Определяем из каких категорий выводить ленту новостей
     $sections = array();
     if ($section_id == 'all') {
         // Из нескольких
         $sel = new ormSelect('news_feed');
         $sel->findInPages();
         $sel->fields('id');
         $sel->where('rss_export', '=', 1);
         $sel->where('active', '=', 1);
         while ($obj = $sel->getObject()) {
             $sections[] = $obj->id;
         }
         page::assign('channel.title', domains::curDomain()->getSiteName());
     } else {
         // Из одной
         $section_id = system::checkVar($section_id, isInt);
         if (empty($section_id)) {
             return '';
         }
         $sections[] = $section_id;
         if ($sect = ormPages::get($section_id)) {
             page::assign('channel.title', $sect->name);
         }
     }
     // Формируем выборку объектов
     $sel = new ormSelect();
     $sel->findInPages();
     $sel->fields('name, notice, publ_date');
     $sel->where('parents', '=', $sections, 'OR');
     $sel->where('active', '=', 1);
     $sel->orderBy('publ_date', desc);
     $sel->limit(3);
     // Формируем список
     $list = '';
     while ($obj = $sel->getObject()) {
         $num = $sel->getObjectNum() + 1;
         page::assign('obj.num', $num);
         page::assign('obj.id', $obj->id);
         page::assign('obj.url', $cur_domain . $obj->_url);
         page::assign('obj.name', $obj->name);
         $notice = str_replace('&nbsp;', '', strip_tags($obj->notice));
         page::assign('obj.notice', $notice);
         $date = date('r', strtotime($obj->publ_date));
         page::assign('obj.date', $date);
         /*
         if ($obj->podkast != '') {
             page::assign('obj.media_url', $cur_domain.$obj->podkast);
             page::fParse('media', $TEMPLATE['media']);
         } else
             page::assign('media', '');
         */
         if (isset($TEMPLATE['list'])) {
             $list .= page::parse($TEMPLATE['list']);
         } else {
             return page::errorBlock('structure.rss', $templ_file, 'list');
         }
     }
     if (!empty($list)) {
         page::assign('list', $list);
         if (isset($TEMPLATE['frame_list'])) {
             $list = page::parse($TEMPLATE['frame_list']);
         } else {
             return page::errorBlock('structure.rss', $templ_file, 'frame_list');
         }
     }
     return $list;
 }
예제 #14
0
 private function getPageInfo($obj, $form)
 {
     if ($obj->id != 0) {
         $domain = system::isLocalhost() ? domains::curDomain()->getUrl() : '';
         $form->addInBottomTabs('param', '
             <div class="clear"></div><div class="otstup"></div>
             <div class="fieldBox"><label><b></b>' . lang::get('STRUCTURE_PAGE_URL') . '</label> <a href="' . $domain . $obj->_url . '">' . $obj->_url . '</a></div>
             <div class="fieldBox"><label><b></b>' . lang::get('STRUCTURE_PAGE_URL') . '</label> ' . $obj->id . '</div>
         ');
     }
 }
예제 #15
0
파일: user.php 프로젝트: sunfun/Bagira.CMS
 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);
 }
예제 #16
0
 public function send_messageAction()
 {
     if ($form_obj = ormObjects::get(system::POST('form_id'))) {
         $issetErrors = false;
         $answer = array();
         // Проверка капчи
         if ($form_obj->captcha && !system::validCapcha('random_image')) {
             $issetErrors = true;
             $answer = array('field' => 'random_image', 'msg' => lang::get('FEEDBACK_ERROR1'));
         }
         // Если указанно куда, добавляем объект в БД
         if (($form_obj->any_sections || $form_obj->section) && !$issetErrors) {
             // Определяем раздел, в который будем добавлять отзыв
             if ($form_obj->any_sections) {
                 $section = system::POST('section_id', isInt);
             } else {
                 $section = $form_obj->section;
                 $section = !empty($section) ? $section[0] : 0;
             }
             // Создаем объект обратной связи
             $obj = new ormPage();
             $obj->setParent($section);
             $obj->setClass($form_obj->form_class);
             $obj->tabuList('pseudo_url', 'h1', 'keywords', 'title', 'description', 'answer', 'active', 'is_home_page', 'view_in_menu', 'view_submenu', 'in_search', 'in_index', 'in_new_window', 'other_link', 'img_act', 'img_no_act', 'img_h1');
             $obj->loadFromPost();
             $obj->active = 0;
             $obj->view_in_menu = 1;
             $obj->view_submenu = 1;
             $obj->in_search = 1;
             $obj->in_index = 1;
             $obj->is_home_page = 0;
             if ($obj->name != '') {
                 $obj->h1 = $obj->name;
                 $obj->title = $obj->name;
             }
             $obj->pseudo_url = rand(1000, 9999);
             $obj->template_id = ($sect = ormPages::get($form_obj->section)) ? $sect->template_id : 1;
             $obj->form_id = $form_obj->id;
             $obj->setRightForAll(2);
             $obj_id = $obj->save();
             if ($obj_id) {
                 $obj->pseudo_url = $obj_id;
                 $obj->save();
                 $obj = new ormPage($obj_id);
             } else {
                 $issetErrors = true;
                 $f = $obj->getErrorFields();
                 $answer = array('field' => $f['focus'], 'msg' => $obj->getErrorListText(' '));
             }
         }
         if (!$issetErrors) {
             // Отправка нужных писем
             page::assign('site_name', domains::curDomain()->getSiteName());
             page::assign('site_url', domains::curDomain()->getName());
             page::assign('base_email', domains::curDomain()->getEmail());
             while (list($key, $val) = each($_POST)) {
                 page::assign($key, system::checkVar($val, isText));
             }
             if (isset($obj)) {
                 $fields = $obj->getClass()->loadFields();
                 foreach ($fields as $field) {
                     if (in_array($field['f_type'], array(70, 75, 80, 85))) {
                         $fsname = $field['f_sname'];
                         $fvalue = $obj->{$fsname};
                         if ($fvalue != '') {
                             page::assign($fsname, $fvalue);
                         }
                     }
                 }
             }
             // Если указан список адресатов, отправляем письма
             if ($form_obj->mailing_list != '') {
                 $mail = new phpmailer();
                 $mail->From = $this->parse($form_obj->admin_sender_address);
                 $mail->FromName = $this->parse($form_obj->admin_sender_name);
                 /*
                                   if (!empty($this->files))
                 for($i = 0; $i < count($this->files); $i++)
                    $mail->AddAttachment($this->files[$i][0], $this->files[$i][1]);
                 */
                 $mail->AddAddress($form_obj->mailing_list);
                 $mail->WordWrap = 50;
                 $mail->IsHTML(true);
                 $mail->Subject = $this->parse($form_obj->admin_subject);
                 $mail->Body = $this->parse($form_obj->admin_template);
                 $mail->Send();
             }
             // Если нужно, отправляем уведомление пользователю
             if ($form_obj->send_notice && !$issetErrors) {
                 $mail = new phpmailer();
                 $mail->From = $this->parse($form_obj->notice_sender_address);
                 $mail->FromName = $this->parse($form_obj->notice_sender_name);
                 $mail->AddAddress(system::POST('email'));
                 $mail->WordWrap = 50;
                 $mail->IsHTML(true);
                 $mail->Subject = $this->parse($form_obj->notice_subject);
                 $mail->Body = $this->parse($form_obj->notice_template);
                 $mail->Send();
             }
             // Показываем результат
             if (system::isAjax()) {
                 if ($form_obj->msg != '') {
                     $text = $form_obj->msg;
                 } else {
                     $text = lang::get('FEEDBACK_MSG_1');
                 }
                 system::json(array('field' => 0, 'msg' => strip_tags($text)));
             } else {
                 system::redirect('/feedback/ok/' . $form_obj->id);
             }
         } else {
             // Произошли ошибки
             if (system::isAjax()) {
                 system::json($answer);
             } else {
                 system::savePostToSession();
                 system::saveErrorToSession('feedback', $answer);
                 if (empty($_POST['back_url'])) {
                     $_POST['back_url'] = '/structure/map';
                 }
                 system::redirect($_POST['back_url'], true);
             }
         }
         system::stop();
     } else {
         system::stop();
     }
 }
예제 #17
0
 private function sendStateMsg()
 {
     if (!empty($this->obj)) {
         if ($this->change_state && ($state = ormObjects::get($this->obj->state)) && $state->info) {
             page::assign('order.id', $this->obj->id);
             page::assign('order.number', $this->getNumber());
             page::assign('order.cost', $this->getTotalCost());
             // Информация о доставке
             page::assign('order.delivery', $this->obj->_delivery);
             page::assign('order.delivery_price', $this->getDeliveryPrice());
             page::assign('order.name', $this->obj->delivery_name);
             page::assign('order.surname', $this->obj->delivery_surname);
             page::assign('order.phone', $this->obj->delivery_phone);
             page::assign('order.address', $this->obj->delivery_address);
             page::assign('username', user::get('surname') . ' ' . user::get('name'));
             page::assign('goods_list', page::macros('eshop')->goodsList($this->obj->id, 'goods_list_email'));
             $text = str_replace(array('{', '}'), '%', $state->email_msg);
             $title = str_replace(array('{', '}'), '%', $state->email_title);
             $mail = new phpmailer();
             $mail->WordWrap = 50;
             $mail->IsHTML(true);
             $mail->From = domains::curDomain()->getEmail();
             $mail->FromName = domains::curDomain()->getSiteName();
             $mail->Subject = page::parse($title);
             $mail->Body = page::parse($text);
             // Отправляем письмо пользователю
             $mail->AddAddress($this->obj->email);
             $mail->Send();
             // Отправляем письмо администратору
             if ($state->id == reg::getKey('/eshop/fisrt_state') && reg::getKey('/eshop/dubl_to_email')) {
                 $mail->ClearAddresses();
                 $mail->AddAddress(domains::curDomain()->getEmail());
                 $mail->Send();
             }
         }
     }
 }
예제 #18
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;
 }
예제 #19
0
파일: ui.php 프로젝트: sunfun/Bagira.CMS
 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']);
 }