languages); if (get_env('lang')=='en') set_env('linkstart','/en'); $fullquery = get_env('fullquery'); if (strstr($fullquery,'.jpg') || strstr($fullquery,'.gif') || strstr($fullquery,'.js')) die(); # random для фонда set_env('random',rand(1,30)); set_env('randomp',rand(1,3)); set_env('random_left',rand(1,60)); set_env('random_top',rand(1,60)); # date set_env('cur_year',date("Y")); set_env('cur_month',date("m")); set_env('cur_day',date("d")); # Search virtual pages set_env('rightlink',get_env('link')); if ($config->virtual_pages) for ($i = 0;$vpage = $config->virtual_pages->page[$i];$i++) if (get_env('p0')==$vpage) {set_env('link','/'.$vpage.'/'); set_env('cache_param','virtual');} # Transform & put into cache pre_caching files. if ($tmp = $config->pre_caching) for ($i = 0;$xml = $tmp->file[$i];$i++) if ($cache->exp(DATA_PATH.$xml.'.xml',XSL_PATH.$xml.'_to_cache.xsl')) { $$xml = xslt(DOMDocument::load(ROOT_PATH.$xml.'.xml'),XSL_PATH.$xml.'_to_cache.xsl'); # sitemap -> sitemap_to_cache $cache->save(DATA_PATH.$xml.'.xml',$$xml); } else $$xml = $cache->load(DATA_PATH.$xml.'.xml'); # Find page attributes in sitemap (cached ver.) and put into env $s = simplexml_load_string($sitemap); node2env($s); $page = $s->xpath('//page[@link="'.get_env('link').'"]'); if (!$page) { set_env('link','/notfound/'); $page = $s->xpath('//page[@link="'.get_env('link').'"]'); header("HTTP/1.0 404 Not Found"); } node2env($page[0]); set_env('filebase',filebase(get_env('link'))); $doc = new DOMDocument('1.0', 'Windows-1251'); $injection = ''; if (file_exists(ROOT_PATH.get_env('filebase').'.php')) { ob_start(); include(ROOT_PATH.get_env('filebase').'.php'); $tmp = trim(ob_get_contents()); #hack для корзины if (get_env('link')=='/cart/') $injection = ''; inject($tmp,$injection); $doc->loadXML($tmp); ob_end_clean(); } elseif (get_env('module')) { $module_name = get_env('module'); ob_start(); include_module($module_name); eval('$module = new '.$module_name.'();'); $tmp = trim(ob_get_contents()); inject($tmp,''); $doc->loadXML($tmp); ob_end_clean(); if (get_env('module') && file_exists(ROOT_PATH.get_env('module_path').'view.xsl')) { $xsl = get_env('module_path').'view.xsl'; $r = xslt($doc,$xsl,'XML',$env); inject($r,$injection); $doc->loadXML($r); } } elseif (file_exists(ROOT_PATH.get_env('filebase').'.xml')) { $tmp = file_get_contents(ROOT_PATH.get_env('filebase').'.xml'); inject($tmp,$injection); $doc->loadXML($tmp); } else { // proccess empty file $tmp = ''; inject($tmp,$injection); $doc->loadXML($tmp); } if (file_exists(ROOT_PATH.get_env('filebase').'.xsl')) { $xsl = get_env('filebase').'.xsl'; $r = xslt($doc,$xsl,'XML',$env); $doc->loadXML($r); } if (get_env('data_template')) { $xsl = get_env('data_template'); $r = xslt($doc,$xsl,'XML',$env); $doc->loadXML($r); } $doc->encoding='Windows-1251'; $xsl = get_env('template'); if ($cache->exp(Array(get_env('fullquery'),$xsl),get_env('cache_param')) || get_env('result')) { $r = xslt($doc,$xsl,'XML',$env); if (get_env('mode')!='searchindex' && !get_env('result')) $cache->save($env['fullquery'],$r); } else $r = $cache->load(get_env('fullquery')); no_selflinks($r); if (get_env('header')) header(get_env('header')); if (get_env('mode')!='searchindex' && get_env('lang')!='en') { $typo = new typo(); $r = $typo->TxtPrepare($typo->TxtExp($r)); } echo $r; ?>