详情页

Z-BlogPHP插件开发

时间:2023年05月24日

编辑:佚名

1.说明
插件采用系统提供的各种接口,用来实现一些高级定制功能,让Z-BlogPHP变的更加强壮和有趣(VeryGood,VeryStrong.)。
2.目录及命名要求
插件是放在系统的zb_users/plugin目录下的,插件必须有自己的目录名且不与其它插件同名。
插件目录名即是插件的ID名称,系统也以此做为识别。
插件必须设定正确的plugin.xml文件,系统依赖此文件对插件进行管理。
plugin.xml文件里的”<id>“节点一定要设定为插件的ID名称(即插件的目录名称),这非常重要。
3.plugin.xml格式规范说明
    1.样例文档
<?xml version="1.0" encoding="utf-8"?>
<plugin version="php">
<id>Totoro</id>
<name>Totoro</name>
<url>http://www.zsxsoft.com/</url>
<note>基于TotoroII的Z-Blog的评论及引用管理审核系统增强版。</note>
<description></description>
<path>main.php</path>
<include>include.php</include>
<level>1</level>
<author>
  <name>zsx</name>
  <email>zsx@zsxsoft.com</email>
  <url>http://www.zsxsoft.com</url>
</author>
<source>
  <name></name>
  <email></email>
  <url></url>
</source>
<adapted>130707</adapted>
<version>1.0</version>
<pubdate>2013-07-07</pubdate>
<modified>2013-09-02</modified>
<price>0</price>
<advanced>
  <dependency></dependency>
  <rewritefunctions></rewritefunctions>
  <conflict></conflict>
</advanced>
<sidebars>
  <sidebar1></sidebar1>
  <sidebar2></sidebar2>
  <sidebar3></sidebar3>
  <sidebar4></sidebar4>
  <sidebar5></sidebar5>
</sidebars>
</plugin>
plugin.xml
    2.节点说明
    plugin,表示此文档为插件信息,version=“php”表示此插件为Z-BlogPHP版插件,区别与ASP版本.
    id,插件ID,英文或数字,即存放该插件的目录名不得与其他插件重名.
    name,插件名称,中英文均可.
    url,插件发布页面网址
    note,插件简介.
    description,插件详细描述
    path,插件管理页的名称,无管理页的插件可留空.
    include,插件接口挂接页面,include.php,无须接口调用的插件可留空.
    level,插件要求管理权限,1为管理员,2为高级用户,3为中级用户,4为普通用户,5为游客.
    author,插件作者.
 name,作者名称.
 url,作者网址.
email,作者电邮.
 11.    source,源作者信息,子节点参考author
 12.    adapted,插件最低要求博客版本号
 13.    version,插件的版本号.
 14.    pubdate,插件发布日期
 15.    modified,最后更新日期.
 16.    price,为0表示免费。收费插件定价,可在应用中心直接购买
 17.    advanced,插件高级选项
dependency,依赖插件列表,该插件如果需要其它插件配合使用,应在这里填写准确的依赖插件ID列表,以“|”符号分隔,如“demo1|demo2|demo3”。
rewritefunctions,插件重写系统函数列表,该插件如果要重写系统函数,应在这里填写准确的原函数名列表,以“|”符号分隔。
conflict,插件冲突插件列表,该插件如果跟其它插件存在冲突,应在这里填写准确的存在冲突插件ID列表,以“|”符号分隔。
 18.    sidebars,主题插件内置侧栏属性
sidebar1,侧栏1,该插件如果需要确定侧栏配置,应在这里填写准确的模块ID列表,以“|”符号分隔,如“searchpanel|comments|archives|link”。
sidebar2,侧栏2,配置方法同上
sidebar3,侧栏3,配置方法同上
sidebar4,侧栏4,配置方法同上
sidebar5,侧栏5,配置方法同上
4.接口分类与调用
Z-BlogPHP提供众多系统级API接口,具体请看Z-BlogPHP系统接口分类与API。
插件挂钩方式
Add_Filter_Plugin('API名称','执行代码(函数)');
5.插件的注册
Z-BlogPHP系统的插件是采用主动插入方式来通知系统。所以必须在include.php文件中调用RegisterPlugin函数才能让插件进入系统的插件体系。
//注册插件RegisterPlugin("插件ID","ActivePlugin_插件ID");
还必须在”ActivePlugin_插件ID名称”函数中完成对接口的挂接工作,例如:
//具体的接口挂接function ActivePlugin_插件ID() {
  Add_Filter_Plugin('API名称','执行代码(函数)');}
6.插件的激活和禁用执行函数
系统设定每个插件可以提供两个特殊的函数来执行激活和禁用过程中的一次性的任务。
如果你的插件有这种需求,请在include.php里使用这两个函数,系统会在启用和禁用这个插件时自动执行相应函数。
function InstallPlugin_插件ID(){}function UninstallPlugin_插件ID(){}
7.判断插件状态
判断某插件是否激活(用于插件管理页面)。
if (!$zbp->CheckPlugin('插件ID')) {$zbp->ShowError(48);die();}
 注意,在函数中使用变量$zbp前应进行全局声明,即使用代码:
    global $zbp;
8.保存插件数据到数据库
插件如果需要将配置数据或其它扩展数据添加到数据库中,Z-BlogPHP提供了三种存储方式可供选择:
8.1使用Z-BlogPHP的选项机制
Z-BlogPHP的选项机制,主要用于保存简单的插件选项数据。选项的值可以是字符串、数组或者PHP对象(PHP对象应能够被序列化或转换成字符串,在读取的时候应能够被反序列化)。
1、设置并保存配置选项
$zbp->Config('插件ID')->选项参数=选项值;$zbp->SaveConfig('插件ID');
2、读取配置选项
$s=$zbp->Config('插件ID')->选项参数;
3、删除配置
删除配置一般选在卸载插件的时候执行
$zbp->DelConfig('插件ID');
8.2使用扩展元数据机制
也就是Z-BlogPHP的自定义域机制,主要用于保存一些扩展数据,如文章评分、赞同或反对人数等等。操作自定义域很简单,我们只要定义选项及选项值(注意,选项的定义应是唯一的,不可与其它插件定义重复,值的要求与上述选项机制相同),在原数据保存时其自定义域操作将同时被执行。下面以文章($article为某一文章实例)为例:
1、设置并保存自定义域选项
$article->Metas->选项参数=选项值;$article->Save();
2、读取自定义域选项
$s=$article->Metas->选项参数;$article->Save();
3、删除自定义域
删除配置一般选在卸载插件的时候执行
$article->Metas->Del('选项参数');$article->Save();
8.3自定义数据表
即创建一个全新的自定义的数据库表。这种方式适合保存那些与文章、分页或附件等等与原数据无关的独立数据,或者虽然是与原数据相关但本身数据量较大需要独立存储的情况也可以使用该方法。更多关于自定义数据库用法请参考自定义数据库表
9.主题里的插件
主题可包含一个插件,这个插件的ID名称就等于主题的ID名称。
主题里的插件文件必须直接放置在主题目录下的Plugin目录里。
主题里的插件无plugin.xml,其信息全部记录在了主题的配置文件theme.xml文件的plugin节点里。
theme.xml文件里的plugin节点的配置方法与独立插件的plugin.xml方法完全一致。
主题里的插件的优先级最高且不可调整,只要启用这个主题,插件自动激活,直到切换其它主题为止。
相关文章
猜你需要