navigation_var])) $location = $_GET[$site->navigation_var]; $_GET[$site->navigation_var] = $location; if (!$site->ValidPage($location)) $location = $site->default_location; ///////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////// // set the name of the current parsed page ///////////////////////////////////////////////////////////////////////////////////////////////// $site->current_page_handler = $site->GetPageHandler($location); $site->current_page_name = strtolower($site->GetPageName($site->current_page_handler)); ///////////////////////////////////////////////////////////////////////////////////////////////// $site->print = false; if (isset($_GET["print"])) $site->print = true; ///////////////////////////////////////////////////////////////////////////////////////////////// // load module list needed for page and create instances for each class ///////////////////////////////////////////////////////////////////////////////////////////////// $modules = $site->GetPageModules($site->current_page_handler); foreach ($modules as $module) { $site->SelectModule ($module); $module_name = $site->GetModuleName(); require_once ($site->GetModuleDirectory()."module_".$module_name."_class.php"); $init_string = "\$".$module_name." = new module_".$module_name."_class ();"; eval ($init_string); $$module_name->SetTemplateDirectory($site->GetTemplatePath()); $$module_name->Debug ($flag_debug); } ///////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////// // set per page configuration of modules ///////////////////////////////////////////////////////////////////////////////////////////////// foreach ($modules as $module) { $site->SelectModule ($module); $module_name = $site->GetModuleName(); $$module_name->SetAsSecondary(); if ($site->IsModulePrimary()) $$module_name->SetAsPrimary(); $$module_name->UseLocationTemplate($site->DoesModuleUseLocationTemplate()); $settings = $site->GetModuleConf(); foreach ($settings as $setting) { $$module_name->SetProperty ($setting["name"], $setting["val"]); } $$module_name->HandleInput(); } ///////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////// // parse the main template file ///////////////////////////////////////////////////////////////////////////////////////////////// $tpl = new template (); $main_tpl = "main_".$site->current_page_name.".html"; $dynamic_loop_needed = false; if ($site->IsGeneralPage($site->current_page_handler)) { $main_tpl = "main.html"; $tpl->load_file ($site->GetTemplatePath().$main_tpl); $dynamic_content_loop = array(); foreach ($modules as $module) { $site->SelectModule ($module); $module_name = $site->GetModuleName(); $$module_name->GetOutput(); if ($$module_name->IsSecondary()) { $tpl->register ("content_".$module_name, $$module_name->content); } else { $dynamic_content_loop[] = array("content" => $$module_name->content); } } $dynamic_loop_needed = true; } else { $tpl->load_file ($site->GetTemplatePath().$main_tpl); foreach ($modules as $module) { $site->SelectModule ($module); $module_name = $site->GetModuleName(); $$module_name->GetOutput(); $tpl->register ("content_".$module_name, $$module_name->content); } } //////////////////////////////////////////////////////////////////////////////////////////////// // construct the linkbar //////////////////////////////////////////////////////////////////////////////////////////////// $link_bar_exists = 0; if ( (count($site->link_bar) > 0) || ($site->link_bar_last_text != ""))$link_bar_exists = 1; for ($i=0;$ilink_bar);$i++) { $site->link_bar[$i]["text"] = $site->link_bar[$i]["text"]; } $site->link_bar_last_text = $site->link_bar_last_text; $lb = new template (); $lb->load_file ($site->GetTemplatePath().$site->link_bar_template); $lb->parse_if ("link_bar_exists", $link_bar_exists); $lb->parse_loop ("link_loop", $site->link_bar); $lb->register ("last_text", $site->link_bar_last_text); $lb->parse (); $linkbar = $lb->file; //////////////////////////////////////////////////////////////////////////////////////////////// // language post parsing //////////////////////////////////////////////////////////////////////////////////////////////// $language_loop = array(); foreach ($languages as $lang) { if ($lang["extension"] != $site->language) $language_loop[] = array ("link" => $site->php_self."?".change_or_create ("lang", $lang["extension"], $site->query_string), "name" => $lang["name"] ); } $tpl->parse_loop ("language_loop", $language_loop); //////////////////////////////////////////////////////////////////////////////////////////////// $email_friend_link = ""; if (defined('PAGE_EMAIL_FRIEND')) $email_friend_link = $site->php_self."?".$site->navigation_var."=".PAGE_EMAIL_FRIEND."&link=".base64_encode($site->query_string); $print_page_link = $site->php_self."?".change_or_create("print", "true", $site->query_string); $tpl->register ("email_friend_link", $email_friend_link); $tpl->register ("print_page_link", $print_page_link); ///////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////// // handle all other eventual post parsing ///////////////////////////////////////////////////////////////////////////////////////////////// $post_parses = $site->GetPostParses(); if (is_array($post_parses)) { foreach ($post_parses as $item) { switch ($item["type"]) { case POST_PARSE_REGISTER : $tpl->register ($item["name"], $item["ref"]); break; case POST_PARSE_IF : $tpl->parse_if ($item["name"], $item["ref"]); break; case POST_PARSE_LOOP : $tpl->parse_loop ($item["name"], $item["ref"]); break; } } } ///////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////// // parse onload content ///////////////////////////////////////////////////////////////////////////////////////////////// $tpl->parse_loop ("site_on_load", $site->GetOnLoadContent()); ///////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////// // parse head content ///////////////////////////////////////////////////////////////////////////////////////////////// $tpl->parse_loop ("site_head", $site->GetHeadContent()); ///////////////////////////////////////////////////////////////////////////////////////////////// // print "
".$email_friend_link."
"; $tpl->parse (); if ($dynamic_loop_needed) $tpl->parse_loop ("dynamic_content_loop", $dynamic_content_loop); $tpl->register ("site_linkbar" , $linkbar); $tpl->register ("site_css" , $site_css); $tpl->register ("tpath" , $site->template_path); $tpl->register ("site_title" , $site->title); $tpl->register ("site_language", $site->language); $tpl->parse (); // if ($dynamic_loop_needed) $tpl->parse_loop ("dynamic_content_loop", $dynamic_content_loop); ///////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////// // end timer ///////////////////////////////////////////////////////////////////////////////////////////////// if ($flag_timer) { $timer_end = getmicrotime(); print "generated in ".($timer_end - $timer_start)." seconds"; } ///////////////////////////////////////////////////////////////////////////////////////////////// /* print "
requests = ".$sqllist->Requests(); print "
length of cache = ".$sqllist->Length(); print "
number of selects = ".$sqllist->Selects(); print "
number of inserts = ".$sqllist->Inserts(); print "
number of updates = ".$sqllist->Updates(); print "
number of deletes = ".$sqllist->Deletes(); print "
number of select cache hits = ".$sqllist->SelectCacheHits(); */ ///////////////////////////////////////////////////////////////////////////////////////////////// // print the result ///////////////////////////////////////////////////////////////////////////////////////////////// print $tpl->file; ///////////////////////////////////////////////////////////////////////////////////////////////// ?>