Exemplo n.º 1
0
 public function unsubscribeAction()
 {
     if ($page = ormPages::get(system::url(3))) {
         comments::unsubscribe(system::url(2), system::url(3));
         page::globalVar('title', lang::get('COM_TITLE'));
         page::globalVar('h1', lang::get('COM_TITLE'));
         return lang::get('COM_UNSUBSCRIBE') . '"' . $page->name . '".';
     }
 }
Exemplo n.º 2
0
 public function rssAction()
 {
     if (!system::issetUrl(2)) {
         page::globalVar('h1', lang::get('RSS_TITLE'));
         page::globalVar('title', lang::get('RSS_TITLE'));
         return page::macros('structure')->rssList();
     } else {
         header("content-type: text/xml; charset=UTF-8");
         echo page::macros('structure')->rss(system::url(2));
         system::stop();
     }
 }
Exemplo n.º 3
0
 /**
 * @return Результат выполнения запроса
 * @param string $sql - Код SQL-запроса
 * @param const $method - Метод обработки результатов выполнения запроса
 		Используйте одну из констант:
 			records	-	Вернет результат в виде двумерного ассоциативного массива
 		    record	-	Вернет результат в виде одномерного ассоциативного массива
 		    values	-	Вернет результат в виде одномерного массива
 		    value   -	Вернет результат в виде значения
 * @param boolean $show_info - Если true, выведет информацию для отладки
 * @desc Выполняет запрос, возвращает результат для обработки
 */
 public static function q($sql, $method = 0, $show_info = false)
 {
     self::init();
     system::setTimeLabel(999);
     $sql = self::addPrefix($sql);
     //system::log($sql);
     //  system::log(str_replace(array(Chr(9), Chr(10), Chr(13)), '', $sql), error);
     if ($show_info) {
         echo '<b>SQL-запрос:</b><br />' . $sql . '<br /><br />';
     }
     try {
         if (strtolower(substr($sql, 0, 6)) == 'insert') {
             // Обработка запроса INSERT
             self::$pdo->exec($sql);
             $value = self::$pdo->lastInsertId();
         } else {
             if (empty($method)) {
                 // Просто выполнение запроса, без возврата результата.
                 $value = self::$pdo->exec($sql);
             } else {
                 // Обработка запроса SELECT
                 $res = self::$pdo->query($sql);
                 if ($method == records) {
                     // Получаем много записей
                     $value = $res->fetchAll(PDO::FETCH_ASSOC);
                 } else {
                     if ($method == record) {
                         // Получаем одну запись
                         $value = $res->fetch(PDO::FETCH_ASSOC);
                     } else {
                         if ($method == values) {
                             // Получаем одну запись, нумерованный массив
                             $value = $res->fetch(PDO::FETCH_NUM);
                         } else {
                             if ($method == value) {
                                 // Получаем одно значение
                                 $mas = $res->fetch(PDO::FETCH_NUM);
                                 $value = isset($mas[0]) ? $mas[0] : '';
                             }
                         }
                     }
                 }
             }
         }
     } catch (Exception $e) {
         // Ошибка при выполнении запроса
         $value = false;
         // Пишем в журнал
         system::log($e->getMessage(), error);
         system::log(str_replace(array(Chr(9), Chr(10), Chr(13)), '', $sql), error);
         // Вывод сообщения об ошибке
         if (SHOW_SQL_ERRORS != -1 && ($_SERVER['SERVER_ADDR'] == '127.0.0.1' || SHOW_SQL_ERRORS)) {
             if ($show_info) {
                 echo '<b>ОШИБКИ:</b><br />' . $e->getMessage() . '<br /><br />';
             } else {
                 header('Content-Type: text/html; charset=utf-8');
                 echo '<b>SQL-запрос:</b><br />' . $sql . '<br /><br />';
                 echo '<b>ОШИБКИ:</b><br />' . $e->getMessage() . '<br /><br />';
             }
         } else {
             if ($e->getCode() == '42S02') {
                 // Отсутсвие таблиц. Выводим всегда, если не на локалхосте.
                 $msg = '<h3>Ошибка при работе с БД!</h3><br/>';
                 $msg .= 'Соединение установлено, но необходимые таблицы отсутствуют. <br/><br/>Скорей всего БД пустая или  в ней не хватает некоторых таблиц. Попробуйте перезалить дамп БД, а так же перепроверьте префикс для таблиц в настройках подключения к БД.';
                 page::globalVar('title', 'Bagira.CMS');
                 page::globalVar('content', $msg);
                 page::parseIt(TEMPL_DIR . '/offline.tpl', true);
                 die;
             }
         }
     }
     if ($show_info) {
         echo '<b>Результат:</b><br />';
         print_r($value);
         echo '<br /><br />';
     }
     $time = system::getTimeLabel(999, false);
     self::toList($sql . '<br />' . $time);
     return $value;
 }
