>[оверквотинг удален]
>>.....
>>
>>
>> * Start resolver (controller)
>> */
>>require('resolvers/'.$resolver.'.php');
>>
>
>Это попытка реализовать на PHP то, что делает Апач?
>*ROFL* я туга вообще догоняю что выдает index.php. И инфу не могу найти по этим резолверам.
Но на сколько понимаю, скрипт обрабатывает запрос, выдерает из него инфу, и на основе этого подгружает другой скрипт.
Вообщем вот полный работающий index.php :
<?php
# - cp1251
error_reporting(E_ALL);
require("{$_SERVER['DOCUMENT_ROOT']}/includes/init-user.php");
$PageTypes = $CMS->getTypes(true, true);
/**
* Parse relative URL and find name of resolver (controller) script
*/
$resolver = '';
$request = '/'.$CGI->get('cpreq');
$request_part = $request;
if ($request == '/') {
$Page = &$RootPage;
$resolver = 'page';
}
else {
do {
$Page = $SITE->getPage($request_part);
if (!$Page) {
$request_part = preg_replace('/(.*)\/([^\/])+\/$/', '/\\1/', $request_part);
$request_part = $SITE->formatUrl( $request_part );
}
else {
$resolver = ($PageTypes[$Page->StructTypeId]['TableName'])?$PageTypes[$Page->StructTypeId]['TableName']:'page';
}
} while ($resolver=='' && $request_part!='/');
}
if (!$resolver) {
require_once('error404.php');
exit;
}
/* Timer */
$Timer->checkPoint('Resolver found');
$tmp = $Page;
$Visual = false;
while(!$Visual) {
if (!$tmp->Visual && $tmp->Url!='/') {
$tmp = $SITE->getParent($tmp->Id);
}
else {
$Visual = $tmp->Visual;
}
if ($tmp->Url=='/' && !$tmp->Visual) {
break;
}
}
/**
* Set nav. panels parameters
*/
$NAVIG->REQUEST_URI = $request;
foreach ($cp_panels as $panel=>$type) {
$NAVIG_PANELS[$panel] = $NAVIG->getNavBar($panel, 0);
}
//
$SubNav = array();
if ($SITE->getLevel($Page->Id)>1) {
foreach ($SITE->getChildPages($Page->Id) as $Child) {
$SubNav[] = array('Name'=>$Child->MenuName, 'Url'=>$Child->Url);
}
}
/* Timer */
$Timer->checkPoint('Navigation prepared');
session_start();
/**
* Start resolver (controller)
*/
require('resolvers/'.$resolver.'.php');
// open template
if ($request == '/') {
require('templates/start-page.tpl.php');
} else {
require('templates/main-page.tpl.php');
}
?>