discuz插件开发实例讲解

discuz插件开发实例讲解

ID:34722655

大小:96.18 KB

页数:8页

时间:2019-03-10

discuz插件开发实例讲解_第1页
discuz插件开发实例讲解_第2页
discuz插件开发实例讲解_第3页
discuz插件开发实例讲解_第4页
discuz插件开发实例讲解_第5页
资源描述:

《discuz插件开发实例讲解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Discuz!插件开发实例讲解作者简介:童虎,Discuz!论坛程序研发经理,负责Discuz!论坛程序研发团队的管理工作,曾是Discuz!早期插件作者,担任过Freediscuz插件区版主。曾开发过社区宠物、社区监狱、社区虚拟形象等多个Discuz!热门插件。论坛向社区化发展已经成为趋势,站长对网站的个性化需求越来越高,同时随着网站规模的扩大,站长对于一些特殊功能的需求也越来越多,Discuz!标准程序作为一个通用程序,从某种意义上讲很难满足所有站长个性化功能的需求,因此论坛插件就成为对标准程序最好的功能补充。从目前来看,正在做插件和想做插件

2、的人越来越多,从Discuz!官方论坛的统计数据大家就可以看出,目前插件区已经成为仅次于安装使用区之后的第二大版块。于此我们同时也发现许多希望开发插件的作者,有时候感觉插件开发很难上手,一定程度上也影响了插件的丰富性和多样性。特此,写这样一篇文章,谈不上有什么教育意义,只是给那些希望开发插件的朋友一块敲门砖,让更多的人成为一名插件作者,拿出你们的创意,让论坛更加丰富多彩。闲话少叙,书归正言,首先我们来介绍一些Discuz!插件从程序实现的方式,主要是分两种:第一种是利用已有的插件机制,这种机制官方有详细的开发文档,可以利用现有的一些接口和函数,按

3、照文档规定的文件以及目录结构,进行开发就可以了,这种方式是官方鼓励的开发方式,所开发的插件比较标准,在后台可以轻松管理并导入导出,利于插件的安装。但是这种方式需要插件作者看懂开发文档,严格按照开发文档做。个人感觉局限性相对而言比较大,不过推荐新手可以试试这种方式,毕竟这种方式插件方便插件使用者安装,相对而言比较利于插件的推广。第二种就是我这篇文章可能要重点推荐的,我称它为自由方式,这种方式需要插件作者对Discuz!程序相关接口和函数有一定了解。当然我会在下面的文章里面对一些常用函数做一个简单介绍。这种方式的好处就是在编写程序时候比较自由,不需要

4、像第一种那样需要放在规定的目录中,给插件作者发挥的余地更大。还有,就是这样写出的程序更像论坛程序的一部分,而不是一个插件,哈哈。不过这种方式编写的插件也有一定的缺陷,比如安装上面相对第一种方式比较繁琐,如果需要管理后台,还需要自己来编写。不过这些对于大家来说应该是小意思了吧,呵呵。下面我一步一步来介绍自由方式编写插件的过程,以及一些常用的函数和其用法。先强调一点,我这里所介绍的插件是有独立运行文件的,而不是那种只修改原文件。首先介绍一下插件的组成,一个普通的插件不管是小型的还是大型的,一般都会有一个主程序文件,作为Discuz!的插件,如果有独立

5、页面一般会有模板文件。当然随着插件功能增加可能还会有其他文件,比如后台管理文件、自定义函数文件等等。总的来说一个插件最低限度要有一个主程序PHP文件,基本上都会有一个主程序文件和模板文件。高级一些插件还会存在后台管理文件以及相关程序文件。文件存放目录,一般主程序会放在论坛根目录下,这样比较规范而且方便插件前台调用。模板目录一般放在templatesdefault目录下,这样即使更换风格也可以正常使用,因为Discuz!模板处理程序会有这样的一个机制:如果生成模板缓存的时候,当前模板目录下没有需要的模板文件,会自动到默认模板目录下获取,如果还没有才

6、会报错。所以作为插件的模板最好放在默认模板目录下。其他文件可以根据功能不同放在不同的目录下,比如说后台管理文件,一般会放在论坛根目录admin目录下,然后通过admincp.php里面调用,调用方法我会在后面说到。用的一些function之类的东西,可以写成一个文件放在include目录下,不过最好是单独建立一个目录放在里面,这样比较方便今后的拆卸。最后还有一部分文件,就是你页面中可能会用到的图片文件,这些图片文件一般放在images目录下,至于放在那里在这里我们就没有严格的要求了。说完了文件,下面简单介绍一下插件中对数据表的操作。对于插件而言实

7、际上是不希望对论坛的数据表进行修改的,特别是论坛的几个主要数据表:members、posts、threads,对这几个表如果修改的不恰当,很可能造成整个论坛系统性能的下降。为了防止给插件拆卸带来不便,所以我们在制作插件时候尽量避免对上面三个数据表的结构进行修改。如果非要修改,尽量能单独建立数据表,然后通过uid、pid、tid进行数据关联,当使用的时候再调用。退一步说如果非要在上述三个数据表里面添加字段,所添加的字段如果是字符类型必须是定长字段,例如char,如果是数字类型根据数值范围不同,尽量用tinyint、smallint、int,这样尽可

8、能不影响论坛效率。当然在实际使用中还有许多要注意的地方,鉴于文章的篇幅有限这里不做太多详细的说明,另外我会对插件数据库要注意的问题,单独

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。