必需至少具备如下技术:
1)可以或许理很好领略MVC构架的道理(固然DZ不是MVC架构的)
2)扎实的PHP基本,熟悉布局化措施,OOP措施的写法及应用
3)熟悉MYSQL就用,把握SQL语言,懂SQL优化者更佳
4)熟悉利用Discuz!的各项成果
Discuz!的文件系统目次
注:想搞DZ开拓,就得弄懂DZ中每个文件的成果。
a) Admin:靠山打点成果模块
b) Api:DZ系统与其它系统之间接口措施
c) Archiver:DZ中,用以搜索引擎优化的无图版
d) Attachments:DZ中 ,用户上传附件的存放目次
e) Customavatars:DZ中,用户自界说头像的目次
f) Forumdata:DZ缓存数据的存放目次
g) Images:DZ模板中的图片存放目次
h) Include:DZ常用函数库,根基成果模块目次
i) Ipdata:DZ统计IP来路用的数据
j) Plugins:DZ插件信息的存放目次
k) Templates:DZ模板文件的存放目次
l) Wap:DZ无线,Wap措施处理惩罚目次
二) 必需记熟Discuz!数据库设计的每个表的成果,每个表中每个字段的成果。
关于DZ数据库设计文档,请参阅DZ相关的项目
三) Discuz!的流程节制
a) 靠山流程控:DZ靠山所有的成果,均需要注册到admincp.php文件,每个成果都至少有一个或一个以上的Action(行动),在admincp.php中,可以界说Action的执行权限,别离为:“admin==1”打点员,或“admin==2 admin==3”超等版主和版主,每个Action对应一个剧本文件,剧本文件的定名为action.inc.php(*.inc.php),并存放在admin目次下,如执行:admincp.php?action=dodo,相当于执行admin目次下的dodo.inc.php文件
b) 前台流程节制:前台的流程节制较量简朴:流程是自由的,如:
首页:index.php
会员注册:register.php;
会员登录:logging.php
发贴措施:post.php
会员信息:member.php
论坛内容:forumdisplay.php
查察贴子:viewthread.php
…大部门成果,此处纷歧一列出…
c) DZ根目下的config.inc.php属于整个DZ系统的设置文件
四) Discuz!的数据处理惩罚进程
a) DZ对mysql的数据库操纵处理惩罚全部封装在dbstuff(db_mysql.class.php)类中
b) 地址的外部数据均通过“daddslashes()”劈头过滤,然后再过滤,再按照需要处理惩罚
五) Discuz!的显示节制(网站多样式气势气魄输出)
a)显示层就是各人凡是所看到的网站气势气魄了。DZ中每套风络别离在templates及images下对应一个气势气魄文件的存放目次。网站气势气魄的建造,请参阅具体的DZ气势气魄建造文档
b) DZ网站气势气魄文件处理惩罚的道理:其实很简朴,DZ利用template.func.php中的parse_template()以PHP正则运算把htm模文件中的模板标签,转换成了PHP代码,并按照styleid生存在forumdata/templates下,这个有点像Smarty中的技能。
六) DZ中的语言处理惩罚
a) 前台及靠山中、英语言的实现,均是把语句界说成了语变量,然后在模板输入,语句变量的赋值,均放在模板目次中的*.lang.php文件中,DZ在生成网站气势气魄时就加载了这相应的语言包。
七) DZ如那里理惩罚用户信息(存取、计较、更新进程)
新手要做二次开拓,都必需把握这数组中,每个数组元素的意义。
a) DZ的根基信息,如用户信息,Session信息存在如下变量中:
a). $_DCACHE
b). $_COOKIE
c). $_DCOOKIE
d). $_DSESSION
e). $_DPLUGIN
b) 可以通过print_r($GLOBALS),打印全部变量
八) DZ中缓存处理惩罚机制
a) DZ中缓存处理惩罚进程都放在“cache.func.php”中,DZ的缓存处理惩罚较量简朴,其道理是把一个数组转换成了PHP代码,并生存在缓存目次下,各人可打开缓存文件查察便知。
b) 利用要领:假如在新开的成果中,需要缓存某部门数据,根基上就是:
1)界说并注册缓存名字。
2)从数据读取相应的数据。
3)数据在写入缓存前作相应处理惩罚。
4)最后写入缓存。
详细操纵,可以看文件中的代码,做相应的修改即可
a) DZ独创的模板处理惩罚技能,雷同于Smarty中的模板处理惩罚,只是详细算法,进程差异,Smarty是一种重型模板引擎方案。其道理都是把模板中的变量转换成相应的PHP代码,这个进程实际是模访JAVA中的一次编译,多处运行。
十) DZ中权限处理惩罚机制
a) 对付DZ中前台的每相action都有$discuz_action界说,DZ按照用户地址的用户组来鉴定用户是否具有相应操纵$discuz_action的权限。至于靠山的权限权验证,则更简朴了,依据“admin==1”来确定的
十一) DZ中如何实现URL静态化
a) DZ中的静态有两法,只要懂ReWrite筹划的伴侣,一看就知。
十二) DZ独创的HTML编辑器,如何截取并利用,假如举办Discuz!代码和Html代码的转换
a) 这也算是DZ较量牛的一项技能了,在早期版中,因DZ编辑器的不敷,使得许多用户放弃了DZ。