http://www.damubiao.com/forum.php?mod=viewthread&tid=50 其实做开源一直是个人的业余时间爱好,现在发布的二个插件是因为自己业务需要做的二个插件,所以边做边共享。希望能帮到各位广大的站长。 做discuz 产品开发,特别是插件开发,其实挺简单的,最重要一点是先看 discuz 技术文库 。 OK 下面先介绍一下插件开发的一些前期准备工作(以下代码实例以 x2.5 rc 版本下开发),相关版本下载地址可到 discuz x2.5 RC 下载地址,开发软件个人用的是 zend studio 7.2.1 。 安装好 dx2.5 之后,用zend studio 建好项目,进入后台,插件页面,插件中心。 如图: 新站点建立是没有设计插件的功能,只有安装站点的功能,需要设计插件要修改config_global.php 的文件。 在项目目录下找到 config/config_global.php 文件,在文件最下面加上代码 其值可为 0 ,1 ,2 当设置为0时则是默认状态,1,为后台设计插件状态, 2,为前端显示嵌入开发 hook 挂钩 如下面二图。一般情况下不用嵌入开发的话,只需要设置为1则可. 下图是前端页面嵌入开发一些 hookid ,意思是插件代码在指定的 hookid 显示位置。具体讲到嵌入式开发的时候再解释 以上的设置是插件开发的前期基本工作,大体上就这些,相关官网的开发文档可以查看 插件设计的准备工作 下一章将讲插件的设计工作。 |
近来公司家具展会,比较忙,另二个插件也经常更新,所以一直没太多时间写教程。
今天终于告一段落,可以有时间写一个教程。这个章节将讲一下插件的设计+插件的目录结构。
上一章讲完了开发前的 discuz 参数设置 ,设置完了之后就有一个设置新插件的按钮。
新建表单如上图:
以上的参数都有说明,这里不作详细解释。有不明白可以参照上面写法 。
有一点需要注意的是 我的唯一标识有一个前辍 dmb_ ,这是开发者在开发平台绑定的前辍,没本人许可是不允许使用的。
点击保存之后,可以在插件列表那看到一个新的插件 ,如下图
然后可以再点击设计,设计界面比之前多了二个表单,一个插件描述,一个是插件语言包 。如下图
描述不作介绍,现在介绍一下语言包。
因为 discuz 插件采用语言包分离模式,也可以说是国际化模式(只是这里没用上)。同时他也为生成XML 配置文件以及多语言版本准备,如果在插件语言包选是但又没设置好语言包文件是保存不了的。所以需要手工建立一个语言包文件。
在 /data/plugindata 目录下建立一个 *.lang.php 文件 * 代表插件的唯一标识名。我的插件标识名是:dmb_test 所以文件名是 dmb_test.lang.php 。建立好了点击保存即可(这里暂时不作语言包的介绍)。
以上是新建插件的基本设置。 但新插件目录是不会自动生成的,所以需要自己手工去生成。
进入插件目录 /source/plugin 这里是插件的目录,扩展中心安装的插件全部在这里。二次开发修改可以在这里找相应的文件。
回到正题:
以上在插件后台已经建了 dmb_test 插件,插件目录名是dmb_test 所以在 /source/plugin/ 目录建一 dmb_test 文件夹即插件目录(在这里不一定要跟唯一标识同名,这里只是写插件目录名同名,个人习惯了全统一,如果你们有兴趣可以换个不同的试试,这里我没作过任何测试),建立好插件目录后,整个插件的目录结构已经基本完成。下面再说下插件目录下的文件结构。
先上图片
一个插件主要的主要文件如上图
template 为插件模板目录。
install.php 插件安装文件
uninstall.php 插件卸载文件
upgrade.php 插件更新文件
xml 文件即插件的配置文件,保存了插件的全部配置信息。
以上的目录结构是整个插件所需要用到的大部分结构,不想写得太长所以下一章将讲几个文件的代码说明。
下面来介绍一下 install.php 的代码设计介绍 uninstall.php 的代码设计介绍 upgrade.php 文件因为很少用到这里暂时不作介绍,其实跟上面代码一样,只是执行SQL是更改数据库的结构。 XML 文件这里也不作代码介绍,这里只介绍xml 文件的生成方法。完成以上配置文件后,可以在设计插件里点击导出,即会自动导出XML 文件,下载完毕放到相应的目录即可,如下图 生成的文件为默认的XML 文件 如 discuz_plugin_dmb_test.xml 不同的语言版本XML文件不一样 ,现在扩展中心只需要你上传默认为 GBK 的版本即可,其他的几个版本扩展中心系统会自动生成。故不作详细介绍。 | 上一章讲了插件的基本目录结构,接下来介绍一下相应文件的代码说明。
添加变量如上图,变量的数据类型有多种,初学者可以自行一个一个设置查看效果(不作说解)。 设置完毕后,因为插件设计后,还没开启,现在设置了变量,开启插件使用,则到在后台左边导航显示出来插件目录。点击即可以设置相应就是值(如果没有设置变量和模块中任何一个,导航上是不会显示出来插件的)。 上面是插件设置的相应的值。下面介绍代码中如何调用该值。 先在模块那建立一个模块,文件名为test, 模块类型为 “管理中心” ,链接名称为 “变量名”(这里不作详细解释,下一章再作详解),设置完毕在插件的根目录建立相应的文件 test.inc.php 。 其代码如下 : 以上是变量配置的基本方法与代码。 | 插件设计里面有模块,和变量的配置,但模块太多太泛一一作解释需要比较长的时间。这到最后一个功能一个功能介绍。 在这里先讲插件变量的配置。