* @package PPS * @version 5.0 */ $headers = ""; //Установка локали setlocale(LC_ALL, 'ru_RU.UTF-8'); //Время генерации страницы list($msec,$sec)=explode(chr(32),microtime()); $startParse=$sec+$msec; //Часть пути к системе управления $PPSPATH = "control"; //Подключение классов с методами require_once($PPSPATH."/config/config_functions.php"); //Установка соединения со Smarty $smarty->smartySettings('/inc/templates/'); $mtime = explode(" ",microtime()); $idate = $mtime[1] + $mtime[0]; $errorcode = ""; /* if (!isset($_SESSION['idate'])) { $_SESSION['idate'] = $idate; } else { $idatediff =(float)($idate - $_SESSION['idate']); $pps->debug($idatediff); if ($idatediff<=0.3 && !isset($_SESSION['ErrPageHide'])) { $templateError = "DefaultError.tpl"; $errortext = "

Не так быстро, подождите немножко...

Обновите страницу через некоторое время, спасибо.

"; $errorcode = "Ой;("; $smarty->assign('errorurl','http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); $smarty->assign('errortext',$errortext); $smarty->assign('errorcode',$errorcode); fwrite (fopen(dir_root."/blacklist.txt","a+"),$_SERVER['REMOTE_ADDR']."\r\n"); } if (isset($_SESSION['ErrPageHide'])) unset($_SESSION['ErrPageHide']); $_SESSION['idate'] = $idate; } */ if ($errorcode=="") { //Url страницы $navigateUrl = (empty($_GET['ppsUrl']))?'/':addslashes($_GET['ppsUrl']).'/'; $navigateUrl=str_replace('//','/',$navigateUrl); $langLink='/'.substr($navigateUrl,1,strpos($navigateUrl,'/',1)); $langData = $pps->dirLangByLink($langLink); $smarty->assign('langData',$langData); if ($langData['langDefault']!=1) { $navigateUrl = substr($navigateUrl,strlen($langLink)-1); } $smarty->assign('navigateUrl',substr(str_replace('.html/','.html',$navigateUrl),1)); $ppsInterface=array(); $interfaceLangs = ($langData['langDefault']==1) ? $langData['interface'] : $langData['interface'].",".$langData['interfaceDefault']; foreach ($pps->query("select Name,".$interfaceLangs." from ".config_ppslangs." where Category='front' order by Name","Name") as $k=>$v) { $ppsInterface[$k]=($v[$langData['interface']]!='')?$v[$langData['interface']]:$v[$langData['interfaceDefault']]; } $smarty->assign('ppsInterface',$ppsInterface); //Url модуля $moduleUrl=''; if (strrpos($navigateUrl,'.html/')!==false) { $moduleUrl = preg_replace("/(.*)\/([\da-zA-Z\_\-\.]+)(\.html\/)/","$2",$navigateUrl); $navigateUrl = preg_replace("/(.*)\/([\d\w\_\-\.]+)(\.html\/)/","$1",$navigateUrl)."/"; } // $pps->debug($navigateUrl); // $pps->debug($_GET); // exit(); //Id раздела $navigateId = $pps->query("select Id,LanguageId from ".config_navigate." where Url ='".$navigateUrl."' and TableId='0' limit 1","auto"); $navigateId = $navigateId[0]['Id']; $pathurl = ($langData['langId']==1) ? "" : "/en"; //Выход из программы if (empty($navigateId)) $pps->error404(); //Содержание раздела $content = $pps->showTableRow(config_navigate,$navigateId); //Языковая версия раздела if ($langData['langDefault']==0) { $langContentId = $pps->dirLangById(config_navigate,$langData['langId'],$navigateId); if (!empty($langContentId)) { $langContent = $pps->showTableRow(config_navigate,$langContentId); unset($langContent['Data']['Id']); unset($langContent['Data']['ParentDir']); unset($langContent['Data']['Url']); unset($langContent['Data']['Template']); unset($langContent['Data']['Module']); if (empty($langContent['Data']['Files'])) unset($langContent['Data']['Files']); if (empty($langContent['Data']['Images'])) unset($langContent['Data']['Images']); unset($langContent['Data']['Extension']); unset($langContent['Data']['Priority']); unset($langContent['Data']['DisplayOff']); unset($langContent['Selected']); foreach ($langContent['Data'] as $key=>$value) { if (empty($value)) unset($langContent['Data'][$key]); } $content['Data'] = array_merge ($content['Data'], $langContent['Data']); } } //Языковые версии $smarty->assign('languages',$pps->query("select * from ".config_navilangs." where DisplayOff='0' order by Priority","auto")); //Группы навигации $naviGroups=$pps->dirNaviGroups($langData); $smarty->assign('navi',$naviGroups); //Путь до раздела (Учесть дисплей оф и разобраться со Стат) $dirWay=$pps->dirWay($content['Data']['Id'],$langData); $smarty->assign('dirWay',$dirWay["Data"]); $smarty->assign('dirWayStat',$dirWay['Stat']); //Родительские разделы $dirParent = array(); if ($content['Data']['ParentDir']!=1 && $content['Data']['ParentDir']!=0) { $dirParent = $pps->dirChild($content['Data']['ParentDir'],$langData); $smarty->assign('dirParent',$dirParent); } //Подчиненные разделы $dirChild = array(); if ($content['Data']['Id']!=1) { $dirChild = $pps->dirChild($content['Data']['Id'],$langData); $smarty->assign('dirChild',$dirChild); } //Дополнительная логика представления данных require_once($PPSPATH."/add.php"); //Расширение if ($content['Data']['Extension']!=0) { $extension = $pps->query("select FileExt,FileExtTemplate from ".config_extensions." where id='".$content['Data']['Extension']."' limit 1","auto"); require_once(dir_root.'/inc/templates/extensions/'.$extension[0]['FileExt']); $extensionTemplate=$smarty->fetch('extensions/'.$extension[0]['FileExtTemplate']); $smarty->assign('extension',$extensionTemplate); } //Определение шаблона наследственным образом $templateId=0; for ($i=$dirWay['Stat']['Inner'];$i>=0;$i--) { $templateId=$dirWay['Data'][$i]['Template']; if ($templateId!=0) break; } //Содержание раздела $smarty->assign('content',$content['Data']); $template = $pps->query("select FileTemplate,FileCaptures from ".config_templates." where id='".$templateId."' limit 1","auto"); //Id текущего языка, если пусто, то мы в текущем языке $smarty->assign('langId',$langData['langId']); $smarty->assign('langLink',$langData['link']); //Текущие свойства $current = array(); //Дата и время $current['DateY']=date("Y"); $current['DateM']=date("m"); $current['DateD']=date("d"); $current['DateTime']=date("H:i:s"); //Время генерации страницы list($msec,$sec)=explode(chr(32),microtime()); $current['ParseTime']=round(($sec+$msec)-$startParse,4); $smarty->assign('current',$current); $smarty->assign('headers',$headers); } //Шаблон с компонентами (captures) if (!empty($template[0]['FileCaptures'])) { //$smarty->display($template[0]['FileCaptures'],null,'front'); } //Шаблон вывода $templateOut = ($templateError) ? $templateError : $template[0]['FileTemplate']; //$templateOut = (!is_numeric($_SESSION['user']['Id'])) ? "Blank.tpl" : $templateOut; $smarty->display($templateOut,null,'front'); //Сбор статистики $pps->getReferer(); ?>