怎么进行discuz的二次开发,第1张

必须至少具备如下技能:

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后台所有的功能,均需要注册到admincpphp文件,每个功能都至少有一个或一个以上的Action(动作),在

admincpphp中,可以定义Action的执行权限,分别为:“admin==1”管理员,或“admin==2

admin==3”超级版主和版主,每个Action对应一个脚本文件,脚本文件的命名为actionincphp(incphp),并存放在

admin目录下,如执行:admincpphpaction=dodo,相当于执行admin目录下的dodoincphp文件

b) 前台流程控制:前台的流程控制比较简单:流程是自由的,如:

首页:indexphp

会员注册:registerphp;

会员登录:loggingphp

发贴程序:postphp

会员信息:memberphp

论坛内容:forumdisplayphp

查看贴子:viewthreadphp

…大部分功能,此处不一一列出…

c) DZ根目下的configincphp属于整个DZ系统的配置文件

四) Discuz!的数据处理过程

a) DZ对mysql的数据库操作处理全部封装在dbstuff(db_mysqlclassphp)类中

b) 所在的外部数据均通过“daddslashes()”初步过滤,然后再过滤,再根据需要处理

五) Discuz!的显示控制(网站多样式风格输出)

a) 显示层就是大家通常所看到的网站风格了。DZ中每套风络分别在templates及images下对应一个风格文件的存放目录。网站风格的制作,请参阅详细的DZ风格制作文档

b) DZ网站风格文件处理的原理:其实很简单,DZ使用templatefuncphp中的parse_template()以PHP正则运算把htm模

文件中的模板标签,转换成了PHP代码,并根据styleid保存在forumdata/templates下,这个有点像Smarty中的技术。

六) DZ中的语言处理

a) 前台及后台中、英语言的实现,均是把语句定义成了语变量,然后在模板输入,语句变量的赋值,均放在模板目录中的langphp文件中,DZ在生成网站风格时就加载了这相应的语言包。

七) DZ如何处理用户信息(存取、计算、更新过程)

新手要做二次开发,都必须掌握这数组中,每个数组元素的意义。

a) DZ的基本信息,如用户信息,Session信息存在如下变量中:

a) $_DCACHE

b) $_COOKIE

c) $_DCOOKIE

d) $_DSESSION

e) $_DPLUGIN

b) 可以通过print_r($GLOBALS),打印全部变量

八) DZ中缓存处理机制

a) DZ中缓存处理过程都放在“cachefuncphp”中,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代码

1、首先,利用Discuz管理权限账户登入Discuz论坛管理后台。

2、然后,进入管理后台的管理中心。

3、接着,依次点击“站长”,“数据库”,并提交数据库备份申请,备份类型选择默认就好了。

4、然后,等待系统把所有数据都备份完成。

5、接着,系统会提示已经完成所有的备份请求,从备份完后的提示,可以看出,备份文件在网站根目录的data目录下面,数据库文件都在back_23d619这个文件夹下面。

discuz考虑到系统的安全,查看密码肯定是无法做到的,只能修改密码,discuz修改密码的步骤如下

1、找到所需要修改密码的用户 需要修改密码肯定首先要找到discuz下的该用户,进入后台,单击“用户”,再单击“用户管理”

discuz用户管理

此时,可以在“用户名”和“用户UID”中输入你要修改用户名密码的用户名称,然后单击“搜索”

2、填写修改的密码 单击“搜索”之后,会出现用户列表。在用户列表中单击“详情”链接

用户详情页面

在用户明细页面中,在“新密码”中填写修改后的密码,单击“提交”,即完成了discuz用户名密码的修改。

Dz动力也就是discuz是我们常用的社区论坛程序,当前是腾讯旗下,其功能比较完善,对搜索引擎的优化液比较友好,但是人无完人,程序也并非完美的,存在一些瑕疵,因此我们想办法去掉这些瑕疵就可以了。

1、 主导航条上面的

2、 Logo链接的网址

3、 主页面包屑

4、 列表页面包屑

5、 内容页面包屑

一、解决主导航的forumphp尾巴问题,通过后台管理即可解决

如果你只用的discuz的论坛功能,并且用的是一级域名或者二级域名,方法如下:

1、登陆后台—》全局—》域名设置—》应用域名,修改默认为你的论坛主页的地址。

2、登陆后台—》界面—》导航设置—》主导航—》增加一个论坛的导航,地址写你论坛主页的链接地址

