1、怎麼在控制器下呼叫外掛
2、怎麼在鉤子裡面執行外掛中的方法,我是把外掛當控制器使用的。
求大神告知,線上急等
2、怎麼在鉤子裡面執行外掛中的方法,我是把外掛當控制器使用的。
求大神告知,線上急等
回覆
R方法可以呼叫外掛的控制器
hook呼叫外掛的鉤子方法
hook呼叫外掛的鉤子方法
評論
/**呼叫外掛
* @param $name
* @param null $params
* @param string $action
* @return mixed
*/
function plugin($name,&$params=NULL) {
$class = "Addons\\{$name}\\{$name}Addon";
if(class_exists($class)){
$addon = new $class;
if(!check_addons($name)){
return '';
}
return $addon->$name($params);
}else{
return '';
}
}
把這個方法加到框架公共函式裡這個預設呼叫外掛的同名方法,如果想呼叫指定方法這個可以
/**呼叫外掛
* @param $name
* @param null $params
* @param string $action
* @return mixed
*/
function plugin($name,$method,&$params=NULL) {
$class = "Addons\\{$name}\\{$name}Addon";
if(class_exists($class)){
$addon = new $class;
if(!check_addons($name)){
return '';
}
return $addon->$method($params);
}else{
return '';
}
}
//把這個函式也加進去,檢測外掛是否安裝並且啟用
function check_addons($name){
static $addons_status = array();
//檢測外掛是否已經安裝並且啟用
if(!isset($addons_status['$name'])){
$result = M('Addons')->where(array('name'=>$name))->find();
if($result['status'] == 1){
$addons_status['$name'] = 1;
}else{
$addons_status['$name'] = 0;
}
}
if($addons_status['$name'] !== 1 ){
return false;
}else{
return true;
}
}
* @param $name
* @param null $params
* @param string $action
* @return mixed
*/
function plugin($name,&$params=NULL) {
$class = "Addons\\{$name}\\{$name}Addon";
if(class_exists($class)){
$addon = new $class;
if(!check_addons($name)){
return '';
}
return $addon->$name($params);
}else{
return '';
}
}
把這個方法加到框架公共函式裡這個預設呼叫外掛的同名方法,如果想呼叫指定方法這個可以
/**呼叫外掛
* @param $name
* @param null $params
* @param string $action
* @return mixed
*/
function plugin($name,$method,&$params=NULL) {
$class = "Addons\\{$name}\\{$name}Addon";
if(class_exists($class)){
$addon = new $class;
if(!check_addons($name)){
return '';
}
return $addon->$method($params);
}else{
return '';
}
}
//把這個函式也加進去,檢測外掛是否安裝並且啟用
function check_addons($name){
static $addons_status = array();
//檢測外掛是否已經安裝並且啟用
if(!isset($addons_status['$name'])){
$result = M('Addons')->where(array('name'=>$name))->find();
if($result['status'] == 1){
$addons_status['$name'] = 1;
}else{
$addons_status['$name'] = 0;
}
}
if($addons_status['$name'] !== 1 ){
return false;
}else{
return true;
}
}