蜘蛛池出租网

为了方便扩展系统功能和二次开发,使得程序更加的灵活加入了自定义插件机制。插件能够自由的通过钩子实现在不同位置实现相同或者不同的功能。下面就是泛目录站群的插件开发说明:============《小旋风·

《小旋风·泛目录站群》插件开发说明

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

插件能够自由的目录通过钩子实现在不同位置实现相同或者不同的功能。

下面就是站群泛目录站群的插件开发说明:

============《小旋风·泛目录站群》插件开发说明=============

插件目录结构如以下( 以自带的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['mulu_url']  当前目录地址
$GLOBALS['mulu_id']  当前目录分组ID
$GLOBALS['mulu_dirname']  当前目录分组文件夹
$GLOBALS['mulu_config']  当前目录配置
$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'=> 'mulu',	 //支持的程序类型,泛目录站群为:mulu  ,蜘蛛池为:zhizhuchi,多个逗号分隔    );	//设置模板数据,前台模板中调用,模板渲染前执行,修改数组$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(){ 			}}


访客,请您发表评论:

© 2025. sitemap