为了方便扩展 小旋风蜘蛛池 系统功能和二次开发,使得程序更加的灵活加入了自定义插件机制。

插件能够自由的通过钩子实现在不同位置实现相同或者不同的功能。
下面就是万能蜘蛛池的插件开发说明:
============《小旋风·万能蜘蛛池》插件开发说明=============
插件目录结构如以下( 以自带的test插件为示范 ):
|-temp | |-addons [所有插件存放的目录] | | |-test [插件目录,小写英文,且不能包含符号] | | | |-template [模板目录,如需载入模板,文件就放此目录下,可有可无] | | | |-config.php [配置文件,可有可无] | | | |-config.html [插件配置模板,可有可无] | | | |-testAddon.class.php [插件主要功能实现文件,文件命名:"插件目录名+Addon.class.php"]
注:所有文件必须 utf8 编码
具体结构以及使用方法,请参考自带插件中的 testAddon.class.php 文件。
可获取的部分系统参数
常量:IS_ROBOT 是否蜘蛛访问
ROBOT_NAME 蜘蛛类型
IS_MIP 当前模板是否MIP模板
IS_MOBILE 是否手机访问
IS_CACHED 是否已缓存页面
CACHE_FILE 缓存页面文件路径
变量:$GLOBALS['thisurl'] 当前页面url地址
$GLOBALS['domain_id'] 当前网站分组ID
$GLOBALS['domain_cid'] 当前网站所属模型ID
$GLOBALS['domain_dirname'] 当前网站分组文件夹
$GLOBALS['domain_config'] 当前网站分组配置
$GLOBALS['arctype_config'] 当前网站所属模型配置
$GLOBALS['arctype_dirname'] 当前模型文件夹
$GLOBALS['reform_config'] 当前网站优化配置
$GLOBALS['html'] 网页html,供before_show钩子调用和修改
$this->config 当前插件的自定义配置
函数:config(); 获取所有配置
config('xxx'); 获取配置xxx的值
config('web_theme'); 获取当前模板文件名
config('xxx','xxxx'); 赋值,xxx可用于模板调用,变量为$xxx,值为xxxx
send_http_status(404); 返回404状态码
为方便大家理解,下面贴出测试插件的代码
class testAddon extends addon{
//插件信息
public $info=array(
'title' => '测试插件', //插件名称
'description' => '测试插件描述', //插件的描述
'author' => '小旋风SEO', //作者
'version' => '1.0', //插件版本
'cms_type'=> 'zhizhuchi', //支持的程序类型,蜘蛛池为:zhizhuchi,泛目录站群为:mulu 多个逗号分隔
);
//设置修改模板数据,前台模板中调用,模板渲染前执行,修改数组$GLOBALS['return_data'] 即可,$data为当前系统已设置的可调用数据
//注:这里设置的数据并不会写入缓存
public function set_data($data){
//获取toptitle,即对应后台《TKDB调用模板》中的的title模板
$toptitle=$data['toptitle'];
//获取当前文章标题
$title=$data['title'];
//获取当前文章内容
$body=$data['body'];
//获取其他内容...,自行dump(); 输出
//替换当前标题,通常toptitle和title都要替换,因为模板中默认是调用toptitle作为title标签
$toptitle='test_'.$toptitle;
$title='test2_'.$title;
$GLOBALS['return_data']=array(
'调用变量'=>'调用值',
'toptitle'=>$toptitle,
'title'=>$title,
'body'=>$body,
);
}
//设置修改loop标签的数据,设置 $GLOBALS['return_data'] 的值即可变成新数据,此处值为数组
//$args=array($params,$data),其中$params当前loop的参数,$data为数据
public function loop_data($args){
if(!$args){
return false;
}
list($params,$data)=$args;
$GLOBALS['return_data']=array();
}
//设置修改采集的数据,设置 $GLOBALS['return_data'] 的值即可变成新数据,此处值为字符串或者数组
//$args=array($type,$data,$rules),其中$type当前采集的类型,$data为数据,,$rules为当前采集规则
public function collect_data($args){
if(!$args){
return false;
}
list($type,$data,$rules)=$args;
//采集类型为标题,data为数组
if($type=='title'){
}
//采集类型为内容,data为字符串
if($type=='body'){
//句子模式
if($rules['split']){
//整篇文章模式
}else{
}
}
//采集类型为栏目名称,data为数组
if($type=='typename'){
}
//采集类型为图片地址,data为数组
if($type=='pic'){
}
$GLOBALS['return_data']='';
}
//程序最开始时执行
public function before_home(){
//exit('before_home');
}
//程序载入基础配置后执行
public function load_home(){
//exit('load_home');
}
//页面缓存前执行
public function before_cache(){
}
//模板渲染前执行
public function before_show(){
}
//模板渲染后执行
public function after_show(){
}}




