Discuz:插件设置及管理
Discuz! 6.0|Discuz! 6.0安装|Discuz! 6.0使用|Discuz! 6.0风格模板|Discuz! 6.0插件|Discuz! 6.0升级|Discuz! 6.0开发|Discuz! 6.0 FAQ |
插件,是基于 Discuz! 论坛系统之上,设计开发的一种小程序或小方案,用来实现对论坛现有功能扩展和改进。由于 Discuz! 已具有相当完备的底层架构,因此插件并不需要具备很多深层的设计思想,也不需要很专业的开发人员,只要把想实现的功能与论坛的基本体系挂接起来,论坛就能拥有更加个性化的功能。
那么我针对插件管理和设置做一个详细的说明。插件管理主要是针对插件设计者使用,而一般的使用者,使用插件设置即可。
我们进到后台 -> 扩展设置 -> 论坛插件,可以看到个当前安装的插件。如图 1 所示:
对于插件设计者来说,插件管理到底是怎么使用的呢?或者怎么设计一个插件呢?进插件管理选项。首先得新增加一个插件的配置,那么在新增那里,填写好插件名称和唯一标识符,提交后,就可以得到一个新的插件配置了的。如图 2 所示:
下面的那个导入插件数据,这个文本输入框,这个是把插件作者设计好的配置,直接粘贴,即可导入论坛。如果插件在论坛的版本不一致的情况下开发的,那么勾选上 允许导入不同版本 Discuz! 的插件(易产生错误!!) 即可导入插件的配置详细。
在我们新增加了一个插件配置后,我们得对插件的配置进行细节的配置。
那么我们增加好的列表里面,选择对应的插件,点详情,如图 3 所示:
这个就是点帐户中心的详情,进来看到的各个基本配置。但是有这个基本配置还是不够的。
那么需要增加对应的模块来实现需要的功能。但是因为为了插件的安全和使用我们提供的统一调用接口,那么配置对应的模块:如图 4 所示:
增加对应模块的方法,同样是写上模块的名称(模块的标识符)和 菜单名称即可增加新的模块。
直接链接URL,这个选项,如果填写,那么这个就是在前台增加一个url链接,直接跳转到你填写的地址。
模块类型有下面几种:
直接链接(前台菜单):可在前台右上角加入一个菜单项,可自主指派菜单链接的 URL。注意:由于引用外部程序,因此即便设置了模块的使用等级,您的程序如需权限判断,仍需要引用 common.inc.php 和插件相关的缓存文件,并自行判断使用等级是否合法。
前台调用(前台菜单):与直接链接类似,但其调用的是插件的一个模块,模块文件名指派为“./plugins/插件目录/插件模块名.inc.php”,由 plugin.php 调用此模块。
后台调用(后台菜单):可在后台插件设置中为此插件增添一个管理模块,模块文件名指派为“./plugins/插件目录/插件模块名.inc.php”,由 admincp.php 调用此模块。
包含运行(无菜单):可设置一个在论坛所有页面均包含运行的脚本,此脚本在 ./include/common.inc.php 中加载,脚本文件名指派为“./plugins/插件目录/插件模块名.inc.php”。请注意,为了不导致错误的插件影响论坛运行,在 common.inc.php 加载此模块时,屏蔽了错误信息,因此请务必仔细检查是否存在语法错误,任何微小的语法错误都将不被提示出来,并且导致此模块不被正常加载。如果您配置了不正确的包含脚本而导致论坛系统设置无法使用,删除服务器上相应的脚本文件即可解决。
您可以为每个模块设置不同的使用等级,例如设置为“超级版主”,则超级版主及更高的管理者(例如论坛管理员)可以使用此模块。
前后台调用方式为:
如果您的插件包含“前台调用(前台菜单)”模块,该模块将统一用 plugin.php?identifier=xxx&module=yyy 的方式调用,请在相应链接、表单中使用此方式。其中 xxx 为插件的惟一标识符,yyy 为模块名称。前台插件外壳程序 plugin.php 已经加载了通用初始化模块(./include/common.inc.php),不需再次引用。
如果您的插件包含“后台调用(后台菜单)”模块,该模块将统一用 admincp.php?action=plugins&identifier=xxx&mod=yyy 的方式调用,请在相应链接、表单中使用此方式。其中 xxx 和 yyy 的定义与“前台调用(前台菜单)”模块中的相同。系统还允许用 admincp.php?action=plugins&edit=$edit&mod=$mod 的方式来生成链接和表单地址,$edit 和 $mod 变量已经被插件后台管理接口赋值,因此将这两个变量值带入 URL 中也是被支持的。由于后台模块是被 admincp.php 调用,因此已加载了通用初始化模块(./include/common.inc.php)并进行了后台管理人员权限验证,因此模块程序中可直接写功能代码,不需再进行验证。
这些是模块的设计,基本的变量设置,例如本插件需要用到的设置变量,那么该怎么增加的呢?
在前面点进某个插件的详情,在最下面,就是显示的是本插件当前所有的变量设置:如图 5 所示:
变量的增加和前面插件的增加类似。例如增加好了一个 管理员是否可用的 这个变量设置,点详情,如图 6 所示:
根据每一项的左边的提示就可以完成一个变量的设置。
我们设计的插件变量已经设置好了之后,如果我们需要修改到 Discuz! 本身的文件,那么我们可以使用插件钩子。如图 7 所示:
点详情:如图 8 所示:
最后调用是在需要修改代码的页面增嵌入例如 eval($hooks['accounts_hook']); 这样的代码即可。
现在整个插件的管理我介绍的差不多了。
那么设计出来的插件效果是什么样的呢,那么我们可以到插件设置来看,进入插件设置,如图 9 所示:
这里就把论坛安装的所有的插件都罗列出来。就以我们增加的插件帐户中心来看看我们的设计:首先是插件参数设置:如图 10 所示:
对应插件管理的设置:如图 11 所示:
参数设置的效果就是这个样子表现了的。
那么 模块:绑定搜索 的效果,如图 12 所示:(访问的地址:admincp.php?action=plugins&identifier=accounts&mod=stats)
这个对应的插件管理,如图 13 所示:
那么实际上是后台调用执行了我自己写的模块代码:./plugins/accounts/stats.inc.php ,如图 14 所示:
模块:参数设置 的效果,如图 15 所示:(访问地址:admincp.php?action=plugins&identifier=accounts&mod=setting)
对应插件管理:如图 16 所示:
那么实际上是后台调用执行了我自己写的模块代码:./plugins/accounts/setting.inc.php 。后台的插件设置已经已经介绍完毕,那么刚才还有一个 帐户中心的这个模块,这个到哪去了呢?这个设置为前台的链接:如图 17 所示:
可以看出是前台的菜单模块,而且是直接链接的。那么到前台看是什么效果的呢?如图 18 所示:
就是显示一个链接,跳到你设置的直接链接的 url 。一个插件配置设计基本就是上面说明了的,我们可以根据需要关闭或者导出这个插件配置如图 19 所示:
看完上面所有的说明,是不是发现设计一个插件也是如此简单!