Exemplo n.º 4
0
 function okAction()
 {
     if ($form_obj = ormObjects::get(system::url(2))) {
         page::globalVar('h1', lang::get('FEEDBACK_TITLE'));
         page::globalVar('title', lang::get('FEEDBACK_TITLE'));
         if ($form_obj->msg != '') {
             return $form_obj->msg;
         } else {
             return lang::get('FEEDBACK_MSG_1');
         }
     }
     system::redirect('/');
 }
Exemplo n.º 5
0
 public function orderView($order_id, $templ_name = 'order_list')
 {
     $templ_file = '/eshop/' . $templ_name . '.tpl';
     $TEMPLATE = page::getTemplate($templ_file);
     if (!is_array($TEMPLATE)) {
         return page::errorNotFound('eshop.orderVeiw', $templ_file);
     }
     if ($obj = ormObjects::get($order_id, 'eshop_order')) {
         $order = new eShopOrder($obj);
         page::globalVar('title', lang::get('ESHOP_TITLE', 9) . $order->getNumber());
         page::globalVar('h1', lang::get('ESHOP_TITLE', 9) . $order->getNumber());
         page::assign('order.id', $order->id);
         page::assign('order.number', $order->getNumber());
         page::assign('order.cost', $order->getTotalCost());
         page::assign('order.state', $order->_state);
         // Информация о доставке
         page::assign('order.delivery', $order->_delivery);
         page::assign('order.delivery_price', $order->getDeliveryPrice());
         page::assign('order.name', $order->delivery_name);
         page::assign('order.surname', $order->delivery_surname);
         page::assign('order.phone', $order->delivery_phone);
         page::assign('order.address', $order->delivery_address);
         return page::parse($TEMPLATE['frame_view']);
     }
 }
Exemplo n.º 6
0
 static function get404()
 {
     page::disableCacheForThisPage();
     page::globalVar('h1', lang::get('ERROR_404_TITLE'));
     page::globalVar('title', lang::get('ERROR_404_TITLE'));
     if (!($data = cache::get('error404'))) {
         $data = lang::get('ERROR_404_TEXT') . page::macros('structure')->menu('map');
         cache::set('error404', $data);
     }
     return $data;
 }
