'; #var_dump($_SERVER); #echo ''; $starttime = microtime(); clearstatcache(); if (!isset($_SERVER['REQUEST_URI']) && isset($_SERVER['QUERY_STRING'])) { $_SERVER['REQUEST_URI'] = $_SERVER['PHP_SELF'] . '?' . $_SERVER['QUERY_STRING']; } if (!file_exists(CONFIG_FILE_LOCATION) || filesize(CONFIG_FILE_LOCATION) < 800) { require_once($dirname.'/lib/misc.functions.php'); if (FALSE == is_file($dirname.'/install/index.php')) { die ('There is no config.php file or install/index.php please correct one these errors!'); } else { redirect('install/'); } } else if (file_exists(TMP_CACHE_LOCATION.'/SITEDOWN')) { echo "Maintenance

Site down for maintenance.

"; exit; } if (!is_writable(TMP_TEMPLATES_C_LOCATION) || !is_writable(TMP_CACHE_LOCATION)) { echo 'Error'; echo '

The following directories must be writable by the web server:
'; echo 'tmp/cache
'; echo 'tmp/templates_c

'; echo '

Please correct by executing:
chmod 777 tmp/cache
chmod 777 tmp/templates_c

or the equivilent for your platform before continuing.

'; echo ''; exit; } require_once($dirname.'/include.php'); // optionally enable output compression (as long as debug mode isn't on) if( isset($config['output_compression']) && ($config['output_compression']) && $config['debug'] != true ) { @ob_start('ob_gzhandler'); } else { @ob_start(); } $params = array_merge($_GET, $_POST); $smarty = &$gCms->smarty; $smarty->params = $params; $page = ''; if (isset($params['mact'])) { $ary = explode(',', cms_htmlentities($params['mact']), 4); $smarty->id = (isset($ary[1])?$ary[1]:''); } else { $smarty->id = (isset($params['id'])?intval($params['id']):''); } if (isset($smarty->id) && isset($params[$smarty->id . 'returnid'])) { $page = $params[$smarty->id . 'returnid']; } else if (isset($config["query_var"]) && $config["query_var"] != '' && isset($_GET[$config["query_var"]])) { $page = $_GET[$config["query_var"]]; } else { $page = cms_calculate_url(); } // strip off GET params. if( ($tmp = strpos($page,'?')) !== FALSE ) { $page = substr($page,0,$tmp); } // strip off page extension if ($config['page_extension'] != '' && endswith($page, $config['page_extension'])) { $page = substr($page, 0, strlen($page) - strlen($config['page_extension'])); } //See if our page matches any predefined routes $page = rtrim($page, '/'); $matched = false; if (strpos($page, '/') !== FALSE) { //Start MLE if(isset($hls)) { $page0 = substr($page, 0, strpos($page,'/')); if(in_array($page0, array_keys($hls))) $page = substr($page, strpos($page,'/')); } //End MLE $routes =& $gCms->variables['routes']; foreach ($routes as $route) { $matches = array(); if (preg_match($route->regex, $page, $matches)) { //Now setup some assumptions if (!isset($matches['id'])) $matches['id'] = 'cntnt01'; if (!isset($matches['action'])) $matches['action'] = 'defaulturl'; if (!isset($matches['inline'])) $matches['inline'] = 0; if (!isset($matches['returnid'])) $matches['returnid'] = ''; #Look for default page if (!isset($matches['module'])) $matches['module'] = $route->module; //Get rid of numeric matches foreach ($matches as $key=>$val) { if (is_int($key)) { unset($matches[$key]); } else { if ($key != 'id') $_REQUEST[$matches['id'] . $key] = $val; } } //Now set any defaults that might not have been in the url if (isset($route->defaults) && count($route->defaults) > 0) { foreach ($route->defaults as $key=>$val) { $_REQUEST[$matches['id'] . $key] = $val; if (array_key_exists($key, $matches)) { $matches[$key] = $val; } } } //Get a decent returnid if ($matches['returnid'] == '') { global $gCms; $contentops =& $gCms->GetContentOperations(); $matches['returnid'] = $contentops->GetDefaultPageID(); } $_REQUEST['mact'] = $matches['module'] . ',' . $matches['id'] . ',' . $matches['action'] . ',' . $matches['inline']; $page = $matches['returnid']; $smarty->id = $matches['id']; $matched = true; break; } } } // strip from the last / forward if( ($pos = strrpos($page,'/')) !== FALSE && $matched == false ) { $page = substr($page, $pos + 1); } if ($page == '') { // assume default content global $gCms; $contentops =& $gCms->GetContentOperations(); $page =& $contentops->GetDefaultContent(); } else { $page = preg_replace('/\content_id = '__CMS_PREVIEW_PAGE__'; } if( !is_object($pageinfo) ) { $pageinfo = PageInfoOperations::LoadPageInfoByContentAlias($page); } // $page cannot be empty here if (isset($pageinfo) && $pageinfo !== FALSE) { $gCms->variables['pageinfo'] =& $pageinfo; if( isset($pageinfo->template_encoding) && $pageinfo->template_encoding != '' ) { set_encoding($pageinfo->template_encoding); } if($pageinfo->content_id > 0) { $manager =& $gCms->GetHierarchyManager(); $node =& $manager->sureGetNodeById($pageinfo->content_id); if(is_object($node)) { $contentobj =& $node->GetContent(true,true,false); if( is_object($contentobj) ) { $smarty->assign('content_obj',$contentobj); } } } $gCms->variables['content_id'] = $pageinfo->content_id; $gCms->variables['page'] = $page; $gCms->variables['page_id'] = $page; $gCms->variables['page_name'] = $pageinfo->content_alias; $gCms->variables['position'] = $pageinfo->content_hierarchy; global $gCms; $contentops =& $gCms->GetContentOperations(); $gCms->variables['friendly_position'] = $contentops->CreateFriendlyHierarchyPosition($pageinfo->content_hierarchy); $smarty->assign('content_id', $pageinfo->content_id); $smarty->assign('page', $page); $smarty->assign('page_id', $page); $smarty->assign('page_name', $pageinfo->content_alias); $smarty->assign('page_alias', $pageinfo->content_alias); $smarty->assign('position', $pageinfo->content_hierarchy); $smarty->assign('friendly_position', $gCms->variables['friendly_position']); } else if (get_site_preference('enablecustom404') == '' || get_site_preference('enablecustom404') == "0") { ErrorHandler404(); exit; } $html = ''; $cached = ''; if (isset($_GET["print"])) { //Start MLE ($smarty->is_cached('print:'.$page, '', $pageinfo->template_id.'-'.$hl)?$cached="":$cached="not "); $html = $smarty->fetch('print:'.$page, '', $pageinfo->template_id.'-'.$hl)."\n"; //End MLE } else { #If this is a case where a module doesn't want a template to be shown, just disable caching if ((isset($_REQUEST['showtemplate']) && $_REQUEST['showtemplate'] == 'false') || (isset($smarty->id) && $smarty->id != '' && isset($_REQUEST[$smarty->id.'showtemplate']) && $_REQUEST[$smarty->id.'showtemplate'] == 'false')) { //Start MLE $html = $smarty->fetch('template:notemplate', '', $hl)."\n"; //End MLE } else { $smarty->caching = false; $smarty->compile_check = true; //Start MLE ($smarty->is_cached('template:'.$pageinfo->template_id, '', $hl)?$cached="":$cached="not "); //End MLE // we allow backward compatibility (for a while) // for people that have hacks for setting page title // or header variables by capturing a modules output // to a smarty variable, and then displaying it later. if( isset($config['process_whole_template']) && $config['process_whole_template'] === false ) { //Start MLE $top = $smarty->fetch('tpl_top:'.$pageinfo->template_id, '', $hl); $body = $smarty->fetch('tpl_body:'.$pageinfo->template_id, '', $hl); $head = $smarty->fetch('tpl_head:'.$pageinfo->template_id, '', $hl); //End MLE $html = $top.$head.$body; } else { //Start MLE $html = $smarty->fetch('template:'.$pageinfo->template_id, '', $hl); //End MLE } } } #if ((get_site_preference('enablecustom404') == '' || get_site_preference('enablecustom404') == "0") && (!$config['debug'])) #{ # set_error_handler($old_error_handler); #} if (!$cached) { #Perform the content postrendernoncached callback reset($gCms->modules); while (list($key) = each($gCms->modules)) { $value =& $gCms->modules[$key]; if ($gCms->modules[$key]['installed'] == true && $gCms->modules[$key]['active'] == true) { $gCms->modules[$key]['object']->ContentPostRenderNonCached($html); } } //Events::SendEvent('Core', 'ContentPostRenderNonCached', array(&$html)); } #Perform the content postrender callback reset($gCms->modules); while (list($key) = each($gCms->modules)) { $value =& $gCms->modules[$key]; if ( isset($gCms->modules[$key]['installed']) && $gCms->modules[$key]['installed'] == true && $gCms->modules[$key]['active'] == true) { $gCms->modules[$key]['object']->ContentPostRender($html); } } Events::SendEvent('Core', 'ContentPostRender', array('content' => &$html)); header("Content-Type: " . $gCms->variables['content-type'] . "; charset=" . (isset($pageinfo->template_encoding) && $pageinfo->template_encoding != ''?$pageinfo->template_encoding:get_encoding())); echo $html; @ob_flush(); $endtime = microtime(); $db =& $gCms->GetDb(); $memory = (function_exists('memory_get_usage')?memory_get_usage():0); $memory = $memory - $orig_memory; $memory_peak = (function_exists('memory_get_peak_usage')?memory_get_peak_usage():0); if ( !is_sitedown() && $config["debug"] == true) { echo "

Generated in ".microtime_diff($starttime,$endtime)." seconds by CMS Made Simple using ".(isset($db->query_count)?$db->query_count:'')." SQL queries and {$memory} bytes of memory (peak memory usage was {$memory_peak})

"; } else if( !isset($config['hide_performance_info']) ) { echo "\n"; } if( is_sitedown() || $config['debug'] == true) { $smarty->clear_compiled_tpl(); #$smarty->clear_all_cache(); } if ( !is_sitedown() && $config["debug"] == true) { #$db->LogSQL(false); // turn off logging # output summary of SQL logging results #$perf = NewPerfMonitor($db); #echo $perf->SuspiciousSQL(); #echo $perf->ExpensiveSQL(); #echo $sql_queries; foreach ($gCms->errors as $error) { echo $error; } } if( $page == '__CMS_PREVIEW_PAGE__' && isset($_SESSION['cms_preview']) ) // temporary { unset($_SESSION['cms_preview']); } # vim:ts=4 sw=4 noet ?> ',$code.'', $_buf); } } ?>