大家好,小城来为大家解答以上问题。discuz二次开发文档,discuz二次开发很多人还不知道,现在让我们一起来看看吧!
1、1) Discuz!a) Admin:后台管理功能模块的文件系统目录b)API:DZ系统与其他系统的接口程序c) Archiver: DZ,用于搜索引擎优化的无图版d) Attachments: DZ,用户上传的附件的存储目录e) CustomAvatars: DZ,用户自定义的头像的目录f)Forumdata:DZ缓存数据的存储目录g)Images:DZ模板中图片的存储目录h)包含:DZ常用函数库, 基本功能模块目录i) IPDATA:用于IP路由的DZ统计数据j)Plugins:DZ插件信息的存储目录k)Templates:DZ模板文件的存储目录l) Wap: DZ wireless。
2、2) Discuz一定要背!数据库设计中各表的作用,以及各表中各字段的作用。DZ数据库设计文档,请参考DZ相关项目文档(请从本帖附件下载)。
3、3) Discuz!a)后台进程控制:DZ后台的所有函数都需要在admincp.php文件中注册,每个函数至少有一个或多个动作。在admincp.php,你可以定义动作的执行权限,即" admin==1 "的管理员。或者“admin==2 ||admin==3”超级版主和版主,每个动作对应一个脚本文件,命名为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系统的配置文件。
4、4) Discuz!A) DZ对mysql的数据库操作都封装在dbstuff(db_mysql.class.php)类中。b)DZ所在的外部数据首先通过“daddslashes()”进行过滤,然后根据需要进行过滤和处理。
5、5) Discuz!显示控件(网站多样式样式输出)a)显示层就是大家平时看到的网站样式。DZ中的每一组风网分别对应模板和图像下的一个样式文件的存储目录。网站风格的制作请参考详细的DZ风格制作文档b)DZ网站风格文件处理原理:其实很简单。DZ使用template.func.php的parse_template()通过PHP正则操作将htm模块文件中的template标签转换成PHP代码,并根据styleid保存在forumdata/templates中,有点像Smarty中的技术。
6、6)DZ中的语言处理A)DZ中英文前台后台的实现是将句子定义为语言变量,然后输入模板,将模板目录下的*.lang.php文件中的句子变量赋值。DZ在生成网站样式时加载相应的语言包。
7、7)DZ如何处理用户信息(访问、计算、更新过程)新手要想做二次开发,必须掌握这个数组中每个数组元素的含义。a)DZ的基本信息,如用户信息,会话信息存在于以下变量中:a)。$ _ dccheb)。$ _ cookiec)。$ _ dcooked)。$ _ dsessione)。$ _ dpluginb)所有变量都可以通过print_r($GLOBALS)打印。
8、8)DZ中的缓存处理机制A)DZ中的缓存处理过程放在“cache.func.php”中。DZ中的缓存处理相对简单。它的原理是将一个数组转换成PHP代码,保存在缓存目录中。您可以打开缓存文件来查看它。b)用法:如果在新开通的函数中需要缓存某部分数据,基本上是:1)定义并注册缓存名。2)从数据中读取相应的数据。3)数据在写入缓存之前应进行相应的处理。4)最后,写入缓存。具体操作,可以看看文件里的代码,做相应的修改。
9、9)DZ中的模板处理机制A)DZ中原有的模板处理技术和Smarty中的类似,只是具体的算法和流程不同。Smarty是一个很重的模板引擎方案。原理是将模板中的变量转换成相应的PHP代码。这个过程其实就是JAVA里的一个编译,很多地方都在运行。
10、x)DZ中的权限处理机制a)DZ中前台的每个动作都有一个$discuz_action的定义,DZ根据用户所属的用户组判断用户是否有相应的权限操作$discuz_action。至于后台权限验证,更简单,按照“admin==1”确定。
11、XI)如何在DZ中实现URL静态化A)DZ中有两种静态化的方法。只要知道重写策划,一看就知道。
12、XII) DZ的原HTML编辑器,如何截取使用,如果Discuz!生成和Html代码转换a)这是DZ比较好的技术之一。在早期版本中,因为DZ编辑器的短缺,很多用户放弃了DZ。实现原理:使用的一些操作通过JS转换成DZ的bbcode代码。这样就提交了安全性,将带有bbcode代码的内容存储在数据中,当用户打开页面时,将bbcode代码转换为html代码。
本文到此结束,希望对大家有所帮助。