/** * Получение списка данных */ private function showList() { // Идентификатор группы. $gid = isset($this->params['gid']) && (int) $this->params['gid'] > 0 ? (int) $this->params['gid'] : 1; // Количество альбомов на странице $albom_limit = isset($this->params['albom_limit']) && (int) $this->params['albom_limit'] > 0 ? (int) $this->params['albom_limit'] : System_Settings::getLimit(); // Количество изображений на странице $image_limit = isset($this->params['image_limit']) && (int) $this->params['image_limit'] > 0 ? (int) $this->params['image_limit'] : System_Settings::getLimit(); // Получение номера страницы $page_num = $this->getPageNum(); // Получение информации о текущем альбоме $album = $this->object_group->getRow('gallery', $gid); // Получение списка альбомов $albums = $this->object_group->getAdminList('gallery', $gid, 1, 'position', 'ASC'); for ($i = 0; $i < count($albums); $i++) { $tmp = $this->object_group->getRows('gallery_photos', 'group_id', $albums[$i]['id']); $albums[$i]['image'] = $tmp[0]['image']; } //Получение списка изображений $images = array(); if (empty($albums)) { $images = $this->object->getRows('gallery_photos', 'group_id', $gid, '', '', $page_num); } // Вывод информации о постраничной навигации $this->smarty->assign('pagination', $this->object->getPagination($page_num)); $this->smarty->assign('current_link', $this->getUrl()); // Вывод информации в шаблон $this->smarty->assign('page', $this->page_info); $this->smarty->assign('album', $album); $this->smarty->assign('albums', $albums); $this->smarty->assign('images', $images); }
/** * @param $root * @param $lang * @param $pref */ public function __construct($root, $lang, $pref) { // Определяем корневыю директорию $this->setRoot($root); // Определяем текущий язык сайта $this->setLang($lang); // Определение префикса таблиц $this->setPref($pref); $this->setLimit(System_Settings::getLimit()); }
/** * Вывод шаблона * @param $template */ public function displayAndCach($template) { $cache_id = null; $current_data = System_Settings::getCurrentData(); if (isset($_SERVER['REQUEST_URI']) && $_SERVER['REQUEST_URI'] != '') { $query = 'CALL insert_cach_id(:link, :template, :table_name, :table_id)'; $params = array(':link' => $_SERVER['REQUEST_URI'], ':template' => $template, ':table_name' => isset($current_data['table']) ? $current_data['table'] : NULL, ':table_id' => isset($current_data['id']) ? $current_data['id'] : NULL); $cache_id = PdoWrap::selectCell($query, $params); } parent::display($template, $cache_id); }
private function showList() { // Лимит записей на страницу. $limit = isset($this->params['limit']) && (int) $this->params['limit'] > 0 ? (int) $this->params['limit'] : System_Settings::getLimit(); // Получение номера страницы $page_num = $this->getPageNum(); $data = $this->object->getAllRows('editor', 'date_post', 'DESC', $page_num, $limit); // Вывод информации о постраничной навигации $this->smarty->assign('pagination', $this->object->getPagination($page_num)); $this->smarty->assign('current_link', $this->getUrl()); // Вывод информации в шаблон $this->smarty->assign('data', $data); }
private function showList() { // Лимит записей на страницу. $limit = isset($this->params['limit']) && (int) $this->params['limit'] > 0 ? (int) $this->params['limit'] : System_Settings::getLimit(); // Группа новостей. $group_id = isset($this->params['gid']) && (int) $this->params['gid'] > 0 ? (int) $this->params['gid'] : 0; // Выводить на главной. $main_page = isset($this->params['main_page']) && (int) $this->params['main_page'] > 0 ? (int) $this->params['main_page'] : 0; // Получение номера страницы $page_num = $this->getPageNum(); $data = $this->getList($group_id, $page_num, $limit); if ($main_page == 1) { $query = ' SELECT `i`.*, CONCAT(`c`.`link`, `i`.`alias`, ".html") AS `link`, `c`.`link` AS `group_link`, `c`.`name` AS `group_name`, (SELECT `image` FROM `cms_catalog_images` `im` WHERE `im`.`item_id` = `i`.`id` ORDER BY `im`.`position` DESC LIMIT 1) AS `image` FROM `' . PREF . 'catalog_items` `i` INNER JOIN `' . PREF . 'catalog_groups` `c` ON `c`.`id` = `i`.`group_id` INNER JOIN `' . PREF . 'catalog_groups` `p` ON `c`.`tree_left` >= `p`.`tree_left` AND `c`.`tree_right` <= `p`.`tree_right` WHERE `p`.`id` = ? AND `i`.`active` = "1" AND `i`.`main_page` = "1" ORDER BY `i`.`position` ASC LIMIT ' . (int) $limit . ' '; $data = PdoWrap::select($query, array($group_id)); } // Вывод информации о постраничной навигации $this->smarty->assign('pagination', $this->object->getPagination($page_num)); $this->smarty->assign('current_link', $this->getUrl()); // Вывод информации в шаблон $this->smarty->assign('data', $data); $this->smarty->assign('page', $this->page_info); }
} } // Проверка языка. if ($current_lang != Text::get_get('lang')) { header("Location: /admin/?" . makeget(array('lang')) . '&lang=' . $default_lang); exit; } } $smarty->assign('current_lang', $current_lang); $smarty->assign('langs', $langs); if (isset($_SESSION['user'])) { $smarty->assign('user', $_SESSION['user']); } // получение настроек $system_options = getSiteOptions(); System_Settings::setLimit($system_options['admin_table_limit']); // Проверка установки системы. if (count(PdoWrap::select('CALL get_modules()')) == 0) { // Переадресация на модуль усановки. header('Location: /admin/install.php'); exit; } // Выход из панели администрирования if (Text::get_get('do') == 'logout') { session_unset(); session_destroy(); header('location: /admin/'); exit; } // Подключение файла локализации. $__lang = array();
private function checkLang() { return file_exists(System_Settings::getPathRoot() . '/modules/' . $this->getRequestModule() . '/langs/' . self::getCurrentLang() . '.lang.php') ? true : false; }
if (!defined('ENCODING_CONNECTION')) { define('ENCODING_CONNECTION', 'utf8_general_ci'); } // Директория для пользовательских файлов if (!defined('USERFILES')) { define('USERFILES', DOC . 'userfiles/'); } // Сохранение оригинального изображения после загрузки if (!defined('IMG_ORIGINAL')) { define('IMG_ORIGINAL', 'original'); } System_Settings::setLocalDBStr($db_conf); // Настройки для шаблонизатора System_Settings::setSmarty_template_dir(DOC . 'templates/'); System_Settings::setSmarty_template('site'); System_Settings::setSmarty_cached_dir('cache'); System_Settings::setSmarty_compile_dir('compile'); System_Settings::setSmarty_caching(true); System_Settings::setSmarty_compile_check(true); System_Settings::setSmarty_debugging(false); System_Settings::setSmarty_cache_lifetime(86400); // Название сайта. Для интерфейса адимнистрирования. $site_name = $_SERVER['SERVER_NAME']; // Мультиязычность. if (!defined('MULTILANG')) { define('MULTILANG', 1); } // Шаблон по умолчанию. $__template = 'site'; // Язык по умолчанию. $current_lang = $default_lang = 'ru';
/** * Получение информации о корневой странице * @param array $aStrings * @return array */ public function showBasePage($aStrings = array()) { $result = array(); // Алиас текущей страницы $alias = end($aStrings); if ($alias == $this->base->getLang()) { $data = $this->base->getRow('pages', 'alias', $alias); if (isset($data['id']) && (int) $data['id'] > 0) { System_Settings::setCurrentData('pages', $data['id']); } return $data; } else { $result = $this->base->getRows('pages', 'alias', $alias); } $data = array(); // выбираем нужную страницу $tmp = $aStrings; array_shift($tmp); $link = '/' . implode('/', $tmp) . '/'; $link1 = '/' . implode('/', $tmp) . '.html'; for ($i = 0; $i < count($result); $i++) { if ($result[$i]['link'] == $link || $result[$i]['link'] == $link1) { $data = $result[$i]; } } if (empty($data)) { array_pop($aStrings); $data = $this->showBasePage($aStrings); } if (isset($data['id']) && (int) $data['id'] > 0) { System_Settings::setCurrentData('pages', $data['id']); } return $data; }
exit; } } else { // проверяем содержит ли страница компонент $component = components($page['text'], $page, $page['link'], $page_num); $page['text'] = $component['content']; } // Получение информации о странице. if (!is_array($page) or empty($page)) { // Страница не найдена. Попытка ввода url вручную или поломались ключи у дерева (врятли). require_once DOC . 'error404.php'; exit; } // получение родительской страницы $parents = $pages->enumPath('pages', $page['id']); $parent = $page; for ($i = 0; $i < count($parents); $i++) { if ($parents[$i]['tree_level'] == 1) { $parent = $parents[$i]; } } /* Шаблон страницы. */ $tpl = !isset($page['template']) || empty($page['template']) ? 'index' : is_file(System_Settings::getSmarty_template() . $page['template'] . '.tpl') ? $page['template'] : 'index2'; // Выгрузка в AJAX JSON if ((int) Text::get_get('AjaxShowPage') == 1) { $pages->getJsonWrap($page); } // Выгрузка переменных в шаблон $smarty->assign(array('page' => $page, 'parent' => $parent, 'breadcrumbs' => $bread_crumbs, 'page_title' => $pages->getPageTitle($page['head_title']))); // Шаблон для вывода статических страниц self::setTpl($tpl);
private function showItemById($id) { $data = $this->object->getRow('news_items', $id); $page_title = $data['head_title'] != '' ? $data['head_title'] : $data['name']; $this->setPageTitle($page_title); $this->setH1($data['name']); $this->setMetaDescription($data['meta_description']); $this->setMetaKeywords($data['meta_keywords']); System_Settings::setCurrentData('news_items', $data['id']); $this->tpl = 'item'; $this->smarty->assign('data', $data); }
<?php // Запрет на обращение к файлу. if (realpath($_SERVER['SCRIPT_FILENAME']) == realpath(__FILE__)) { header('Location: /admin/'); exit; } /** * Описание компонента. */ $__cname = 'Колонка редактора'; $__cdesc = '<strong>Дополнительные параметры:</strong><br /> id - Идентификатор записи (число).<br /> limit - Количество записей на страницу (число). По умолчанию равно ' . System_Settings::getLimit() . '.<br /> tpl - Название подключаемого шаблона. По умолчанию "template"<br /> ';
<?php // Запрет на обращение к файлу. if (realpath($_SERVER['SCRIPT_FILENAME']) == realpath(__FILE__)) { header('Location: /admin/'); exit; } /** * Описание компонента. */ $__cname = 'Галерея'; $__cdesc = '<strong>Дополнительные параметры:</strong><br /> gid - Идентификатор группы альбомов (число). По умолчанию записи выбираются без учета групп.<br /> albom_limit - Количество альбомов на страницу (число). По умолчанию равно ' . System_Settings::getLimit() . '.<br /> image_limit - Количество изображений на страницу (число). По умолчанию равно ' . System_Settings::getLimit() . '.<br /> ';
/** * Получение карточки товара * @param string $alias * @param string $image_size * @param string $icon_size * @param string $set_image * @return array|bool */ public function getProduct($alias, $image_size = '460x460', $icon_size = '64x64', $set_image = '160x160') { $query = 'CALL get_catalog_product(:alias)'; $data = PdoWrap::selectRow($query, array(':alias' => $alias)); if (!isset($data['id']) || $data['id'] == 0 || $data['group_link'] . $data['alias'] . '.html' != $_SERVER['REQUEST_URI']) { return false; } System_Settings::setCurrentData('catalog_items', $data['id']); // Получение title, Meta description, Meta keywords если они отсутствуют у элемента if ($data['head_title'] == '' || $data['meta_keywords'] == '' || $data['meta_keywords'] == '') { // Получение всех родительских групп товара $base = new TreeTable(DOC, $this->base->getLang(), PREF); $parent_groups = $base->enumPath('catalog_groups', $data['group_id']); $j = 0; for ($i = count($parent_groups) - 1; $i >= 0; $i--) { if ($j == 0) { $data['type'] = $parent_groups[$i]['name']; } if ($j == 1 && $parent_groups[$i]['tree_level'] > 1) { $data['brand'] = $parent_groups[$i]['name']; } $j++; } if ($data['head_title'] == '') { $head_title_template = ''; for ($i = count($parent_groups) - 1; $i >= 0; $i--) { if ($parent_groups[$i]['meta_title_template'] != '') { $head_title_template = $parent_groups[$i]['meta_title_template']; break; } } if ($head_title_template != '') { foreach ($data as $key => $value) { $head_title_template = str_replace('{' . $key . '}', $value, $head_title_template); } $data['head_title'] = preg_replace('/{(.+?)}/i', '', $head_title_template); } } if ($data['meta_description'] == '') { $meta_description_template = ''; for ($i = count($parent_groups) - 1; $i >= 0; $i--) { if ($parent_groups[$i]['meta_description_template'] != '') { $meta_description_template = $parent_groups[$i]['meta_description_template']; break; } } if ($meta_description_template != '') { foreach ($data as $key => $value) { $meta_description_template = str_replace('{' . $key . '}', $value, $meta_description_template); } $data['meta_description'] = preg_replace('/{(.+?)}/i', '', $meta_description_template); } } if ($data['meta_keywords'] == '') { $meta_keywords_template = ''; for ($i = count($parent_groups) - 1; $i >= 0; $i--) { if ($parent_groups[$i]['meta_keywords_template'] != '') { $meta_keywords_template = $parent_groups[$i]['meta_keywords_template']; break; } } if ($meta_keywords_template != '') { foreach ($data as $key => $value) { $meta_keywords_template = str_replace('{' . $key . '}', $value, $meta_keywords_template); } $data['meta_keywords'] = preg_replace('/{(.+?)}/i', '', $meta_keywords_template); } } } /* // Получение списка групп зарактеристи $query = 'CALL get_catalog_features_groups(:item_id)'; $data['features_groups'] = PdoWrap::select($query, array(':item_id' => $data['id'])); // Получение списка характеристик $data['features'] = $this->getFeaturesForItemForCard($data['id'], $data['group_id']); */ // Получение изображений $data['images'] = $this->__getImages($data['id']); $images_count = count($data['images']); for ($i = 0; $i < $images_count; $i++) { Files::setImageSize($image_size); $data['images'][$i]['image_link'] = Files::getImageLink($data['images'][$i]['image']); Files::setImageSize($icon_size); $data['images'][$i]['icon_link'] = Files::getImageLink($data['images'][$i]['image']); Files::setImageSize($set_image); $data['images'][$i]['set_link'] = Files::getImageLink($data['images'][$i]['image']); } /* // Получение компллектов $data['set'] = $this->getRelationList(PREF.'catalog_set',PREF.'catalog_items', 'item_id1', 'item_id2', $data['id']); */ // Получение данных каталога $data['other_products'] = $this->getItems($data['group_id'], 'date_add', 'DESC', 12, 1); /* // Получение комплектаций $data['complects'] = parent::getRelationListWithDefault(PREF.'catalog_complect_relations', PREF.'catalog_complect', 'item_id', 'complect_id', $data['id']); // Получение списка характеристик для комплекта for($i=0;$i<count($data['complects']);$i++) { $data['complects'][$i]['features'] = parent::getRelationList(PREF.'catalog_complect_values', PREF.'catalog_features', 'complect_id', 'feature_id', $data['complects'][$i]['id']); } */ return $data; }
$smarty->assign('__lang', $__lang); $smarty->assign('user_id', $user_id); $content = $smarty->fetch($tpl); $data = array('head' => isset($__lang['add_' . $form]) ? $__lang['add_' . $form] : '', 'content' => $content, 'success' => isset($__lang['add_' . $form . '_success']) ? $__lang['add_' . $form . '_success'] : '', 'error' => isset($__lang['add_' . $form . '_error']) ? $__lang['add_' . $form . '_error'] : ''); echo json_encode($data); } exit; } // Определение мобильного устройства require_once DOC . 'system/php-to-detect-mobile-phones.php'; $mobile = detect_mobile_device() ? 1 : 0; if (isset($aStrings[1]) && $aStrings[1] == 'mebel') { $smarty->assign(array('body_class' => 'poliform_black')); } // Выгрузка переменных в шаблон $smarty->assign(array('template' => System_Settings::getSmarty_templateName(), 'this_url' => $this_url, 'langs' => $langs, 'current_lang' => $current_lang, 'default_lang' => $default_lang, '__lang' => $router::getLocalize(), 'mobile' => $mobile, 'options' => $options, 'user' => isset($_SESSION['siteuser']) ? $_SESSION['siteuser'] : array())); // Вывод страницы с логином для незарегистрированных пользователей /* if (!isset($_SESSION['siteuser']['id'])) { $router::setTpl('login'); $smarty->display($router::getTpl()); exit; }*/ // Вывод шаблона $smarty->displayAndCach($router::getTpl()); } else { $smarty->displayCached(); } } catch (Exception $exc) { echo '<pre>Ресурс временно недоступен.</pre>'; echo '<pre>';
$page['meta_description'] = $group['meta_description']; $page['meta_keywords'] = $group['meta_keywords']; $group_id = $group['id']; $component = components($page['text'], $page, $page['link'], $page_num); $page['text'] = $component['content']; // Данные для автоподгрузки if (isset($_GET['ajaxAutoload']) && (int) $_GET['ajaxAutoload'] == 1) { $page_num = Text::get_get('page'); $data = $object->getItems('', 2, $sort, $sort_type, System_Settings::getLimit(), $page_num); $smarty->assign(array('data' => $data, '__lang' => $object->getLocalization())); $result = $smarty->fetch(DOC . 'templates/site/matches/catalog_items_block.tpl'); echo $result; exit; } // Получение данных каталога $data = $object->getItems($group['id'], $sort, $sort_type, System_Settings::getLimit(), $page_num); // Получение хлебных крошек // $bread_crumbs = $object->getFrontEndBreadCrumbs($table); $bread_crumbs = $object->getFrontEndBreadCrumbs('catalog_groups', $group['id']); if (isset($group['show_children']) && $group['show_children'] == 1) { // Вывод для группы немецкие кухни $children_groups = $object->getGroupChildren('catalog_groups', $group['id']); } $parent = $group; } } } else { // переопределяем данные $page['h1'] = $page['h1'] . ' ' . $object->getLocalization(end($module_aString)); $group_id = 0; $data = array();