Exemplo n.º 7
0
 static function start()
 {
     header('Content-Type: text/html; charset=utf-8');
     self::parseUrl();
     // Опредяем текущий язык и домен (в случае необходимости обрезаем URL)
     languages::curLang();
     // Устанавливаем в доступ языковые переменные
     if (file_exists(MODUL_DIR . '/core/sitelang-' . languages::curPrefix() . '.php')) {
         include MODUL_DIR . '/core/sitelang-' . languages::curPrefix() . '.php';
         lang::setLang($LANG);
     }
     // Подключаем класс для работы с текущим пользователем
     user::init();
     // активация шаблонной системы
     self::$defTemplate = '/structure/default.tpl';
     page::init('%', '%');
     page::globalVar('h1', '');
     page::globalVar('title', '');
     page::globalVar('site_name', domains::curDomain()->getSiteName());
     page::globalVar('base_email', domains::curDomain()->getEmail());
     page::globalVar('user_id', user::get('id'));
     page::globalVar('pre_lang', languages::pre());
     page::globalVar('time', time());
     page::globalVar('current_url', self::getCurrentUrl());
     page::globalVar('current_url_pn', self::getCurrentUrlPN());
     page::assign('current_url', self::getCurrentUrl());
     page::assign('current_url_pn', self::getCurrentUrlPN());
     // Заглушка для IE6
     if (reg::getKey('/core/noIE6') && preg_match('/msie/i', $_SERVER['HTTP_USER_AGENT']) && !preg_match('/opera/i', $_SERVER['HTTP_USER_AGENT'])) {
         $val = explode(" ", stristr($_SERVER['HTTP_USER_AGENT'], 'msie'));
         if ($val[1] == '6.0;') {
             page::parseIt('/ieDie.tpl', false, true);
             system::stop();
         }
     }
     // Заглушка для IE7
     if (reg::getKey('/core/noIE7') && preg_match('/msie/i', $_SERVER['HTTP_USER_AGENT']) && !preg_match('/opera/i', $_SERVER['HTTP_USER_AGENT'])) {
         $val = explode(" ", stristr($_SERVER['HTTP_USER_AGENT'], 'msie'));
         if ($val[1] == '7.0;') {
             page::parseIt('/ieDie.tpl', false, true);
             system::stop();
         }
     }
     // Заглушка для IE8
     if (reg::getKey('/core/noIE8') && preg_match('/msie/i', $_SERVER['HTTP_USER_AGENT']) && !preg_match('/opera/i', $_SERVER['HTTP_USER_AGENT'])) {
         $val = explode(" ", stristr($_SERVER['HTTP_USER_AGENT'], 'msie'));
         if ($val[1] == '8.0;') {
             page::parseIt('/ieDie.tpl', false, true);
             system::stop();
         }
     }
     // Оффлайн сообщение
     if (!domains::curDomain()->online() && !user::isAdmin() && !(self::issetUrl(0) && self::url(0) == 'mpanel')) {
         page::globalVar('content', domains::curDomain()->getOfflineMsg());
         page::parseIt('/offline.tpl', false, true);
         system::stop();
     }
     // Генерация файлов robots.txt и sitemap.xml
     ormPages::getContentFileRobots();
     ormPages::getContentFileSiteMap();
     // Проверяем, есть ли текущая страница в кэше
     page::checkCache();
     // Вызов макроса через Ajax
     page::callAjaxMacros();
     // Парсим мето-информацию "по умолчанию"
     page::globalVar('keywords', reg::getKey(ormPages::getPrefix() . '/keywords'));
     page::globalVar('description', reg::getKey(ormPages::getPrefix() . '/description'));
     // Загрузка необходимого функционала в зависимости от адреса
     $content = '';
     // Пытаемся загрузить МОДУЛЬ
     if (self::issetUrl(0)) {
         $content = self::loadController('controller');
     }
     // Пытаемся загрузить СТРАНИЦУ
     if (!self::issetUrl(0) || $content === false) {
         $content = self::loadController('controller', 1, 'structure');
     }
     // Отображение сообщения "Страница не найдена"
     if (empty($content)) {
         $content = ormPages::get404();
     }
     // Парсим контент на страницу
     page::fParse('content', $content);
     // Версия для печати
     $print_file = '/structure/_' . self::getCurrentNavVal() . '.tpl';
     if (self::getCurrentNavVal() != '' && file_exists(TEMPL_DIR . $print_file)) {
         self::$defTemplate = $print_file;
     }
     if (!self::$isAdmin) {
         $title = str_replace('%text%', page::getGlobalVar('title'), reg::getKey(ormPages::getPrefix() . '/title_prefix'));
         page::globalVar('title', $title);
         if (file_exists(MODUL_DIR . '/core/template/minitext.tpl')) {
             include MODUL_DIR . '/core/template/minitext.tpl';
         }
         // Мини-тексты, если есть
         $list = reg::getList(ormPages::getPrefix() . '/minitext');
         while (list($id, $val) = each($list)) {
             //инлайн редактирование
             if (user::isAdmin() && user::issetRight('minitext_edit', 'structure')) {
                 $val = str_replace('%val%', $val, str_replace('%id%', $id, $TEMPLATE['frame']));
             }
             page::globalVar('text_' . $id, $val);
         }
     }
     // Выводим содержимое на экран
     page::parseIt(self::$defTemplate);
     // Завершение работы
     self::stop();
 }
