====== 插件开发文档 ====== ===== 1.说明 ===== 插件采用系统提供的各种接口,用来实现一些高级定制功能,让Z-Blog变的更加强壮和有趣(Very Good,Very Strong.)。 ===== 2.目录及命名要求 ===== - 插件是放在系统的Plugin目录下的,插件必须有自己的目录名且不与其它插件同名。 - 插件目录名即是插件的ID名称,系统也以此做为识别。 - 插件必须设定正确的plugin.xml文件,系统依赖此文件对插件进行管理。 - plugin.xml文件里的""节点一定要设定为插件的ID名称(即插件的目录名称),这非常重要。 [[.plugin:tips|更多的提示与技巧]] ===== 3.plugin.xml格式规范说明 ===== ==== 样例文档 ==== BackupDB BackupDB Z-Blog的数据库备份及升级程序 inline main.asp include.asp 1 Sipo http://www.dc9.cn/ 1.1 2007-12-26 ==== 节点说明 ==== - plugin, 表示此文档为插件信息. - id, 插件ID, 即存放该插件的目录名. - name, 插件名称, 中英文均可. - note, 插件简介. - type, 无须接口调用的插件设置为outline,其它的设为inline. - path, 插件管理页的名称,无管理页的插件可删除此节点. - include, 插件接口挂接页面,常规约定为include.asp,无须接口调用的插件可删除此节点. - level, 插件要求管理权限,1为管理员,2为高级用户,3为中级用户,4为普通用户,5为游客. - author, 插件作者. - name, 作者名称. - url, 作者网址. - email, 作者电邮. - version, 插件的版本号. - modified, 最后更新日期. ===== 4.接口分类与调用 ===== 接口共分三大类,具体请看[[.plugin:api|接口分类与API]]。 针对三大类的接口,系统提供了3种接口的挂接方式,分别是: * 动作接口的调用过程 Call Add_Action_Plugin("API名","要执行的代码段") * 过滤器接口的调用过程 Call Add_Filter_Plugin("API名","要挂接的函数名") * 纯输出接口的调用过程 Call Add_Response_Plugin("API名","要输入的字符串") ===== 5.插件的注册 ===== Z-Blog系统的插件是采用主动插入方式来通知系统。所以必须在include.asp文件中调用RegisterPlugin函数才能让插件进入系统的插件体系。 '注册插件 Call RegisterPlugin("插件ID名称","ActivePlugin_插件ID名称") 还必须在"ActivePlugin_插件ID名称"函数中完成对接口的挂接工作,例如: '具体的接口挂接 Function ActivePlugin_插件ID名称() Call Add_Action_Plugin("目标接口","具体执行代码") End Function ===== 6.插件的激活和禁用执行函数 ===== 系统设定每个插件可以提供两个特殊的函数来执行激活和禁用过程中的一次性的任务。 如果你的插件有这种需求,请在include.asp里使用这两个函数,系统会在启用和禁用这个插件时自动执行相应函数。 Function InstallPlugin_插件ID名称() '代码 End Function Function UninstallPlugin_插件ID名称() '代码 End Function ===== 7.判断插件状态 ===== 判断某插件是否激活。 If CheckPluginState("插件ID")=False Then Call ShowError(48) ===== 8.主题里的插件 ===== - 主题可包含一个插件,这个插件的ID名称就等于主题的ID名称。 - 主题里的插件文件必须直接放置在主题目录下的Plugin目录里。 - 主题里的插件无plugin.xml,其信息全部记录在了主题的配置文件theme.xml文件的plugin节点里。 - theme.xml文件里的plugin节点的配置方法与独立插件的plugin.xml方法完全一致。 - 主题里的插件的优先级最高且不可调整,只要启用这个主题,插件自动激活,直到切换其它主题为止。