首页编程discuz二次开发?怎么进行discuz的二次开发

discuz二次开发?怎么进行discuz的二次开发

编程之家2023-11-0675次浏览

你是否想了解更多关于discuz二次开发和怎么进行discuz的二次开发的知识?在本文中,小编将为您详细介绍这两个话题,帮助您更好地理解。

discuz二次开发?怎么进行discuz的二次开发

discuz怎么对外提供接口

插件或独立的api都可以,你可以看看api\trade里的文件,最好的例子,这些是支付相关的回调接口

里面的大部分接口不是提供第三方应用调用的。除了JS调用外,其余大多数是腾讯接口

从 Discuz! 4.0.0 RC4版本开始,Discuz!内嵌了一个独特的 Passport(通行证)接口,利用此接口,用户将很容易将论坛与其他应用程序整合,而实现统一登录与退出、用户数据共享、积分同步等功能。可以整合的应用程序包括内容管理系统(CMS)、商城系统、游戏系统等等,如您对这方面功能有兴趣或有需求,请继续阅读本文档。

Discuz! Passport的优点

Discuz! Passport系统使用了 Discuz!独有的技术,并不等同于以往使用过的一些方法,与传统的实现方式相比,具备(不限于)以下优势:

基于私有密匙的低相关性可逆加密算法,配合 MD5校检码技术,使得暴力破解或伪造几乎不可能。

discuz二次开发?怎么进行discuz的二次开发

应用程序可与论坛放置于不同的服务器及不同的域名下。可基于不同操作系统、不同程序语言和不同数据库平台,具备真正的平台无关性。

不需要任何形式的数据库连接、或强制把两套应用程序的数据放在同一数据库甚至同一数据表中。论坛与应用程序都有各自的用户数据表,只是在需要时进行无缝同步操作。

对应用程序的代码改动简便易行,可最快速的完成应用程序与论坛间的整合。

Discuz! Passport的局限

您在开始利用 Discuz! Passport进行二次开发时,需要了解这个系统的局限性,以对未来的工作进行正确的评估与安排。

只能工作在用户密码不加密、可逆加密或 MD5加密的情况下,否则论坛后台无法登录。

discuz二次开发?怎么进行discuz的二次开发

只能与一种应用程序关联,即二方关联。不能实现三方关联或与更多的应用程序进行关联。

应用程序需具有独立的注册、登录、退出页面和链接,否则需要自行修改论坛中的相应表单或程序。

由于论坛的注册人数可能很多,例如百万级以上,且应用程序和论坛间的用户数据是同步的,因此要求应用程序能够稳定的负载大量用户的访问。

怎么进行discuz的二次开发

必须至少具备如下技能:

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)最后写入缓存。

具体操作,可以看文件中的代码,做相应的修改即可

九) DZ中模板处理机制

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。

实现原理:通过JS把用的一些操作转换成了DZ的bbcode代码。这样子提交了安全性,将带有bbcode代码的内容存入数据,在用户打开页页时,又把bbcode代码转换成html代码

discuz和phpwind哪个二次开发起来更简单

个人认为还是要看具体的情况而定。

假设地方网站是一个以社区为中心的网站:

1、Discuz!X和Phpwind用做社区都适合。

2、如果现在已经选择了其中一个产品,并运营了一段时间,有一定的会员数和数据,建议就继续使用现在的论坛。他们没有本质区别,且转换程序容易出现BUG,折腾不起。

3、Discuz更容易找到解决技术问题的答案,对不懂技术的站长会更轻松一些。

4、二次开发难度相当,个人圈子里面php程序员更熟悉discuz!X

假设是以地方门户概念为中心的网站

1、Discuz!X和Phpwind本身都不适合干这事,需要一个更专业的CMS系统(例如PHPCMS)。

2、目前主流的CMS系统也是采用PHP+MYSQL的,与Discuz!X或Phpwind都可以很好整合。

假设要做电子商务:

1、Discuz!X和Phpwind本身都不适合干这事,需要一个更专业的产品。(例如shopex)。2、假设需要在电子商务系统上面扩展论坛,首选Php的产品,以便与Discuz!X或Phpwind整合。假设要做地方版微博、地方版“携程”、地方版“大众点评”1、两个产品都木办法直接做。2、可以在两个产品的基本模块上二次开发,难度和从零开发新网站一样。

非常感谢您的阅读!我们希望本文对于解决您关于discuz二次开发和怎么进行discuz的二次开发的问题提供了一些有价值的信息。如果您还有其他疑问,我们将很乐意为您提供进一步的帮助。

淘宝关键词优化?淘宝卖家关键词优化方法有哪些织梦仿站(怎么用织梦仿站)