Admin wrapper script | > Script written by Matt Mecham | > Date started: 1st March 2002 | +-------------------------------------------------------------------------- */ /** * Main ACP executable wrapper. * * Set-up and load module to run * * @package InvisionPowerBoard * @author Matt Mecham * @version 2.1 */ /** * Script type * */ define( 'IPB_THIS_SCRIPT', 'admin' ); define( 'IPB_LOAD_SQL' , 'admin_queries' ); require_once( './init.php' ); //----------------------------------------------- // USER CONFIGURABLE ELEMENTS //----------------------------------------------- // Check IP address to see if they match? // this may cause problems for users on proxies // where the IP address changes during a session $check_ip = 1; // Use GZIP content encoding for fast page generation // in the admin center? $use_gzip = 1; //=========================================================================== // NO USER EDITABLE SECTIONS BELOW //=========================================================================== if (function_exists("set_time_limit") == 1 and SAFE_MODE_ON == 0) { @set_time_limit(0); } //-------------------------------- // Load up our classes //-------------------------------- require ROOT_PATH . "sources/ipsclass.php"; require ROOT_PATH . "sources/classes/class_session.php"; require ROOT_PATH . "sources/classes/class_forums.php"; require KERNEL_PATH . "class_converge.php"; require ROOT_PATH . "conf_global.php"; require ROOT_PATH . "sources/lib/admin_functions.php"; require ROOT_PATH . "sources/lib/admin_skin.php"; $ipsclass = new ipsclass(); $ipsclass->vars = $INFO; //-------------------------------- // The clocks a' tickin' //-------------------------------- $Debug = new Debug; $Debug->startTimer(); //-------------------------------- // Additional set up //-------------------------------- if ( defined($ipsclass->vars['safe_mode_skins']) ) { define( 'SAFE_MODE_SKINS', $ipsclass->vars['safe_mode_skins'] ); } else { define( 'SAFE_MODE_SKINS', SAFE_MODE_ON ); } //=========================================================================== // Load up our database library //=========================================================================== $ipsclass->init_db_connection(); //=========================================================================== // Get cache... //=========================================================================== $ipsclass->init_load_cache( array('rss_export', 'bbcode', 'badwords', 'emoticons', 'settings', 'group_cache', 'systemvars', 'skin_id_cache', 'forum_cache', 'moderators', 'stats') ); //-------------------------------- // Set up classes //-------------------------------- $ipsclass->sess = new session(); $ipsclass->sess->ipsclass =& $ipsclass; $ipsclass->forums = new forum_functions(); $ipsclass->forums->ipsclass =& $ipsclass; //-------------------------------- // Set up incoming array //-------------------------------- $ipsclass->parse_incoming(); //-------------------------------- // Initialize the FUNC //-------------------------------- $ipsclass->initiate_ipsclass(); //-------------------------------- // Set converge //-------------------------------- $ipsclass->converge = new class_converge( $ipsclass->DB ); //-------------------------------- // Message in a bottle? //-------------------------------- if ( $ipsclass->input['messageinabottleacp'] ) { $ipsclass->input['messageinabottleacp'] = $ipsclass->clean_evil_tags( $ipsclass->txt_UNhtmlspecialchars( urldecode($ipsclass->input['messageinabottleacp']) ) ); $ipsclass->main_msg = $ipsclass->input['messageinabottleacp']; } //-------------------------------- // Fix up base URLs //-------------------------------- $ipsclass->skin_acp = 'IPB2_Standard'; $ipsclass->base_url = $ipsclass->vars['board_url']."/admin." .$ipsclass->vars['php_ext'].'?adsess='.$ipsclass->input['adsess']; $ipsclass->skin_url = $ipsclass->vars['board_url']."/skin_acp/".$ipsclass->skin_acp; //-------------------------------- // Load global ACP skin //-------------------------------- $ipsclass->skin_global_acp = $ipsclass->acp_load_template('cp_skin_global'); //-------------------------------- // Import Admin Functions //-------------------------------- $ipsclass->admin = new admin_functions(); $ipsclass->admin->ipsclass =& $ipsclass; //------------------------------------------------ // Load skin & lang //------------------------------------------------ $ipsclass->load_skin(); $ipsclass->skin_id = $ipsclass->skin['_setid']; $ipsclass->vars['img_url'] = 'style_images/' . $ipsclass->skin['_imagedir']; $ipsclass->vars['AVATARS_URL'] = 'style_avatars'; $ipsclass->vars['EMOTICONS_URL'] = 'style_emoticons/<#EMO_DIR#>'; $ipsclass->vars['mime_img'] = 'style_images/<#IMG_DIR#>/folder_mime_types'; $ipsclass->load_template( 'skin_global' ); $ipsclass->load_language( 'lang_global' ); //------------------------------------------------ // Import Skinable elements //------------------------------------------------ $ipsclass->adskin = new admin_skin(); $ipsclass->adskin->ipsclass =& $ipsclass; $ipsclass->adskin->init_admin_skin(); //------------------------------------------------------ // Require.. //------------------------------------------------------ require_once( ROOT_PATH.'sources/lib/admin_cache_functions.php' ); $ipsclass->cache_func = new admin_cache_functions(); $ipsclass->cache_func->ipsclass =& $ipsclass; //------------------------------------------------------ // Legacy mode? //------------------------------------------------------ if ( LEGACY_MODE ) { $DB =& $ipsclass->DB; $std =& $ipsclass; $ibforums =& $ipsclass; $forums =& $ipsclass->forums; $print =& $ipsclass->print; $sess =& $ipsclass->sess; } //------------------------------------------------------ // ACP Session-ize the member //------------------------------------------------------ $ipsclass->admin_session = array( '_session_validated' => 0 ); $ipsclass->admin->acp_session_validation( $check_ip ); //------------------------------------------------------ // What are we doing, then? //------------------------------------------------------ if ( ( $ipsclass->input['act'] != 'login' ) AND ( ! $ipsclass->admin_session['_session_validated'] ) ) { //------------------------------ // Force log in //------------------------------ $ipsclass->input['act'] = 'login'; $ipsclass->input['code'] = 'login'; require_once( ROOT_PATH."sources/action_admin/login.php" ); $runme = new ad_login(); $runme->ipsclass =& $ipsclass; $runme->auto_run(); exit(); } else if ( strtolower($ipsclass->input['act']) == 'login' ) { //------------------------------ // Ok - got a log in, kill section //------------------------------ $ipsclass->input['section'] = ''; } //------------------------------------------------------ // Re-define base URL //------------------------------------------------------ $ipsclass->base_url = $ipsclass->vars['board_url']."/admin.".$ipsclass->vars['php_ext'].'?adsess='.$ipsclass->input['adsess']; //------------------------------------------------------ // What do you want to require today? //------------------------------------------------------ $choice = array( 'content' => array( 'acp_content' , 'acp_content' , 'content' ), 'lookandfeel' => array( 'acp_lookandfeel' , 'acp_lookandfeel' , 'lookandfeel' ), 'tools' => array( 'acp_tools' , 'acp_tools' , 'tools' ), 'components' => array( 'acp_components' , 'acp_components' , 'components' ), 'admin' => array( 'acp_admin' , 'acp_admin' , 'admin' ), # Non CP specific action 'xmlout' => array( "xmlout" , 'xmlout' ), 'prefs' => array( "prefs" , 'prefs' ), 'login' => array( 'login' , 'login' ), 'rtempl' => array( 'remote_template' , 'remote_template' ), 'quickhelp' => array( "quickhelp" , 'quickhelp' ), ); //--------------------------------------------------- // Check to make sure the array key exits.. //--------------------------------------------------- if ( ( ! isset($choice[ $ipsclass->input['section'] ][0]) ) OR ( ! $ipsclass->input['section'] ) ) { # Got an act? if ( $choice[ $ipsclass->input['act'] ][0] ) { require_once( ROOT_PATH.'sources/action_admin/'.$choice[ $ipsclass->input['act'] ][0].'.php' ); $constructor = 'ad_'.$choice[ $ipsclass->input['act'] ][1]; $runmeagain = new $constructor; $runmeagain->ipsclass =& $ipsclass; $runmeagain->auto_run(); } else { $ipsclass->input['section'] = 'admin'; } } //--------------------------------------------------- // Menu type //--------------------------------------------------- $ipsclass->menu_type = $choice[ $ipsclass->input['section'] ][2]; //--------------------------------------------------- // Require and run //--------------------------------------------------- require ROOT_PATH."sources/acp_loaders/".$choice[ $ipsclass->input['section'] ][0].".php"; $runme = new $choice[ $ipsclass->input['section'] ][1]; $runme->ipsclass =& $ipsclass; $runme->auto_run(); //+------------------------------------------------- // Skin emergency mode... //+------------------------------------------------- function skin_emergency() { global $ipsclass; if ( $_GET['skinrebuild'] == 1 ) { print "Attempted to rebuild the skins and failed.
Please contact technical support for more assistance."; exit(); } //----------------------------------------- // Rebuild ID cache.. //----------------------------------------- require_once( ROOT_PATH.'sources/lib/admin_cache_functions.php' ); $adcache = new admin_cache_functions(); $adcache->ipsclass =& $this->ipsclass; $ipsclass->cache['skin_id_cache'] = $adcache->_rebuild_skin_id_cache(); //----------------------------------------- // Attempt to recache the default skin //----------------------------------------- foreach( $ipsclass->cache['skin_id_cache'] as $sid => $data ) { if ( $data['set_default'] ) { $default_skin = $data['set_skin_set_id']; } } //----------------------------------------- // Load library //----------------------------------------- require_once( ROOT_PATH.'sources/lib/admin_cache_functions.php' ); $ipsclass->cache_func = new admin_cache_functions(); $ipsclass->cache_func->ipsclass =& $this->ipsclass; $ipsclass->cache_func->_rebuild_all_caches( array($default_skin) ); //----------------------------------------- // Try to turn on safe mode //----------------------------------------- if ( ! @file_exists( CACHE_PATH.'cache/skin_cache/cacheid_'.$default_skin.'/skin_global.php' ) ) { if ( $ipsclass->vars['safe_mode_skins'] != 1 ) { $ipsclass->DB->do_update( "conf_settings", array( 'conf_value' => 1 ), "conf_key='safe_mode_skins'" ); require_once( ROOT_PATH.'sources/action_admin/settings.php' ); $adsettings = new ad_settings(); $adsettings->ipsclass =& $this->ipsclass; $adsettings->setting_rebuildcache(); } } //----------------------------------------- // Update panic message //----------------------------------------- $ipsclass->DB->simple_exec_query( array( "delete" => "cache_store", "where" => "cs_key='skinpanic'" ) ); $ipsclass->DB->do_insert( 'cache_store', array( 'cs_value' => 'rebuildemergency', 'cs_key' => 'skinpanic' ) ); $ipsclass->boink_it( $ipsclass->base_url.'&skinrebuild=1' ); } ?>