plugin.php,plugin.php

/**

* plugin.php 插件入口

*

* @copyright(C) 2005-2010 PHPCMS

* @licensehttp://www.phpcms.cn/license/

* @lastmodify2013-06-07

*/

define('PHPCMS_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR);

include PHPCMS_PATH.'phpcms/base.php';

$param = pc_base::load_sys_class('param');

pc_base::load_sys_func('plugin');

$cache = '';

if(isset($_GET['id'])) {

if(!preg_match("/^[a-z0-9_\-]+$/i",$_GET['id'])) showmessage((L('illegal_parameters')));

list($identification, $filename,$action) = explode('-', $_GET['id']);

$filename = !empty($filename) ? $filename : $identification;

$action = !empty($action) ? $action : 'init';

}

if(!preg_match("/^[a-z0-9_\-]+$/i", $identification)) showmessage(L('plugin_not_exist','','plugin'));

$cache = getcache($identification,'plugins');

if(!$cache['disable'] || $filename=='plugin_admin' || $filename=='hook') {

showmessage(L('plugin_not_exist','','plugin'));

} else {

$status = plugin_stat($cache['appid']);

if($status== 0 || $app_status == 1) {

showmessage(L('plugin_developing','','plugin'));

} elseif($status== 3) {

showmessage(L('plugin_be_locked','','plugin'));

}

$iframe = string2array($cache['iframe']);

if($iframe['url']) {

$cache_var = getcache($identification.'_var','plugins');

plugin_base::creat_iframe($cache,$cache_var);

} else {

plugin_base::creat_app($identification, $filename, $action);

}

}

class plugin_base {

/**

* 初始化插件

*/

public static function creat_app($id,$file,$action) {

define('PLUGIN_ID', $id);

define('PLUGIN_FILE', $file);

define('PLUGIN_ACTION', $action);

self::plugin_init();

}

/**

* 调用插件方法

*/

private function plugin_init() {

$controller = self::load_controller();

if (method_exists($controller, PLUGIN_ACTION)) {

if (preg_match('/^[_]/i', PLUGIN_ACTION)) {

exit('Plugin Error:You are visiting the action is to protect the private action');

} else {

call_user_func(array($controller, PLUGIN_ACTION));

}

} else {

exit(L('plugin_error_or_not_exist','','plugin'));

}

}

/**

* 加载插件控制器

* @param string $filename

* @param string $m

* @return obj

*/

private function load_controller($filename = '', $m = '') {

if (empty($filename)) $filename = PLUGIN_FILE;

if (empty($m)) $m = PLUGIN_ID;

$filepath = PC_PATH.'plugin'.DIRECTORY_SEPARATOR.$m.DIRECTORY_SEPARATOR.$filename.'.class.php';

if (file_exists($filepath) && $filename !='plugin_admin') {

$classname = $filename;

include $filepath;

if ($mypath = pc_base::my_path($filepath)) {

$classname = 'MY_'.$filename;

include $mypath;

}

return new $classname;

} else {

exit(L('plugin_error_or_not_exist','','plugin'));

}

}

/**

* 加载插件模板

*/

final public static function plugin_tpl($file, $identification = '') {

$identification = empty($identification) && defined('PLUGIN_ID') ? PLUGIN_ID : $identification;

if(empty($identification)) return false;

return PC_PATH.'plugin'.DIRECTORY_SEPARATOR.$identification.DIRECTORY_SEPARATOR.'templates'.DIRECTORY_SEPARATOR.$file.'.tpl.php';

}

public static function creat_iframe($cache = '',$cache_var = '') {

$iframe = string2array($cache['iframe']);

$width = $cache_var['width'] ? $cache_var['width'] : $iframe['width'];

$height = $cache_var['height'] ? $cache_var['height'] : $iframe['width'];

$url = $iframe['url'];

$SEO = seo(1, 0, $cache['name'], $cache['description'], $cache['name']);

include template('plugin','iframe');

}

}

?>

一键复制

编辑

Web IDE

原始数据

按行查看

历史

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值