怎么进行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代码

Discuz!为方便用户备份和恢复数据库,已在后台内置了此功能,易于站长操作。今天在这分享一下Discuz! x25论坛后台数据库的备份和恢复方法,以及备份数据库和恢复数据库要注意的一些细节问题。 一、利用Discuz!后台备份数据库 1、为备份数据完整无误,备份数据前请站长先关闭站点; 2、利用站长权限登录后台——》站长——》数据库——》备份,有两个基本的数据备份类型:“Discuz! 和 UCenter 数据” 和 “自定义备份”; 1)、选择“Discuz! 和 UCenter 数据”,会备份你Discuz!数据库的所有数据表文件;(包括插件等生成的数据表) 2)、选择“自定义备份”,按照要求勾选你要备份的数据表即可。 3、“提交”旁边有一个“更多选项”,用户可以根据自己的需求来设置一下更多选项,不是很懂的用户可以不必点开更多选项设置,保持Discuz!设置的默认值就可以了;下面分析一下更多选项的技巧提示: 1)、MySQL Dump 的速度比 Discuz! 分卷备份快很多,但需要服务器支持相关的 Shell 权限,同时由于 MySQL 本身的兼容性问题,通常进行备份和恢复的服务器应当具有相同或相近的版本号才能顺利进行。因此 MySQL Dump 是有风险的:一旦进行备份或恢复操作的服务器其中之一禁止了 Shell,或由于版本兼容性问题导致导入失败,您将无法使用 MySQL Dump 备份或由备份数据恢复;Discuz! 分卷备份没有此限制; 2)、数据备份选项中的设置,仅供高级用户的特殊用途使用,当您尚未对数据库做全面细致的了解之前,请使用默认参数备份,否则将导致备份数据错误等严重问题; 3)、十六进制方式可以保证备份数据的完整性,但是备份文件会占用更多的空间; 4)、压缩备份文件可以让您的备份文件占用更小的空间。 4、上面选好“数据备份类型”,点击提交就可以开始备份了,备份的数据文件会保存在站点根目录下的data目录的一个backup_XXXXXX文件夹里; 5、备份完数据库后即可重新打开站点。 二、利用Discuz!后台恢复数据库 1、为恢复数据完整无误,恢复数据前请站长先关闭站点; 2、利用站长权限登录后台——》站长——》数据库——》恢复,会看到你各次的数据备份记录,并且有备份时间、备份数据类型等; 3、上传恢复数据库必须的restorephp文件; 1)、恢复数据前请在 Discuz! X25 安装文件目录下utility文件夹内找到 restorephp 文件,然后将 restorephp 文件上传到程序文件夹data目录下; 2)、如果你恢复过数据库,会在根目录生成/data/restorelock文件,恢复数据功能锁定,如果您确定要恢复数据,请到服务器上删除/data/restorelock。

Discuz! 始终致力于开发最优化的算法和数据结构,从事 PHP与MySQL的开发的过程中,我们力求每行代码都充分发挥开发工具的效率优势, Discuz! 是一个挑战 PHP 应用极限的应用程序。

Discuz! 开发组具有丰富的 cache 处理经验,早在 Discuz! 20 开始即内建了包含从系统设定到模板机制在内的PHP语法生成内核,此内核可直接生成程序格式的缓存,cache 技术的广泛应用使得 Discuz! 的代码效率再上新的台阶。

Discuz! 中包含了众多独创或独有的处理方法,使得 Discuz! 可以轻松承受比其他类似产品更多的贴子数量和在线人数,成为最高效快速的论坛产品之一。在实现同样功能的前提下,Discuz! 力争占用数据库资源最小,页面处理时间最短。在一台配置良好的 P4 级 UNIX 主机上,100 万贴论坛平均页面处理时间不超过 003 秒(搜索除外),页面平均数据库查询数不超过 5 个,最大承载在线人数超过 5000 人,如果构建 Web 和数据库分离的双机系统,负载能力和速度都将获得更大的提升。 Discuz! 全部版本都使用模板与程序分离的方式构建,Disucz! 是最早也是最彻底的使用编译模板系统构建的商业化产品,该核心由北京康盛创想(北京)科技有限公司独立开发,与传统的模板技术相比更快捷,内容修改也更容易,随着 Discuz! 系列软件应用的普及,必将引起一股编译模板技术应用的高潮。

依赖于 Discuz! 独有的编译模板体系,全部提示信息,均在完全不影响程序效率的前提下,用语言包实现。自 20 以来,彻底支持多模板,多语言和多风格。每个模板可使用不同的语言界面,不同的内码设定和不同的风格设置,模板可在线编辑,也可通过 FTP 直接上传,给界面定制带来了前所未有的方便。不懂 html 的新手通过风格设置的修改,或设计高手手工修改模板,都可实现论坛外观的完全定制。 康盛创想(北京)科技有限公司

康盛创想(北京)科技有限公司是中国最大的互联网社区软件及服务提供商。公司位于北京中关村上地高科技园区,英文简称 Comsenz Inc,是一家拥有自主知识产权的互联网软件企业,被北京市科委授予高科技企业称号。

Comsenz 长期专注于互联网社区软件及应用技术解决方案的开发和经营,公司拥有国内最大的专业社区技术开发团队。公司核心社区论坛(BBS)软件产品Discuz! Board(中国国家版权局著作权登记号 2006SR11895)拥有五年以上的应用发展历史,是全球最知名的 PHP 社区 BBS 软件之一,也是国内用户量最大,覆盖面最广的社区 BBS 软件。作为一套成熟的社区论坛解决方案,Discuz! Board 提供了互联网上最主流的 BBS 技术功能以及最流行的社区应用元素。

截止2012年6月,全球已有200余万家独立网站(社区)采用 Discuz! 软件或核心技术建立自身的论坛 BBS 系统,而 Discuz! 所建立的 BBS 应用体系模型已成为中国互联网接受度最高的社区用户习惯标准之一。

作为专业的社区软件及服务提供商,Comsenz 公司也在随着社区需求的扩展而推出相应的软件系统。依托于 Discuz! 形成的良好市场基础,公司还推出了基于 Web20 理念应用的X-Space社区个人门户系统(即社区博客系统)和 SupeSite 社区门户聚合系统,形成了一套完整的社区软件系统平台,为广大网站提供了低成本、高扩展性的社区技术解决方案。

基于多年来在中国互联网社区领域的成熟经验和影响力,Comsenz 公司在 2006 年获得了华尔街顶级风险投资商红杉基金(Sequoia Capital)的注资,而 Comsenz 将以雄厚的技术研发实力为后盾,向中国互联网产业输出源源不断的“社区动力”,帮助每个网站建立自己的社区,帮助每个社区步入 Web 20,与中国企业和网民共同成长。

公司与全球领先的PHP技术领导者 Zend Technologies Ltd 拥有良好的合作关系,是 Zend 在中国的首批合作伙伴之一。

2010年8月23日,康盛创想被腾讯收购。

Discuz 是一款由PHP编写的开源论坛

Discuz 官方论坛: https://wwwdiscuznet/forumphp

要爬取的页面地址:

Discuz BUG与问题交流板块; https://wwwdiscuznet/forum-70-1html

应该打开创建项目命令生成的那个目录 如果选择再下层目录 就不能导模块了

遍历帖子列表

时间信息同样有两种状态 第二种带有 "发表于 " 字样

存储

列表遍历完成

获取下一页的url 定义一个类的变量来记录页数

结果存在datajson中

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

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情