Discuz! X 插件开发手册 X2 Release 20110322
• 插件设计
• 准备工作
• 插件接口概述
• 参数读取与缓存控制
• 页面嵌入模块开发
• 特殊主题模块开发
• 扩展项目模块开发
• 第三方DIY模块拓展类的开发
• 第三方拓展类的开发
• CSS 继承规范
• 插件安装、卸载、升级脚本的设计
• 插件模板和语言包的设计
• 插件注册及插件新版本提示
• 编写插件的原则与注意事项
• 意见反馈
插件设计 | ||||||||||||||||||||||||||||||||
您在开始进行社区插件的设计之前,有必要了解一下我们所推荐的插件设计方式,更好的规范性和兼容性,将使得您设计的插件受到更多使用者的欢迎,对于程序员 而言,也有助于形成良好的编码习惯,实现自身能力的提升。如果您有意编写 Discuz! 社区插件,请按照先后顺序仔细阅读本文档。 |
||||||||||||||||||||||||||||||||
准备工作 | ||||||||||||||||||||||||||||||||
插件实现流程 开始编写社区插件,您应当首先对插件实现的流程有一个大致的了解,以下是我们推荐的插件编写流程:
文件命名规范 Discuz! 按照如下的规范对程序和模板进行命名,请在设计插件时尽量遵循此命名规范:
class_core.php 模块功能白皮书 source/class/class_core.php 是 Discuz! 的通用初始化模块程序,其几乎被所有的外部代码所引用,在您开始插件设计之前,可以先对该模块的大致功能做一定的了解。class_core.php 主要完成了以下任务:
|
||||||||||||||||||||||||||||||||
插件接口概述 | ||||||||||||||||||||||||||||||||
使用管理员账号登录 Discuz! 开始编写一个新插件,请首先打开 config/config_global.php 文件,在文件结尾添加以下代码开启插件设计者模式。 $_config[\'plugindeveloper\'] = 1; 在插件管理中选择“设计新插件”,填写插件名称,名称用于表明此插件的用途,例如设置为“虚拟银行插件”。惟一标识符用于在后续的插件模块中调用本 插件, 不可与现有插件重复,命名规则限制与 PHP 变量命名相同,虽然初次设置后仍可改动,但强烈建议一次性将此配置设置好,否则可能涉及到很多代码方面的变更,增加编码的麻烦。请注意:惟一标识符请不要 设置的过短,或使用有可能与其他插件重复的命名,例如制作此插件的公司叫做 Comsenz Inc.,插件名称是“虚拟银行插件”,惟一标识符可设置为“comsenz_virtual_bank”,后面将以“虚拟银行插件”和 “comsenz_virtual_bank”为例进行说明。 在 source/plugin/ 目录中创建与唯一标识符同名的目录名,如 source/plugin/comsenz_virtual_bank/。 在插件管理中添加插件后,仅仅是增加了一条插件记录,后面还需要很多相关的设计和设置。在列表中选择插件的“详情”进入插件的详细设置。插件设置分为三个部分:
|
||||||||||||||||||||||||||||||||
参数读取与缓存控制 | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
页面嵌入模块开发 | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
特殊主题模块开发 | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
扩展项目模块开发 | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
第三方DIY模块拓展类的开发 | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
第三方拓展类的开发 | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
CSS 继承规范 | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
插件安装、卸载、升级脚本的设计 | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
插件模板和语言包的设计 | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
插件注册及插件新版本提示 | ||||||||||||||||||||||||||||||||
为了保护插件的合法权益,你可以把设计好的插件到官方的扩展中心(http://addons.discuz.com) 进行注册,注册后你将拥有此插件的唯一所有权,通过插件 ID 可以查询到你自己指定的发布页面地址,同时你还可以享受到插件新版本提示功能。插件新版本提示需要插件作者把自己发布插件的相关文件生成 MD5 校验码,然后把校验码提交到扩展中心。这样站长在后台即可随时检测到你插件是否存在新版本。 插件校验码生成函数: function createValidator($pluginid, $md5files) { 使用范例: $md5files = array( |
||||||||||||||||||||||||||||||||
编写插件的原则与注意事项 | ||||||||||||||||||||||||||||||||
请在您动手编写插件之前,还需要仔细的阅读以下原则,遵循这些原则,将有效的避免可能发生的问题:
|
||||||||||||||||||||||||||||||||
意见反馈 | ||||||||||||||||||||||||||||||||
插件接口是 Discuz! 开发组为了方便插件设计、安装和使用而专门开发,虽然经过长期的优化和改进,可能仍然会有不够合理或不够完善的地方,欢迎各位插件程序员在使用此接口的过程中,为我们提出意见和建议,感谢您的支持。 欢迎加入“Discuz! 开发技术指导”QQ 群一起探讨 Discuz! X 开发中您遇到的问题。 |