- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Discuz插件开发实例讲解
Discuz! 插件开发实例讲解
作者简介:童虎,Discuz!论坛程序研发经理,负责Discuz!论坛程序研发团队的管理工作,曾是Discuz!早期插件作者,担任过Freediscuz插件区版主。 曾开发过社区宠物、社区监狱、社区虚拟形象等多个Discuz!热门插件。
论坛向社区化发展已经成为趋势,站长对网站的个性化需求越来越高,同时随着网站规模的扩大,站长对于一些特殊功能的需求也越来越多, Discuz! 标准程序作为一个通用程序,从某种意义上讲很难满足所有站长个性化功能的需求,因此论坛插件就成为对标准程序最好的功能补充。
从目前来看,正在做插件和想做插件的人越来越多,从Discuz!官方论坛的统计数据大家就可以看出,目前插件区已经成为仅次于安装使用区之后的第二大版块。于此我们同时也发现许多希望开发插件的作者,有时候感觉插件开发很难上手,一定程度上也影响了插件的丰富性和多样性。特此,写这样一篇文章,谈不上有什么教育意义,只是给那些希望开发插件的朋友一块敲门砖,让更多的人成为一名插件作者,拿出你们的创意,让论坛更加丰富多彩。
闲话少叙,书归正言,首先我们来介绍一些Discuz!插件从程序实现的方式,主要是分两种:
第一种是利用已有的插件机制,这种机制官方有详细的开发文档,可以利用现有的一些接口和函数,按照文档规定的文件以及目录结构,进行开发就可以了,这种方式是官方鼓励的开发方式,所开发的插件比较标准,在后台可以轻松管理并导入导出,利于插件的安装。 但是这种方式需要插件作者看懂开发文档,严格按照开发文档做。个人感觉局限性相对而言比较大,不过推荐新手可以试试这种方式,毕竟这种方式插件方便插件使用者安装,相对而言比较利于插件的推广。
第二种就是我这篇文章可能要重点推荐的,我称它为自由方式,这种方式需要插件作者对 Discuz! 程序相关接口和函数有一定了解。当然我会在下面的文章里面对一些常用函数做一个简单介绍。这种方式的好处就是在编写程序时候比较自由,不需要像第一种那样需要放在规定的目录中,给插件作者发挥的余地更大。还有,就是这样写出的程序更像论坛程序的一部分,而不是一个插件???哈哈。不过这种方式编写的插件也有一定的缺陷,比如安装上面相对第一种方式比较繁琐,如果需要管理后台,还需要自己来编写。不过这些对于大家来说应该是小意思了吧,呵呵。
下面我一步一步来介绍自由方式编写插件的过程,以及一些常用的函数和其用法。先强调一点,我这里所介绍的插件是有独立运行文件的,而不是那种只修改原文件。
首先介绍一下插件的组成,一个普通的插件不管是小型的还是大型的,一般都会有一个主程序文件,作为 Discuz! 的插件,如果有独立页面一般会有模板文件。当然随着插件功能增加可能还会有其他文件,比如后台管理文件、自定义函数文件等等。总的来说一个插件最低限度要有一个主程序 PHP 文件,基本上都会有一个主程序文件和模板文件。高级一些插件还会存在后台管理文件以及相关程序文件。
文件存放目录,一般主程序会放在论坛根目录下,这样比较规范而且方便插件前台调用。模板目录一般放在 templatesdefault 目录下,这样即使更换风格也可以正常使用,因为 Discuz! 模板处理程序会有这样的一个机制:如果生成模板缓存的时候,当前模板目录下没有需要的模板文件,会自动到默认模板目录下获取,如果还没有才会报错。所以作为插件的模板最好放在默认模板目录下。
其他文件可以根据功能不同放在不同的目录下,比如说后台管理文件,一般会放在论坛根目录 admin 目录下,然后通过 admincp.php 里面调用,调用方法我会在后面说到。用的一些 function 之类的东西,可以写成一个文件放在 include 目录下,不过最好是单独建立一个目录放在里面,这样比较方便今后的拆卸。
最后还有一部分文件,就是你页面中可能会用到的图片文件,这些图片文件一般放在images 目录下,至于放在那里在这里我们就没有严格的要求了。
说完了文件,下面简单介绍一下插件中对数据表的操作。对于插件而言实际上是不希望对论坛的数据表进行修改的,特别是论坛的几个主要数据表:members、 posts、threads,对这几个表如果修改的不恰当,很可能造成整个论坛系统性能的下降。为了防止给插件拆卸带来不便,所以我们在制作插件时候尽量避免对上面三个数据表的结构进行修改。如果非要修改,尽量能单独建立数据表,然后通过 uid 、 pid 、 tid 进行数据关联,当使用的时候再调用。
退一步说如果非要在上述三个数据表里面添加字段,所添加的字段如果是字符类型必须是定长字段,例如 char ,如果是数字类型根据数值范围不同,尽量用 tinyint 、 smallint 、int ,这样尽可能不影响论坛效率。当然在实际使
您可能关注的文档
- arduino学习笔记9光控LED实验.doc
- ASNZS22081996澳大利亚新西兰标准建筑用安全玻璃材料.doc
- AQT80102013建设项目职业病危害控制效果评价导则.doc
- ATX电源标准简介.doc
- asm-毕业论文2.doc
- Authorware实例6变量函数和表达式.doc
- ATA电算化考试操作步骤.doc
- AT89C51单片机智能风扇--2012毕业论文.doc
- Authorware作品设计毕业设计论文多媒体方向.doc
- AWGMCM线规对照表1.doc
- 机械制图-机械类下学期知到智慧树期末考试答案题库2024年秋青岛科技大学.docx
- 【重点研报】GISphere留学指南:大数据报告白皮书(2024版)-GISphere-2024.docx
- 【重点研报】AI大模型应用发展研究报告.docx
- 机器学习知到智慧树期末考试答案题库2024年秋三亚学院.docx
- 活力操知到智慧树期末考试答案题库2024年秋黑龙江农业工程职业学院(松北校区).docx
- 机械设计(天津职业技术师范大学)知到智慧树期末考试答案题库2024年秋天津职业技术师范大学.docx
- 一年级班主任兼语文老师工作的述职报告.pptx
- 交通稽查个人总结.pptx
- 优秀部长竞选演讲稿.pptx
- 乡镇班子述职述廉报告.pptx
文档评论(0)