虽然没有弄过Discuz ,不过想一想也就那么一回事,除了几个封装好的核心文件,也就没有其他的了,然后就是调用了,小涛今天分享一下Discuz 的一些基本知识,对 Discuz!程序和执行进行简要分析,供所有 对 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 较重要
要想对Discuz 进行二次开发,明白了这些基本知识,分析起来就简单了,关键在于Discuz 的开发思想和流程!
技术分享,技术交流,小涛与您共同成长……