discuz是一个开源软件,我们是使用这个软件做论坛管理的,简单介绍一下discuz的代码的一个组织架构,供需要的人拿去参考。。。
1.discuz目录结构的
目录结构:
/api uc.php UCenter通信文件 /api/addons应用中心 /api/connect腾讯互联 /api/googleGoogle引擎接口处理 /api/javascript数据和广告的 JS调用 /api/manyoumanyou应用及搜索等相关服务 /api/remote远程更新? /api/trade支付宝、财付通等交易接口 /archiver论坛Archiver静态化 /config程序配置文件 config_global.php论坛核心参数配置文件 config_ucenter.phpUCenter核心参数配置文件 config_global_default.php论坛核心参数配置文件(例子) config_ucenter_default.phpUCenter核心参数配置文件(例子) /data附件数据、数据库与文件缓存 /install安装程序 /source/ 程序模块功能处理目录 /discuz_version.php 程序版本号存放文件 /source/admincp 后台管理查看该目录文件标注 /source/archiver论坛Archiver静态化程序目录查看该目录文件标注 /source/include程序功能处理目录查看该目录文件标注 /source/language程序语言包(如不清楚,请打开各个文件查看)查看该目录文件标注 /source/module程序功能模块程序包查看该目录文件标注 /source/plugin插件程序扩展目录查看该目录文件标注 /source/functionDX自定义函数库查看该目录文件标注 /source/class核心类库查看该目录文件标注 /template模板目录查看该目录文件标注 /uc_client UCenter客户端 /uc_server UCenter服务端 /static程序界面元素附件存放目录 根目录文件 admin.php后台入口文件 api.php合作API输出 archiver论坛Archiver阅读模式(无图版) connect.php云平台接口文件 cp.php多应用服务入口文件(加载userapp.php) crossdomain.xml favicon.ico站点ICO图标 forum.php论坛频道入口文件 group.php群组频道入口文件 home.php家园频道入口文件 index.php首页 member.php用户入口文件(登录、注册、退出等) misc.php程序杂项扩展入口 plugin.php插件入口文件 portal.php门户入口文件 robots.txt搜索引擎限制文件 search.php搜索频道入口 userapp.php多应用服务入口文件
2.代码流程结构分析
首先nginx里要配置首页 和每个版块写的路由
首页默认路由到 index.php
搜索页面路由到 search.php
个人中心路由到 home.php
论坛后台路由到 admin.php
版块页面路由到 forum.php
这些文件里面都有require_once './source/class/class_core.php';该文件是对conf下的配置文件的调用,连接数据库、检查登录状态、获取登录人的信息、获取discuz的缓存数据表数据等等,下面这些代码就是一个初始化的过程:(具体里面的操作感兴趣自己去一探究竟吧)
C::app()->cachelist = $cachelist;
C::app()->init();
loadforum();
set_rssauth();
runhooks();
入口函数做了初始化之后还会根据url参数将任务分发出去,
拿forum.php为例,根据mod参数 加载require DISCUZ_ROOT.'./source/module/forum/forum_'.$mod.'.php';
forum.php (初始化) ----> source (处理) ------> template (页面展示)
相当于 mvc层逻辑
=============但是discuz最核心的处理模块在source目录下面==========================
source的代码结构见下面附件图片1
1.source/class 数据库表操作
C::t('forum_forum')->fetch($_G['fid']);改功能是数据库操作,相当于获取板块信息 具体数据库代码在source/class/table/table_forum_forum.php下面的fetch函数或者父类里面
2.source/include 程序功能处理目录
该模块根据功能进行划分
加载形式例如:require_once libfile('post/newthread', 'include');
该模块负责处理发帖任务
3.source/function 自定义函数库
该模块具有全局性,不属于某一个专用模块
加载形式例如:include template('diy:forum/viewthread'.$sufix.':'.$_G['fid']);
当所有功能处理完要加载html页面时会执行上面这句话,template函数在function_core.php里,根据参数判断要加载页面信息。
4.source/language程序语言包
function_core.php 下lang()函数根据传过来的参数找到对应的值
5.source/plugin插件程序扩展目录
api的请求,每次金币等等后期discuz或者其他人写的代码都可以以插件形式放在这里
Discuz后台工作原理
admin.php :是后台管理的入口文件, 主要做了两件事,分别是:初始化、主处理
根据参数action 分发任务
1.如果action 不存在 调用$admincp->show_admincp_main();
跳转到了require './source/admincp/admincp_main.php';
2.如果action存在, return './source/admincp/admincp_'.$action.'.php';
相关推荐
discuz使用说明,全面介绍了的discuz的使用功能,大家可以轻易使用discuz
Discuz!NT用户使用手册 Discuz!NT用户使用手册
利用discuz的用户中心,实现 thinkphp 和discuz 同步登陆/退出/注册等
discuz 搭建论坛 apache mysql php 有需要这些工具的 留言给我
discuz论坛开源使用比较广泛的论坛代码。
Discuz!NT使用说明和使用实例,包含了完整的说明文档和Discuz!NT的标准论坛
Discuz7.2 使用说明书,里面包含了Discuz7.2详细的使用方法和说明,欢迎你的下载
Discuz!6.0用户手册,Discuz使用的参考手册,基础安装要点,升级、使用、 工具、模板,开发
discuz是目前比较流行的论坛开源系统,希望您通过本教程的学习,能学会discuz常用方法和技巧。教程从discuz基础知识开始讲解一直到后期的案例实战,完全零基础学习,从初学者的角度探讨分析问题,循序渐进由易到难,...
Discuz X1.5使用手册,自己总结的,希望有用
最新的Discuz应用程序结构图,研究学习使用。
Discuz! -tools工具 (适用x2.5 x3.0 x3.1 x3.2 x3.4 )删除未使用图片附件等功能 一个dz的急救箱程序 很给你 可重制密码 修复数据库等操作
软件的安装使用、管理技巧、二次开发,二次开发等,以及一些前瞻性的应用,如站长们比较关心的社区电子支付、社区搜索、论坛消费积分、悬赏问答等,手把手地教您掌握Discuz!论坛软件的下载、安装、使用、修改等。 ...
Discuz php 版 帮助文档。前后台使用手册、 支持原创 http://faq.comsenz.com/library/x3/index.html 不过他是epub文件类型,我这边转了格式。
~ ... 类似的代码登录; 完全脱离discuz程序; 获取discuz登录信息程序... 也可以独立使用注释明确。 3、感谢我自己supFire, 希望大家得到启示, 写出更好的文件共享出来, 也可以写出类似的discuzNT登录整合代码。
Discuz!7.2用户手册..................
前言:为方便互联网数万Discuz!爱好者,更加深入了解Discuz!软件,本人在熟悉Discuz!过程中,顺便将个人经验写给大家。本贴内容由本 人定期更新。...4) 熟悉使用Discuz!的各项功能 一) Discuz!的文件系统目录
用于商业用途,同时我们不承诺提供任何使用担保和技术支持,详情请访问 http://www.discuz.com/?category=5<br><br>Discuz! 3.0F将不再发布后续版本,相关团队、技术及产品均将合并入Discuz!官方团队中来,请期待...
Discuz!_7.2使用详细说明.给有需要的看看,里面讲解的很详细!
Discuz! X2.5新版本推出四大新体系:新社区形态、新技术体系、新门户系统以及新移动化体验,其中新门户系统主要从内容推送、图片裁切、模块管理等角度进行了深度优化,拟帮助站长和编辑更加省时省力地运维网站,提高...