Перейти к контенту
  • 0

Че это значит?


****** *****

Вопрос

$Date: 2005-10-11 14:29:43 +0100 (Tue, 11 Oct 2005) $ | > $Revision: 39 $ | > $Author: matt $ +--------------------------------------------------------------------------- | | > Wrapper script | > Script written by Matt Mecham | > Date started: 14th February 2002 | > Date updated: IPB 2.1.0: Tue 12 July 2005 | +-------------------------------------------------------------------------- */ /** * Main executable wrapper. * * Set-up and load module to run * * @package InvisionPowerBoard * @author Matt Mecham * @version 2.1 */ /** * Script type * */ define( 'IPB_THIS_SCRIPT', 'public' ); define( 'IPB_LOAD_SQL' , 'queries' ); require_once( './init.php' ); //=========================================================================== // MAIN PROGRAM //=========================================================================== $INFO = array(); //-------------------------------- // Load our classes //-------------------------------- require_once ROOT_PATH . "sources/ipsclass.php"; require_once ROOT_PATH . "sources/classes/class_display.php"; require_once ROOT_PATH . "sources/classes/class_session.php"; require_once ROOT_PATH . "sources/classes/class_forums.php"; require_once KERNEL_PATH . "class_converge.php"; require_once ROOT_PATH . "conf_global.php"; # Initiate super-class $ipsclass = new ipsclass(); $ipsclass->vars = $INFO; //-------------------------------- // The clocks a' tickin' //-------------------------------- $Debug = new Debug; $Debug->startTimer(); //-------------------------------- // Load the DB driver and such //-------------------------------- $ipsclass->init_db_connection(); //-------------------------------- // INIT other classes //-------------------------------- $ipsclass->print = new display(); $ipsclass->print->ipsclass =& $ipsclass; $ipsclass->sess = new session(); $ipsclass->sess->ipsclass =& $ipsclass; $ipsclass->forums = new forum_functions(); $ipsclass->forums->ipsclass =& $ipsclass; //-------------------------------- // Set up our vars //-------------------------------- $ipsclass->parse_incoming(); //-------------------------------- // Set converge //-------------------------------- $ipsclass->converge = new class_converge( $ipsclass->DB ); //=========================================================================== // Generate choice array //=========================================================================== $choice = array( "idx" => array( "boards" , 'boards' , array('chatting','birthdays', 'calendar') ), "sf" => array( "forums" , 'forums' , array('announcements', 'multimod') ), "sr" => array( "forums" , 'forums' , array() ), "st" => array( "topics" , 'topics' , array('attachtypes','bbcode', 'multimod','ranks','profilefields' ) ), "announce" => array( "announcements" , 'announcements', array('bbcode','badwords','emoticons','ranks','profilefields' ) ), "login" => array( "login" , 'login' , array() ), "post" => array( "post" , 'post' , array('attachtypes','badwords','bbcode','emoticons','ranks' ) ), "reg" => array( "register" , 'register' , array() ), "online" => array( "online" , 'online' , array() ), "members" => array( "memberlist" , 'memberlist' , array('ranks','profilefields' ) ), "help" => array( "help" , 'help' , array() ), "search" => array( "search" , 'search' , array('badwords','emoticons','attachtypes','multimod','bbcode','ranks','profilefields' ) ), "mod" => array( "moderate" , 'moderate' , array('attachtypes','multimod','bbcode','emoticons','badwords' ) ), "print" => array( "misc/print_page" , 'printpage' , array('attachtypes','bbcode', 'multimod','ranks','profilefields' ) ), "forward" => array( "misc/forward_page" , 'forwardpage' , array() ), "mail" => array( "misc/contact_member", 'contactmember', array() ), "report" => array( "misc/contact_member", 'contactmember', array() ), "chat" => array( "misc/contact_member", 'contactmember', array() ), 'boardrules' => array( "misc/contact_member", 'contactmember', array() ), "msg" => array( "messenger" , 'messenger' , array('profilefields','attachtypes','badwords','bbcode','emoticons' ) ), "usercp" => array( "usercp" , 'usercp' , array('attachtypes','badwords','bbcode','emoticons' ) ), "profile" => array( "profile" , 'profile' , array('ranks','profilefields','badwords','bbcode','emoticons' ) ), "track" => array( "misc/tracker" , 'tracker' , array() ), "stats" => array( "misc/stats" , 'stats' , array() ), "attach" => array( "misc/attach" , 'attach' , array('attachtypes' ) ), 'legends' => array( 'misc/legends' , 'legends' , array('badwords','bbcode' ,'emoticons' ) ), 'calendar' => array( "calendar" , 'calendar' , array('attachtypes','bbcode', 'ranks','multimod','emoticons','badwords' ) ), 'buddy' => array( "browsebuddy" , 'assistant' , array() ), 'mmod' => array( "misc/multi_moderate", 'mmod' , array('multimod' ) ), 'warn' => array( "misc/warn" , 'warn' , array('badwords','bbcode' ,'emoticons' ) ), 'home' => array( 'portal' , 'portal' , array('portal','attachtypes','bbcode', 'multimod','ranks','profilefields' ) ), 'module' => array( 'modules' , 'modules' , array() ), 'task' => array( 'taskloader' , 'taskloader' , array() ), 'findpost' => array( 'findpost' , 'findpost' , array() ), "xmlout" => array( "xmlout" , 'xmlout' , array('attachtypes','multimod','bbcode','ranks','profilefields' ) ), 'paysubs' => array( 'paysubscriptions' , 'paysubscriptions' , array() ), 'rssout' => array( 'rssout' , 'rssout' , array() ), 'component' => array( 'component' , 'component' , array() ), ); //--------------------------------------------------- // Check to make sure the array key exits.. //--------------------------------------------------- $ipsclass->input['_low_act'] = strtolower( $ipsclass->input['act'] ); if (! isset($choice[ $ipsclass->input['_low_act'] ][0]) ) { $ipsclass->input['act'] = 'idx'; } //=========================================================================== // Short tags... //=========================================================================== if ( $ipsclass->input['showforum'] != "" ) { $ipsclass->input['act'] = "sf"; $ipsclass->input['f'] = intval($ipsclass->input['showforum']); } else if ( $ipsclass->input['showtopic'] != "") { $ipsclass->input['act'] = "st"; $ipsclass->input['t'] = intval($ipsclass->input['showtopic']); //--------------------------------------------------- // Grab and cache the topic now as we need the 'f' attr for // the skins... //--------------------------------------------------- $ipsclass->DB->simple_construct( array( 'select' => '*', 'from' => 'topics', 'where' => "tid=".$ipsclass->input['t'], ) ); $ipsclass->DB->simple_exec(); $ipsclass->topic_cache = $ipsclass->DB->fetch_row(); $ipsclass->input['f'] = $ipsclass->topic_cache['forum_id']; } else if ( $ipsclass->input['showuser'] != "") { $ipsclass->input['act'] = "profile"; $ipsclass->input['MID'] = intval($ipsclass->input['showuser']); } else if ( $ipsclass->input['automodule'] != "" ) { $ipsclass->input['act'] = 'module'; $ipsclass->input['module'] = $ipsclass->input['automodule']; } else if ( $ipsclass->input['autocom'] != "" ) { $ipsclass->input['act'] = 'component'; $ipsclass->input['module'] = $ipsclass->input['autocom']; } else { $ipsclass->input['act'] = $ipsclass->input['act'] == '' ? "idx" : $ipsclass->input['act']; } if ( ! $ipsclass->input['_low_act'] ) { $ipsclass->input['_low_act'] = strtolower($ipsclass->input['act']); } //-------------------------------- // Start off the cache array //-------------------------------- $ipsclass->cache_array = array_merge( $choice[ $ipsclass->input['_low_act'] ][2], array('rss_calendar', 'rss_export','components','banfilters', 'settings', 'group_cache', 'systemvars', 'skin_id_cache', 'forum_cache', 'moderators', 'stats', 'languages') ); //-------------------------------- // Module? Load INIT class //-------------------------------- if ( ( $ipsclass->input['act'] == 'module' OR $ipsclass->input['act'] == 'component' ) and $ipsclass->input['module'] ) { $file = ROOT_PATH.'sources/components_init/'. $ipsclass->txt_alphanumerical_clean( $ipsclass->input['module'] ).'.php'; if ( file_exists( $file ) ) { require_once( $file ); $init_class = new component_init(); $init_class->ipsclass =& $ipsclass; $init_class->run_init(); } } //=========================================================================== // Get cache... //=========================================================================== $ipsclass->init_load_cache( $ipsclass->cache_array ); //-------------------------------- // Set debug mode //-------------------------------- $ipsclass->DB->set_debug_mode( $ipsclass->vars['sql_debug'] == 1 ? intval($_GET['debug']) : 0 ); //-------------------------------- // Initialize the FUNC //-------------------------------- $ipsclass->initiate_ipsclass(); //-------------------------------- // The rest :D //-------------------------------- $ipsclass->member = $ipsclass->sess->authorise(); $ipsclass->lastclick = $ipsclass->sess->last_click; $ipsclass->location = $ipsclass->sess->location; $ipsclass->session_id = $ipsclass->sess->session_id; // Used in URLs $ipsclass->my_session = $ipsclass->sess->session_id; // Used in code //----------------------------------------- // Cache md5 check //----------------------------------------- $ipsclass->md5_check = $ipsclass->return_md5_check(); //-------------------------------- // Initialize the forums //-------------------------------- $ipsclass->forums->strip_invisible = 1; $ipsclass->forums->forums_init(); //-------------------------------- // Load the skin //-------------------------------- $ipsclass->load_skin(); list($ppu,$tpu) = explode( "&", $ipsclass->member['view_prefs'] ); $ipsclass->vars['display_max_topics'] = ($tpu > 0) ? $tpu : $ipsclass->vars['display_max_topics']; $ipsclass->vars['display_max_posts'] = ($ppu > 0) ? $ppu : $ipsclass->vars['display_max_posts']; //=========================================================================== // Set up the session ID stuff //=========================================================================== if ( $ipsclass->session_type == 'cookie' ) { $ipsclass->session_id = ""; $ipsclass->base_url = $ipsclass->vars['board_url'].'/index.'.$ipsclass->vars['php_ext'].'?'; } else { $ipsclass->base_url = $ipsclass->vars['board_url'].'/index.'.$ipsclass->vars['php_ext'].'?s='.$ipsclass->session_id.'&'; } $ipsclass->js_base_url = $ipsclass->vars['board_url'].'/index.'.$ipsclass->vars['php_ext'].'?s='.$ipsclass->session_id.'&'; //-------------------------------- // Set up the forum_read cookie //-------------------------------- $ipsclass->hdl_forum_read_cookie(); //=========================================================================== // Set up defaults //=========================================================================== $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#>'; //-------------------------------- // Set up our language choice //-------------------------------- if ($ipsclass->vars['default_language'] == "") { $ipsclass->vars['default_language'] = 'en'; } //-------------------------------- // Did we choose a language? //-------------------------------- If ( $ipsclass->input['setlanguage'] and $ipsclass->input['langid'] and $ipsclass->member['id'] ) { if ( is_array( $ipsclass->cache['languages'] ) and count( $ipsclass->cache['languages'] ) ) { foreach( $ipsclass->cache['languages'] as $idx => $data ) { if ( $data['ldir'] == $ipsclass->input['langid'] ) { $ipsclass->DB->do_update( 'members', array( 'language' => $data['ldir'] ), 'id='.$ipsclass->member['id'] ); $ipsclass->member['language'] = $data['ldir']; } } } } $ipsclass->load_language('lang_global'); //-------------------------------- // Legacy mode? //-------------------------------- if ( LEGACY_MODE ) { $DB =& $ipsclass->DB; $std =& $ipsclass; $ibforums =& $ipsclass; $forums =& $ipsclass->forums; $print =& $ipsclass->print; $sess =& $ipsclass->sess; $ipsclass->load_template('skin_global'); $ipsclass->skin_global = $ipsclass->compiled_templates['skin_global']; } //=========================================================================== // DECONSTRUCTOR //=========================================================================== if ( USE_SHUTDOWN and $ipsclass->input['act'] != 'task' ) { @chdir( ROOT_PATH ); $ROOT_PATH = getcwd(); register_shutdown_function( array( &$ipsclass, 'my_deconstructor') ); } //=========================================================================== // Force log in / board offline? //=========================================================================== if ($ipsclass->input['_low_act'] != 'login' and $ipsclass->input['_low_act'] != 'reg' and $ipsclass->input['_low_act'] != 'attach' and $ipsclass->input['_low_act'] != 'task' and $ipsclass->input['_low_act'] != 'paysubs' ) { //-------------------------------- // Do we have permission to view // the board? //-------------------------------- if ($ipsclass->member['g_view_board'] != 1) { $ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'no_view_board') ); } //-------------------------------- // Is the board offline? //-------------------------------- if ($ipsclass->vars['board_offline'] == 1) { if ($ipsclass->member['g_access_offline'] != 1) { $ipsclass->vars['no_reg'] == 1; $ipsclass->board_offline(); } } //-------------------------------- // Is log in enforced? //-------------------------------- if ( (! $ipsclass->member['id']) and ($ipsclass->vars['force_login'] == 1) ) { require ROOT_PATH."sources/action_public/login.php"; $runme = new login(); $runme->ipsclass =& $ipsclass; $runme->auto_run(); } //-------------------------------- // Show PURCHASE screen? // Not enforced //-------------------------------- if ( ! $ipsclass->member['sub_end'] ) { //-------------------------------- // 1: No enforce, chosen from reg //-------------------------------- if ( ! $ipsclass->vars['subsm_enforce'] and $ipsclass->member['subs_pkg_chosen'] ) { $ipsclass->input['act'] = 'paysubs'; $ipsclass->input['CODE'] = 'paymentmethod'; $ipsclass->input['sub'] = $ipsclass->member['subs_pkg_chosen']; $ipsclass->input['nocp'] = 1; $ipsclass->input['msgtype'] = 'fromreg'; } //-------------------------------- // Show PURCHASE screen? // Enforced //-------------------------------- if ( $ipsclass->vars['subsm_enforce'] and $ipsclass->member['mgroup'] == $ipsclass->vars['subsm_nopkg_group'] ) { $ipsclass->input['act'] = 'paysubs'; $ipsclass->input['nocp'] = 1; $ipsclass->input['msgtype'] = 'force'; if ( $ipsclass->member['subs_pkg_chosen'] ) { $ipsclass->input['CODE'] = 'paymentmethod'; $ipsclass->input['sub'] = $ipsclass->member['subs_pkg_chosen']; } } } } //=========================================================================== // REQUIRE AND RUN //=========================================================================== if ( $ipsclass->input['act'] == 'home' AND $ipsclass->vars['csite_on'] ) { require ROOT_PATH."sources/action_public/portal.php"; $csite = new portal(); $csite->ipsclass =& $ipsclass; $csite->auto_run(); } else if ( $ipsclass->input['act'] == 'module' AND USE_MODULES ) { require ROOT_PATH."modules/module_loader.php"; $loader = new module_loader(); $loader->ipsclass =& $ipsclass; $loader->run_loader(); } else if ( $ipsclass->input['act'] == 'component' ) { $file = ROOT_PATH.'sources/components_public/'. $ipsclass->txt_alphanumerical_clean( $ipsclass->input['module'] ).'.php'; if ( file_exists( $file ) ) { require_once( $file ); $loader = new component_public(); $loader->ipsclass =& $ipsclass; $loader->run_component(); } else { @header( "Location: ".$ipsclass->base_url ); } } else { // Require and run require_once( ROOT_PATH."sources/action_public/".$choice[ strtolower($ipsclass->input['act']) ][0].".php" ); $runme = new $choice[ strtolower($ipsclass->input['act']) ][1]; $runme->ipsclass =& $ipsclass; $runme->auto_run(); } ?>
Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

Гость
Эта тема закрыта для публикации сообщений.
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.