diff -r be6cfe79128c -r 73abd46f5148 includes/common.php --- a/includes/common.php Fri Aug 21 20:30:52 2009 -0400 +++ b/includes/common.php Fri Aug 21 20:37:18 2009 -0400 @@ -381,22 +381,25 @@ profiler_log('Finished base_classes_initted hook'); - // For special and administration pages, sometimes there is a "preloader" function that must be run - // before the session manager and/or path manager get the init signal. Call it here. - $p = RenderMan::strToPageId($paths->get_pageid_from_url()); - if( ( $p[1] == 'Admin' || $p[1] == 'Special' ) && function_exists('page_'.$p[1].'_'.$p[0].'_preloader')) - { - call_user_func('page_'.$p[1].'_'.$p[0].'_preloader'); - } - - profiler_log('Checked for preloader'); - // One quick security check... if ( !is_valid_ip($_SERVER['REMOTE_ADDR']) ) { die('SECURITY: spoofed IP address: ' . htmlspecialchars($_SERVER['REMOTE_ADDR'])); } - + + // For special and administration pages, sometimes there is a "preloader" function that must be run + // before the session manager and/or path manager get the init signal. Call it here. + $title = get_title(true); + list($page_id, $namespace) = RenderMan::strToPageID($title); + list($page_id_top) = explode('/', $page_id); + $fname = "page_{$namespace}_{$page_id_top}_preloader"; + if( ( $namespace == 'Admin' || $namespace == 'Special' ) && function_exists($fname)) + { + call_user_func($fname); + } + + profiler_log('Checked for (and ran, if applicable) preloader'); + // All checks passed! Start the main components up. $session->start(); @@ -423,7 +426,7 @@ profiler_log('Ran session_started hook'); - $paths->init(); + $paths->init($title); // setup output format if ( defined('ENANO_OUTPUT_FORMAT') )