去除首页和版块页面次导航位置的forumphp是同一个操作

打开template\default\forum\discuzhtm,查找”forumphp” 找到第19行,把<a href=’”forumphp”修改为<a href=””

去除列表页次导航位置的forumphp

打开template\default\forum\forumdisplayhtm,查找”forumphp” 找到第10行、184行,把

<a href=’”forumphp”修改为<a href=””

去除内容页次导航位置的forumphp

打开template\default\forum\viewthreadhtm,查找”forumphp” 找到第15行,把

这样,论坛所有的forumphp的尾巴就全部去除了

是disucz的简洁版的界面,也是为了提高搜索引擎收录的一个功能,类似于网站地图,给你几个光放讨论archiver的话题。

PS:我专门回答discuz问题的哈,你可以看看我的回答记录。

1archiver不是给人看的,是给搜索引擎看的。

2discuz!论坛搜索引擎优化之:Archiver的是是非非

Archiver在discuz优化中是否使用,很多人以部分搜索引擎收录Archiver页面多排名好为依据支持。但Archiver为什么排名好,有哪些优点,又有哪些缺点?在对discuz全面优化后,是不是应该禁止Archiver?

原文:discuz!论坛搜索引擎优化之:Archiver的是是非非 by SEO小工,首发顺义区教育信息网首页。请保留版权信息。

Archiver页面的优势

1URL简单唯一:不用伪静态的情况下,正常页面的URL也不复杂,但是还有打印页,跳转页等各情形式的URL;而Archiver的URL总是简单唯一,利于索引。(请看google的动态地址与静态地址了解伪静态信息)

2页面干净,信噪比高:这是显而易见的,也是最重要的优点,archiver几乎只保留了正文内容。因此与正常页面的各种URL形式比较,被SE选为权重高的页面,而把其它的做为复制内容剔除很正常。

Archiver页面SEO的不足

1简单过头,基本优化不足:如:keyword,description都是相同的;内容中不解析UBB代码,所以使正常的加粗、链接失去作用;

2不合习惯,失去链接优势:因为不解析UBB代码,用户友好性差,可能都会切到正常页面阅读,因此可能别人在做链接的时候也不会链到Archiver页面,失去了链接;同样站内的链接因为不解析UBB也失效了。

综合优化设置及Archiver优化建议

在没有对discuz时行优化修改情况下,我想还是很难取舍的,但如果对discuz进行全面的优化,使正常页面具有Archiver优势(页面对游客简化,毕掉其它URL形式),而没有它的缺点,这时效果是最佳的,当然不用开启Archiver了。

Archiver优化建议:全面优化后不需要archiver,只做简单讨论,以discuz70为例:

1删除meta标签:将archiver/indexphp文件最后的keyword和descirpton标签删除。

2解析UBB标签:在archiver/include/threadincphp文件里找到$post['message'] = preg_replace("/\<br \/\>/e", "jammer()", $post['message']); 其中$post['message']就是要显示的主要内容,可以用正则表达式对b,url等UBB标签进行替换。 

这个还有几个帖子,你可以看看:

http://wwwdiscuznet/viewthreadphptid=1081644&amp;highlight=archiver

方法/步骤

1

用FTP连接你的空间,依次打开程序中的/template/default/common文件夹,在common文件夹中找到一个文件header_commonhtm

2

下载保存到你的电脑桌面,用记事本打开它,然后在第七行,你会发现有一个后缀Powered by Discuz!,你只需要填入自己想要的标题,替换掉Powered by Discuz!即可,一般填入的称为副标题,可以是“首页”等字样。

3

一般我们用记事本打开的话,默认是GBK(GB2312)版本的,当你修改完毕后,点击保存,那么它默认就是GBK版本,如果你的网站是UTF-8版本,当你用记事本修改完毕上传覆盖的话,会导致你的网站打不开。

那么在修改前,我们先查询自己的网站是哪种代码

进入首页,右键单击空白处,选择 查看网页源代码

你就会看到自己的网站是那种编码,如果是GBK,那么直接修改好后保存,用FTP上传修改过的文件到空间覆盖掉原来的文件即可

4

如果你的是UTF-8的,那么修改完毕后,点击记事本中的 文件-另存为

就会出现一个对话框,按照下图选择后保存即可,然后把保存下来的文件上传到原来文件存在的地方覆盖掉,自此,后缀没了,网站清爽了许多

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 怎么进行discuz的二次开发

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情