//定义两个常量,定义当前应用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';

转载于:https://www.cnblogs.com/wuhaonihao/p/4939563.html

论坛入口forum.php相关推荐

  1. 17款开源论坛系统/Forum Software(转载)

    phpBB phpBB具有友好的用户界面,简单易懂的管理面板和FAQ.你可采用PHP+MySQL,MS-SQL,PostgreSQL或Access/ODBC数据库来搭建自己的论坛系统. OPB OPB ...

  2. 黄聪:Discuz X2.0 SEO:论坛面包屑导航伪静态 去掉面包屑导航forum.php(转)

    自从Discuz被腾讯这头大牛收购后的确越来越强大了,云平台是最大的亮点,但是Discuz X2.0在伪静态方面仍然非常不尽人意.目前世面主流的论坛程序phpwind和Discuz都无法做到全站完美伪 ...

  3. Discuz!X论坛开发(九)二次开发之Discuz X2 文件目录功能详解

    原文链接: http://www.discuz.net/forum.php?mod=viewthread&tid=2359270&reltid=1625972&pre_thre ...

  4. discuz论坛与其它网站登录注册整合

    discuz论坛与其它网站登录注册整合 本文以discuz 7.0.0 php版本的论坛与 .net 2.0的网站注册登录整合为类. 没有采用uc_center或第三方插件.以另类的方式实现. 此方法 ...

  5. dz去掉/forum.php_discuz如何去除url的forum.php

    在操作之前,我们先来看一下discuz论坛含有forum.php尾巴的地方: (1)主导航中的论坛按钮 (2)论坛首页的面包屑导航位置 (3)分区版块的面包屑导航位置 (4)主题列表页的面包屑导航位置 ...

  6. iDataForum2010数据库技术论坛总结

    [文章作者:孙立 链接:http://www.cnblogs.com/sunli/ 更新时间:2010-12-14] 我在12月8日荣幸地作为Velocity大会的的演讲者分享了<移动互联网内容 ...

  7. 为 Joomla 而生的 Kunena 论坛安装手册

    查看并下载最新版本Kunena论坛,或直接下载Kunena1.7.2.如果你打算在Joomla网站中安装一个论坛,可以考虑一下Kunena论坛组件,一个为Joomla而生的免费的开源论坛组件. 安装: ...

  8. ChinaSoft 论坛巡礼 | 软件智能合成理论与方法

    2022年CCF中国软件大会(CCF ChinaSoft 2022)将于2022年11月25-27日在上海国际会议中心举行.预期将有林惠民.陈左宁.邬江兴.何积丰.梅宏.吕建.柴洪峰.王怀民.郑纬民. ...

  9. NFC Forum发布NFC数据交换格式(NDEF)规范

    为实现NFC标签.NFC设备以及NFC设备之间的交互通信,NFC论坛(NFC Forum)定义了称为NFC数据交换格式(NDEF)的通用数据格式. 为实现NFC标签.NFC设备以及NFC设备之间的交互 ...

最新文章

  1. Spring 与 Spring Boot 中的事件机制
  2. css+图标偏移,css background-position 偏移的问题
  3. 十二、Powerbi绘制人员地区分布图和后期学习
  4. 【鬼网络】之远程访问及控制ssh
  5. PostgreSQL 空间处理函数
  6. android:contentDescription 的用途
  7. 高位在前低位在后是啥意思_两年前满仓买的一支股,买时28,现在8块多点,股民怎么处理好?...
  8. Cockroachdb 一、系统环境
  9. Mac 系统 go-kit安装
  10. Linux开源字体——“文泉驿正黑”的安装命令
  11. 织梦响应式酒店民宿住宿类网站织梦模板(自适应手机端)
  12. html打印预览空白,win7系统下使用IE浏览器预览打印页面时显示页面空白
  13. 科研日常中,有用的拼图软件
  14. 第100封“情书”:不完美生活Volume Displacement Shader<Entagma>Houdini 2019
  15. 橙仕汽车——双排mini卡
  16. Linux操作,su切换用户命令中有无横杠“-”的区别
  17. 零伽壹产业研究:新商业奇观元宇宙,多种技术的集大成者
  18. springAOP支持的通知类型
  19. 推特开发者 推特 oauth1.0a 授权【推特开发者文档系列12】
  20. Adobe的视频和音频编码和格式转换软件Media Encoder(Me) 2023版本下载与安装教程

热门文章

  1. 全球最年长程序员,84岁硬核老奶奶的励志编程路
  2. mysql同一个表比较_比较mysql中同一个表中的行
  3. HDU3527(杭电)spy问题
  4. mysql5.5 mysql5.6 mysql5.7官方手册
  5. 转载: HDMI 基础知识
  6. 本地k8s环境搭建工具kind、microk8s安装;windows 包管理工具Chocolatey;lens k8s可视化工具
  7. quill-editor使用方法,图片base64位转为url缩减字符长度,以及显示文字个数,光标位置等
  8. 从零开发区块链应用(十三)--以太坊区块查询
  9. 植物大战僵尸java圣诞版,植物大战僵尸圣诞版-植物大战僵尸2圣诞节版v1.9.1 安卓版-腾牛安卓网...
  10. STL map的几种赋值方式