論壇入口forum.php


//定義兩個常量,定義當前應用ID
define('APPTYPEID', 2);
//定義當前應用腳本名稱
define('CURSCRIPT', 'forum');
 
//引入兩個核心庫文件
require './source/class/class_core.php'; //Discuz! 的通用初始化模塊程序,其幾乎被 所有的外部代碼所引用
require './source/function/function_forum.php'; //論壇全局功能處理函數
 
//模塊定義,模塊數組
$modarray = array('ajax','announcement','attachment','forumdisplay',
'group','image','index','medal','misc','modcp','notice','post','redirect',
'relatekw','relatethread','rss','topicadmin','trade','viewthread','tag','collection','guide'
);
 
//模塊緩存定義,模塊緩存hash表
$modcachelist = array(
'index' => array('announcements', 'onlinelist', 'forumlinks',
'heats', 'historyposts', 'onlinerecord', 'userstats', 'diytemplatenameforum'),
'forumdisplay' => array('smilies', 'announcements_forum', 'globalstick', 'forums',
'onlinelist', 'forumstick', 'threadtable_info', 'threadtableids', 'stamps', 'diytemplatenameforum'),
'viewthread' => array('smilies', 'smileytypes', 'forums', 'usergroups',
'stamps', 'bbcodes', 'smilies', 'custominfo', 'groupicon', 'stamps',
'threadtableids', 'threadtable_info', 'posttable_info', 'diytemplatenameforum'),
'redirect' => array('threadtableids', 'threadtable_info', 'posttable_info'),
'post' => array('bbcodes_display', 'bbcodes', 'smileycodes', 'smilies', 'smileytypes',
'domainwhitelist', 'albumcategory'),
'space' => array('fields_required', 'fields_optional', 'custominfo'),
'group' => array('grouptype', 'diytemplatenamegroup'),
);
 
//判斷app()指向的對象中的成員數組var中下標為mod的數組元素是否在定義的模塊中,
//不在的話,賦值index字串給$mod,在的話就賦值下標為mod的數組元素。
//這里的C是class_core.php中的類core。
//第一次進入$mod='index';
$mod = !in_array(C::app()->var['mod'], $modarray) ? 'index' : C::app()->var['mod'];
 
//將$mod的值定義給常量CURMODULE,論壇以及模板解析時候需要
define('CURMODULE', $mod);
 
//依據 CURMODULE設定需要加載的緩存
$cachelist = array();
//判斷變量$modcachelist['index']是否設置,如果設置則返回true,否則返回false,null也返回false,這里是true
if(isset($modcachelist[CURMODULE])) {
//將$modcachelist['index']數組賦值給數組$cachelist
$cachelist = $modcachelist[CURMODULE];
}
//判斷core中app方法返回的對象中的var數組中鍵位mod的元素值是否等於group
//第一次var['mod']的值應該為null
if(C::app()->var['mod'] == 'group') {
$_G['basescript'] = 'group';
}
 
//將core中app方法返回的對象$_app中的成員數組變量cachelist設置值為數組$cachelist的值
C::app()->cachelist = $cachelist;
//調用$_app對象的初始化方法,初始化db,setting,user,session,mobile,cron,misc
C::app()->init();
 
//針對論壇功能的公共過程
loadforum(); //猜測是加載論壇
set_rssauth(); //還沒研究明白 RSS驗證?
runhooks(); //還沒研究明白 鈎子?
 
//搜索全局$_G中的setting->seotitle->forum中搜索{bbname}的,替換為$_G['setting']['bbname']。用來設置主頁標題
$navtitle = str_replace('{bbname}', $_G['setting']['bbname'], $_G['setting']['seotitle']['forum']);
 
//根據mod值引入source/module/forum/下的php文件,即論壇主頁
require DISCUZ_ROOT.'./source/module/forum/forum_'.$mod.'.php';


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM