插件采用系统提供的各种接口,用来实现一些高级定制功能,让Z-BlogPHP变的更加强壮和有趣(Very Good,Very Strong.)。
plugin.xml
<?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> <sidebar6></sidebar6> <sidebar7></sidebar7> <sidebar8></sidebar8> <sidebar9></sidebar9> </sidebars> </plugin>
Z-BlogPHP系统的插件是采用主动插入方式来通知系统。所以必须在include.php文件中调用RegisterPlugin函数才能让插件进入系统的插件体系。
//注册插件 RegisterPlugin("插件ID","ActivePlugin_插件ID");
如需挂载系统接口,还必须在”ActivePlugin_插件ID名称”函数中完成对接口的挂接工作,例如:
//具体的接口挂接 function ActivePlugin_插件ID() { Add_Filter_Plugin('API名称','执行代码(函数)'); }
系统设定每个插件可以提供两个特殊的函数来执行激活和禁用过程中的一次性的任务。
如果你的插件有这种需求,请在include.php里使用这两个函数,系统会在启用和禁用这个插件时自动执行相应函数。
function InstallPlugin_插件ID(){} function UninstallPlugin_插件ID(){}
判断某插件是否激活。可根据插件激活状态改动本插件功能配置。
if (!$zbp->CheckPlugin('插件ID')) {$zbp->ShowError(48);die();//插件未启用直接退出本页面(一般用于配置页面)}
global $zbp;
插件如果需要将配置数据或其它扩展数据添加到数据库中,Z-BlogPHP提供了三种存储方式可供选择:
Z-BlogPHP的选项机制,主要用于保存简单的插件选项数据。选项的值可以是字符串、数组或者PHP对象(PHP对象应能够被序列化或转换成字符串,在读取的时候应能够被反序列化)。
$zbp->Config('插件ID')->选项参数=选项值; $zbp->SaveConfig('插件ID');
$s=$zbp->Config('插件ID')->选项参数;
$zbp->HasConfig('插件ID'); //return bool
$zbp->Config('插件ID')->HasKey('选项参数'); //return bool
删除配置一般选在卸载插件的时候执行。建议根据需要设定是否删除,通常我们建议保留配置以备下次重新启用。
$zbp->DelConfig('插件ID');
也就是Z-BlogPHP的自定义域机制,主要用于保存一些扩展数据,如文章评分、赞同或反对人数等等。操作自定义域很简单,我们只要定义选项及选项值(注意,选项的定义应是唯一的,不可与其它插件定义重复,值的要求与上述选项机制相同),在原数据保存时其自定义域操数据将同时被保存。下面以文章($article为某一文章实例)为例:
$article->Metas->选项参数=选项值; $article->Save();注:在设置后并不是必须要立即调用
Save
方法,在文章保存的同时,Metas
数据自动一并被保存。
$s=$article->Metas->选项参数;
删除配置一般选在卸载插件的时候执行
$article->Metas->Del('选项参数');
即创建一个全新的自定义的数据库表。这种方式适合保存那些与文章、分页或附件等等与原数据无关的独立数据,或者虽然是与原数据相关但本身数据量较大需要独立存储的情况也可以使用该方法。更多关于自定义数据库用法请参考自定义数据库表