28.08.2007, 21:21 | #11 |
Специалист
|
<?php
ini_set("display_errors",1); ini_set("max_execution_time",90); error_reporting(E_ALL); // ini_set("session.use_trans_sid",on); // ini_set('session.use_cookies', true); // ini_set('session.use_only_cookies', true); ini_set('url_rewriter.tags', ''); error_reporting(E_ALL); setlocale(LC_ALL,"ru_RU.CP1251"); // вспомогательные файлы require("./config.php"); // настройки доступа к БД require("./modules.php"); // файл описания модулей require("./settings.php"); // настройки сайта require("./tables.php"); // таблицы require("./functions.php"); // глобальные функции //$start_time = getmicrotime(); // подключаем классы require("./classes/class.template.php"); require("./classes/class.item.php"); require("./classes/class.list.php"); require("./classes/class.tree.php"); require("./classes/class.pages.php"); require("./classes/class.sysmess.php"); require("./classes/class.mailer.php"); require("./classes/class.section.php"); require("./classes/class.meta.php"); require("./classes/class.site.php"); require("./classes/class.news.php"); require("./classes/class.banner.php"); require("./classes/class.settings.php"); require("./classes/class.settings_groups.php"); require("./classes/class.faq.php"); require("./classes/class.link.php"); require("./classes/class.counter.php"); require("./classes/class.checklink.php"); require("./classes/class.book.php"); // текущая страница $page = getVar('page','default'); session_start(); $GLOBALS['systemMess'] = new cSysMessStack(); // соединение с MySQL сервером if (!($db = mysql_connect($db_host, $db_username, $db_password))) die(ERR_DB_NOT_CONNECTED); //Устанавливаем кодировку БД mysql_query("SET NAMES cp1251"); mysql_query("SET COLLATION_CONNECTION=CP1251_GENERAL_CI"); // выбор нужной БД if (!mysql_select_db($db_dbname, $db)) die(ERR_DB_NOT_SELECTED); //загружаем настройки load_sets(); $GLOBALS['curr_node_id']=getInt('node_id',TREE_ROOT_NODE_ID); //создаем дерево $GLOBALS['tree'] = new cOrderedTree(); $GLOBALS['tree']->load(); //Возвращает id первого узла в массиве имен $urls. Каждый последующий элемент - родитель предыдущего function getNodeId($urls) { if (count($urls)==0) return TREE_ROOT_NODE_ID; $url=reset($urls); //Смотрим: а есть ли вообще url_name? Может быть, явно указан id? if (preg_match('/^rubric([0-9]+)$/i',$url,$regs)) { $id=intval($regs[1]); $sql="SELECT id FROM `".TABLE_SHOP_NODES."` WHERE id='".$id."'"; $res=doSQL($sql,__LINE__,__FILE__); if (mysql_num_rows($res)) return $id; return TREE_ROOT_NODE_ID; } //Пытаемся получить id прямой выборкой (с надеждой, что таких имен больше нет) $sql = "SELECT id FROM `".TABLE_SHOP_NODES."` WHERE `url_name`='".$url."'"; $res = doSQL($sql,__LINE__,__FILE__); //Если ничего не найдено, то такого узла нет if (mysql_num_rows($res)<1) return TREE_ROOT_NODE_ID; //Если найден ровно один узел, то он - искомый if (mysql_num_rows($res)==1) { $r=mysql_fetch_array($res); return $r['id']; } //Если найдено более одного узла, то нужно учитывать еще и родительские узлы //Убираем первый элемент массива и пытаемся искать $new_urls=$urls; foreach ($new_urls as $key=>$url) { unset($new_urls[$key]); break; } $parent_id=getNodeId($new_urls); $sql = "SELECT id FROM `".TABLE_SHOP_NODES."` WHERE `url_name`='".$url."' AND parent_id='".$parent_id."'"; $res = doSQL($sql,__LINE__,__FILE__); $r=mysql_fetch_array($res); return $r['id']; } //url_name $curr_url_name = getVar('url_name'); $curr_node_id=TREE_ROOT_NODE_ID; if (!empty($curr_url_name)) { //получаем строку запроса $req = $_SERVER['REQUEST_URI']; //Отрезаем имя подпапки $a=basename(get_set('site_host')); $a='/'.$a.'/'; if (substr($req,0,strlen($a))==$a) $req=substr($req,strlen($a)); $req=ereg_replace('page([0-9]+)[/]?$','',$req); $req=ereg_replace('site_([0-9]+)\.html$','',$req); //echo "Строка запроса $req<br>"; //Получаем все звенья пути к рубрике $urls=explode("/",$req); foreach ($urls as $key=>$url) if ($url=='') unset($urls[$key]); $urls=array_reverse($urls); $curr_node_id=getNodeId($urls); } // подключаем страницу require("./pages/page.".$PAGES[$page].'.php'); // инициализация шаблона $tpl = new cTemplate('./templates'); // подключение главного шаблона страницы $tpl->loadTemplateFile($PAGE_TEMPLATE); // подключаем нужные модули и инициализируем их foreach ($PAGE_MODULES as $module) { require_once("modules/mod.".$MODULES[$module][0].".php"); $OBJECTS_MOD[$module] = new $MODULES[$module][1](); $OBJECTS_MOD[$module]->Init(); } // запускаем foreach ($PAGE_MODULES as $module) $OBJECTS_MOD[$module]->Run(); define('_SAPE_USER', '!!!'); require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); $sape = new SAPE_client(); $PAGE_LINKS = $sape->return_links(); // собираем страницу $tpl->parseBlock('_INIT', array( 'PAGE_TITLE' => $PAGE_TITLE, 'PAGE_DESCRIPTION' => $PAGE_DESCRIPTION, 'PAGE_KEYWORDS' => $PAGE_KEYWORDS, 'PAGE_LINKS' => $PAGE_LINKS, 'BASE_HREF' => str_replace('index.php','','http://'.$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']))); // и отображаем $tpl->show(); mysql_close($db); //echo getmicrotime()-$start_time; ?> |
28.08.2007, 21:31 | #12 |
Специалист
|
Я думаю, должно быть как-то так.
Не забудьте новый макрос разместить в теле шаблонов. Например, в общем хэдере. Ну и конечно подставить свой Id партнера. Изменения - в конце кода, надеюсь сами найдете и поймете. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Установка кода на SMF | DkWix | Установка кода на различные движки | 60 | 28.05.2016 15:57 |
Установка кода | skat | Вопросы от новичков | 3 | 08.07.2010 19:04 |
Установка кода на Elg | partner | Установка кода на различные движки | 0 | 10.06.2008 14:49 |
Установка кода на CMS 2++ | stranger | Установка кода на различные движки | 1 | 12.02.2008 19:32 |
Установка кода на IPB 2.X.X | V!rus | Ошибки при работе с системой | 4 | 29.08.2007 20:38 |
Часовой пояс GMT +3, время: 02:40.