Exemplo n.º 8
0
 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']);
 }
Exemplo n.º 9
0
 public function change_passwordAction()
 {
     page::globalVar('h1', lang::get('USERS_CHANGE_PSW_H1'));
     page::globalVar('title', lang::get('USERS_CHANGE_PSW_H1'));
     return page::macros('users')->changePassword();
 }
Exemplo n.º 10
0
 public function okAction()
 {
     page::globalVar('h1', lang::get('SUBSCRIPTION_TITLE'));
     page::globalVar('title', lang::get('SUBSCRIPTION_TITLE'));
     return lang::get('SUBSCRIPTION_MSG');
 }
Exemplo n.º 11
0
 public function order_listAction()
 {
     page::globalVar('title', lang::get('ESHOP_TITLE', 8));
     page::globalVar('h1', lang::get('ESHOP_TITLE', 8));
     return page::macros('eshop')->orderList();
 }
Exemplo n.º 12
0
 static function getMainHTML($content)
 {
     if (file_exists(MODUL_DIR . '/mpanel/template/config.tpl')) {
         include MODUL_DIR . '/mpanel/template/config.tpl';
     }
     if (isset($TEMPLATE)) {
         self::getConfig($TEMPLATE);
     }
     // Основное содержимое страницы
     page::assign('bottom_control', self::$bottomControl);
     page::assign('top_control', self::$topControl);
     self::getButtonsHTML();
     // Заголовок и Титл страницы
     page::assign('header', substr(self::$pageHeader, 0, 100));
     $title = !empty(self::$pageHeader) ? self::$pageHeader . ' | ' : '';
     page::globalVar("title", $title . 'Bagira.CMS');
     // Вывод всплывающего сообщения
     self::getMessageBoxHTML();
     if (!empty($_SESSION['SelectField'])) {
         page::assign('select_field', $_SESSION['SelectField']['select']);
         page::assign('focus_field', $_SESSION['SelectField']['focus']);
         $_SESSION['SelectField'] = '';
     } else {
         page::assign('select_field', '');
         page::assign('focus_field', '');
     }
     // Панель слева с кнопками
     $left_buttons = '';
     if (!empty(self::$left_buttons)) {
         while (list($num, $button) = each(self::$left_buttons)) {
             page::assign('link', system::au() . '/' . system::url(0) . '/' . $button['link']);
             page::assign('title', $button['title']);
             $act = $button['link'] == system::url(1) ? '_active' : '';
             $left_buttons .= page::parse($TEMPLATE['bt_item' . $act]);
         }
     }
     if (!empty($left_buttons)) {
         // Панель слева с кнопками
         page::assign('left_buttons', $left_buttons);
         page::assign('content', $content);
         return page::parse($TEMPLATE['left_buttons']);
     } else {
         if (empty(self::$leftBlocks)) {
             // Обычная страница
             page::assign('content', $content);
             return page::parse($TEMPLATE['content']);
         } else {
             // Панель слева с деревом
             page::assign('left_column', self::$leftBlocks);
             page::assign('content', $content);
             return page::parse($TEMPLATE['left_column']);
         }
     }
 }