Вот index.php - вроде по скриптам других каталогов туда код вставляли.
PHP код:
<?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();
// собираем страницу
$tpl->parseBlock('_INIT', array(
'PAGE_TITLE' => $PAGE_TITLE,
'PAGE_DESCRIPTION' => $PAGE_DESCRIPTION,
'PAGE_KEYWORDS' => $PAGE_KEYWORDS,
'BASE_HREF' => str_replace('index.php','','http://'.$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'])));
// и отображаем
$tpl->show();
mysql_close($db);
//echo getmicrotime()-$start_time;
?>
|