当前位置:首页 > 牛文 > 正文内容

zblog插件开发文档

admin16年前 (2010-03-09)牛文2212

 插件开发文档
1.说明
插件采用系统提供的各种接口,用来实现一些高级定制功能,让Z-Blog变的更加强壮和有趣(Very Good,Very Strong.)。
2.目录及命名要求
插件是放在系统的Plugin目录下的,插件必须有自己的目录名且不与其它插件同名。
插件目录名即是插件的ID名称,系统也以此做为识别。
插件必须设定正确的plugin.xml文件,系统依赖此文件对插件进行管理。
plugin.xml文件里的&rdquo;<id>&ldquo;节点一定要设定为插件的ID名称(即插件的目录名称),这非常重要。
更多的提示与技巧 :
1.提示注意
在公共区(例如include.asp)定义常量、变量和函数名时,一定要加上插件ID做前缀,防止冲突。
插件管理页面在头部要CheckPluginState(&ldquo;插件ID名称&rdquo;)来检查插件是否已启用,插件未启用则一定要中止执行。
一定要注意安全问题,注意检查用户权限,如果对游客开放的注意检查提交的数据,以免被注入。
系统接口中有两个接口是禁止使用的:Action_Plugin_System_Initialize和Action_Plugin_System_Initialize_WithOutDB,在系统初始化前运行插件,有可能接管整个系统。
插件优先等级的问题,优先被启用的插件优先等级就高,可以第一时间处理所挂接口的数据,但是在同一接口处挂接的其它插件将会排队继续处理数据,这一点也要注意。
插件中函数的参数要设定好是ByRef还是ByVal,(ByVal是传递值 源数据不会被修改,你可以把这个值当作自己的局部变量来使用;ByRef是传递地址,源数据可能被修改,你对这个变量的操作将对你传入的那个变量产生影响,就像指针的感觉。 )防止出现一些莫名其妙的干扰问题。
2.相关技巧
插件机制是公开和公用的,如果某个插件本身带有属于自己的接口申明及调用的话,别的插件同样可以挂接到这个插件的接口上来。
主题中所带的插件的优先等级为0级,最高且不可调整,只要使用该主题,其中的插件就自动被启用。
接口是可以间接挂接的,打个比方,你可以在挂接一个Action接口时加入挂接另一个Filter接口的代码,这样会十分的灵活。

3.plugin.xml格式规范说明
样例文档
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<plugin>
<id>BackupDB</id>
<name>BackupDB</name>
<note>Z-Blog的数据库备份及升级程序</note>
<type>inline</type>
<path>main.asp</path>
<include>include.asp</include>
<level>1</level>
<author>
    <name>Sipo</name>
    <url>http://www.dc9.cn/</url>
    <email></email>
</author>
<version>1.1</version>
<modified>2007-12-26</modified>
</plugin>plugin.xml
节点说明
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.接口分类与调用
接口共分三大类,具体请看接口分类与API。Z-Blog的API共分为三大类,分别是
行为类接口:Action Api
过滤器接口:Filter Api
纯输出接口:Response 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名称")还必须在&rdquo;ActivePlugin_插件ID名称&rdquo;函数中完成对接口的挂接工作,例如:
'具体的接口挂接
Function ActivePlugin_插件ID名称()
  Call Add_Action_Plugin("目标接口","具体执行代码")
End Function6.插件的激活和禁用执行函数
系统设定每个插件可以提供两个特殊的函数来执行激活和禁用过程中的一次性的任务。
如果你的插件有这种需求,请在include.asp里使用这两个函数,系统会在启用和禁用这个插件时自动执行相应函数。
Function InstallPlugin_插件ID名称()
'代码
End FunctionFunction UninstallPlugin_插件ID名称()
'代码
End Function7.主题里的插件
主题可包含一个插件,这个插件的ID名称就等于主题的ID名称。
主题里的插件文件必须直接放置在主题目录下的Plugin目录里。
主题里的插件无plugin.xml,其信息全部记录在了主题的配置文件theme.xml文件的plugin节点里。
theme.xml文件里的plugin节点的配置方法与独立插件的plugin.xml方法完全一致。
主题里的插件的优先级最高且不可调整,只要启用这个主题,插件自动激活,直到切换其它主题为止。

扫描二维码推送至手机访问。

版权声明:本文由水墨优化网发布,如需转载请注明出处。

本文链接:https://www.ishnan.com/post/114.html

分享给朋友:

“zblog插件开发文档” 的相关文章

大学生逃课的爆笑理由都有哪些?

大学生逃课的爆笑理由都有哪些?

最实事求是的理由:教授太难看,影响我的视力。最拍马屁的理由:女老师们太漂亮了,总让我魂不守舍。最无聊的理由:我同桌不陪我聊天。最可耻的理由:中午吃的太多,坐着难受。最伤心的理由:我们系最漂亮的女生跟一个还不如我四分之一帅{我个人看法}的男生在我眼前谈恋爱,这课我能上吗?最关心自己的理由:昨夜喝的太多...

CM7将会正式支持xperia系列手机

CM7将会正式支持xperia系列手机

 简而言之,首先,索尼爱立信官方打算支持freexperia小组的发开,为他们提供技术支持,尤其是帮助他们解决一直未能解决的相机问题。其次,CM小组官方宣布将会在支持的产品列表里加入xperia系列(这离不开第一条的实现),而且freexperia小组也会成为CM小组的一部分。这下要给力了...

我今年二十七八岁

我今年二十七八岁

最近很少很少关注自己的站,生活糊口打磨的昔日的激情,慢慢想着今后的何去何从。。。这个视频是很久很久以前的,但是内容确实很符合当下我们同龄人的心声,分享与大家共勉!奋斗,加油!视频中插图就是我们生活的写照,搞的我直发感叹。。。下面在字幕文字上添加了一些图片,手机网友以及同感朋友认真读读吧。一副吊儿郎当...

拍卖时间的女孩

拍卖时间的女孩

 这是今年他第三次见到叶春笙,上次见她,她穿着棉质的手绘T恤,素色的亚麻长裙,发间别着一朵鸡蛋花,仙森气十足。今天她一身闪耀的礼服,华丽得让他不自觉想起《了不起的盖茨比》里的黛西,那个拜金女人。而叶春笙看起来就是个拜金女孩,她用冰块捂着被打肿的脸颊,应当很疼,眉都皱起,神色却很平静,虽然在...

正版星外虚拟主机管理系统7i24 冲值卡插件 星外充值卡 源码+教程 下载

正版星外虚拟主机管理系统7i24 冲值卡插件 星外充值卡 源码+教程这个名字纯粹为了方便大家找到淘宝购买的,自己已无用,需要的朋友拿去吧链接: http://pan.baidu.com/s/1hrnjFZu 密码: nfrh...

计算机考试大纲

(一)计算机类计算机科学技术基础第一章 计算机及其应用基础知识一、计算机的特点、分类及其应用二、信息编码与数据表示;数制及其转换;算术运算和逻辑运算三、计算机硬件系统的组成及其基本工作原理四、计算机软件系统的组成,系统软件和应用软件的基本概念、功能和分类五、软件基础知识;程序设计语言的基本概念,面向...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。