Discuz! 网络论坛程式的文件结构和运行机制
时间:2009-01-02
来源:互联网
近几年来,Discuz! 网络论坛软件成为中文语系地区使用最广泛的论坛系统。
本贴对 Discuz! 的程序和执行进行简要分析,供所有 对 Discuz! 感兴趣的朋友分享,
也 欢迎 各位朋友 提出 自己的 观点和意见。
关键的程序文件
软件中有个 20/80 规律,即 80% 的软件功能集中在 20% 的程序中。
这套在 Discuz! 上再适合不过了,它的大部分功能就集中在 小部分的 文件 中。
Discuz! 中的关键的程序文件包括:
- Discuz! 根目录下的 .php 文件,在这 40 多个文件中,只有十来个是常用的(详见后面的文件列表)。
- Include 文件夹中的文件,可以说这些是整个 系统的核心,其中又以 common.inc.php 最为关重。
- templates\default 文件夹中的文件(使用默认模板),包括模板文件和语言包文件,它们构成论坛的前台。
如果是 管理员 登陆的话,则还要涉及 admin 等文件夹。
程序运行机制简述
用户登陆 论坛 时 主要 与 Discuz! 根目录下的 .php 文件 进行交互操作,
几乎所有这些文件 的开头 都用 require_once './include/common.inc.php'; 导入初始化模块程序
而这些文件中 又都用 include template('模板文件名'); 比如 search.php中的 include template('search'); 解析模板
当用户操作论坛界面时,这些文件 先导入 common.inc.php 进行初始化,并执行该文件定义的功能,
然后 用 global.func.php 中定义的 template 函数 进行模板解析(或使用模板缓存),展示新的界面。
主要程序文件列表
网上关于 Discuz! 文件列表的介绍很多,但 我 觉得 列出 关键和常用的文件更有利分析。
文件太多,未能罗列,各位朋友如果有更好的 列表方式,也可以 发贴上来 大家讨论 哦。
Discuz! 根目录下的文件
config.inc.php 配置论坛数据库、密码等信息
index.php 控制首页元素显示
logging.php 登陆系统,判断用户名、密码。
register.php 注册文件,同时也会控制注册的信息的合法性
post.php 管理帖子发表、编辑等等信息,也会有权限的控制提示
viewthread.php 处理浏览帖子时候的帖子信息显示,例如信息、标题等等
search.php 处理论坛搜索功能
forumdisplay.php 论坛主题列表的显示
digest.php 论坛精华区的信息显示
memcp.php 会员控制面板
space.php 用户资料显示
member.php 控制会员列表显示
pm.php 论坛短信息程序
admincp.php 管理员系统设置程序文件
以上是根目录下常用的文件,此外还有:
attachment.php 附件文件
announcement.php 论坛公告的显示
blog.php 浏览BLOG文章
discuz_version.php 论坛版本信息
faq.php 论坛帮助系统
misc.php 控制评分功能、BLOG、论坛界面显示等功能
plugin.php 论坛插件,控制论坛插件的菜单的显示
redirect.php 控制显示论坛的最后发表的主题访问
rss.php RSS快速订阅
seccode.php 论坛注册,生成验证码的程序
stats.php 处理统计中的统计信息
topic.php 控制页面显示,显示主题条数
topicadmin.php 管理人员的前台管理操作,如精华、置顶、高亮等等
viewpro.php 处理浏览会员信息的内容显示
magic.php 处理道具商店的内容显示
Include 文件夹
common.inc.php 最重要的核心程序,读取COOKIES信息,定义全局系统函数变量(网上有分析该文件的贴子)
global.func.php 丰富的函数库,如除去HTML、发PM、发EMAIL等等
db_mysql.class.php 数据库中心操作程序
template.func.php 调用模板、控制模板缓存生成的文件
misc.func.php 控制管理PM,评分PM,评分记录,附件高亮显示,IP转换为地理位置
forum.func.php 处理论坛信息用的函数,如论坛菜单下拉等等
cache.func.php 控制生成缓存文件的程序
post.func.php 主要是记录信息、更新帖子的函数
editpost.inc.php 编辑帖子的信息处理
pmprompt.inc.php 短信息内容处理
newthread.inc.php 发新话题的信息处理
newreply.inc.php 发回复的信息处理
security.inc.php 安全性检查
以上都是Include 文件夹中较重要的,另外还有
sendmail.inc.php 发送EMAIL的程序
relatethreads.inc.php 生成相关主题的程序
promotion.inc.php 记录当前用户的IP等信息
printable.inc.php 打印主题用的程序
discuzcode.func.php Discuz!代码转换处理程序
db_mysql_error.inc.php 数据库错误汇报
cron.func.php 控制计划任务执行的程序
counter.inc.php 记录操作系统与浏览器的统计
chinese.class.php 处理乱码和字符集用
category.inc.php 控制帖数,今日发帖数的统计
blog.func.php BLOG发帖时的信息处理
attachment.func.php 识别附件拓展名,控制附件前面显示类别图片的程序, 还有附件大小的记录判断
advertisements.inc.php 处理广告显示
serverbusy.htm 系统错误信息
Include 文件夹中还有子文件夹:
crons 子文件夹 计划任务文件
tables 子文件夹 GB码 Big5码语言文件
magic 子文件夹 道具商店文件
javascript子文件夹 系统用的javascript文件,其中 common.js 和 bbcode.js 较重要
作者: kscript 发布时间: 2009-01-02
作者: yafeikf 发布时间: 2009-01-02
作者: z0800 发布时间: 2009-01-16
作者: cnkiller 发布时间: 2009-01-16
作者: analyzer 发布时间: 2009-02-05
作者: cnkiller 发布时间: 2009-02-05
作者: E蜗牛 发布时间: 2009-02-06
作者: lilyef2000 发布时间: 2009-03-21



作者: xinxing520 发布时间: 2009-03-22
作者: 泪雪无恨 发布时间: 2009-03-23
作者: JOJ_97 发布时间: 2009-03-23
作者: kwlong2008 发布时间: 2009-03-24
作者: gone 发布时间: 2009-03-24
作者: 半个书生 发布时间: 2009-04-10
作者: strongability 发布时间: 2009-04-13
作者: guosubei333 发布时间: 2009-04-16
作者: z0800 发布时间: 2009-04-17
作者: 草名 发布时间: 2009-04-20
作者: smallhe 发布时间: 2009-04-23
作者: smartfoxbaby 发布时间: 2009-04-26
作者: e_zailai 发布时间: 2009-05-14
作者: Kevin-Lau 发布时间: 2009-11-18
作者: 落寞三少 发布时间: 2009-11-19
作者: davinciywf 发布时间: 2009-11-19
作者: sxxy515 发布时间: 2009-11-21
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28