function PageMaker($xmlfile, $xslfile) { global $options, $id, $df, $cacheLifeTime; # Инициализация системы кэширования // Подключаем класс вывода PEAR::Cache_Lite require_once 'cache/output.php'; // Создаем объект класса Cache_Lite_Output $cache = new Cache_Lite_Output($options); // Устанавливаем время жизни кэша для данной части $cache->setLifeTime($cacheLifeTime[$id]); if (!$cache->start($id)) { # Передаем путь к запрошенному документу на вход модуля анализа и преобразования XML+XSLT, # формирующего на выходе запрошенный документ в XHTML-формате. require_once "inc/nstoxhtml.inc"; require_once "inc/setformat.inc"; require_once "inc/nocache.inc"; $outputformat = 'xml'; //if ($xslfile !== "xsl/rbcrss.xsl") $xslfile = "xsl/layout.xsl"; $domxml = new DOMDocument(); $domxml->substituteEntities = true; $domxml->load($xmlfile); @fclose($df); # Снимаем блокировку с файла * $domxsl = new DOMDocument(); $domxsl->load($xslfile); setOutputFormat($domxsl, $outputformat); $xsl = new xsltProcessor(); $xsl->importStylesheet($domxsl); $outdom = $xsl->transformtoDOC($domxml); $outdom = nstoxhtml($outdom); $outdom->formatoutput = true; nocache(); $page = $outdom->saveXML(); echo TrimStr($page); $cache->end(); } }
makeDirs($szMapCacheDir); } /* get the various request parameters * also need to make sure inputs are clean, especially those used to * build paths and filenames */ $top = isset($_REQUEST['t']) ? intval($_REQUEST['t']) : 0; $left = isset($_REQUEST['l']) ? intval($_REQUEST['l']) : 0; $scale = isset($_REQUEST['s']) ? $_REQUEST['s'] : $anScales[0]; $bForce = isset($_REQUEST['force']) ? true : false; $groups = isset($_REQUEST['g']) ? $_REQUEST['g'] : ""; $layers = isset($_REQUEST['layers']) ? $_REQUEST['layers'] : ""; // dynamic imageformat ---------------------------------------------- //use the function in config.php to set the output format if (isset($_REQUEST['i'])) { setOutputFormat($_REQUEST['i']); } //---------------------------------------------------------------- /* tileid=t#####l#### can be used instead of t+l parameters. Useful in * regenerating the cache for instance. */ if (isset($_REQUEST['tileid']) && preg_match("/t(-?\\d+)l(-?\\d+)/", $_REQUEST['tileid'], $aMatch)) { $top = intval($aMatch[1]); $left = intval($aMatch[2]); } /* Calculate the metatile's top-left corner coordinates. * Include the $metaBuffer around the metatile to account for various * rendering issues happening around the edge of a map */ $metaLeft = floor($left / ($tileWidth * $metaWidth)) * $tileWidth * $metaWidth; $metaTop = floor($top / ($tileHeight * $metaHeight)) * $tileHeight * $metaHeight;