shopnc 是一款非常前衛的**系統,功能強大
但這樣一款強大的系統,遺憾是的沒有外掛程式體制,如果想要什麼新功能,就都得修改原始檔,會很不方便
作為碼農,我是這樣想的,給她乙個插孔,讓很多人插
/global.php 新增:
defined('dir_plugins') ||define('dir_plugins',base_root_path.'/plugins');//added by bruce.chou 2016-5-24
建立/core/plugins.php:
<?php
/*** shopnc 外掛程式管理類
* @author bruce.chou @2016-5-25**
*/defined('inshopnc') or exit('accessinvalid!');
defined('plugin_event_1') ||define('plugin_event_1','plugin_event_1');
class plugins}}
}closedir($dh);
}return self::$all_plugins=$result;
}/**
*@description 供外掛程式的檢視中呼叫用於顯示外掛程式目錄下的模板
*@author bruce.chou 2016-5-25
*@param string $page_name 要顯示的模板檔案
*@param string $layout 要包含的布局檔案
*@param object $plugin 外掛程式物件
*//@ string$obj_plugin->module_name 要載入的模組如 admin,home,salers,mobile等
*/publicstatic function tpl_showpage($page_name,$layout='',$obj_plugin=null )else
}else
}/*函式***/
publicstatic function tpl_output($arg='',$args)
publicstatic function triger_event($evt,&$args)}}
}}
}publicstatic function url($obj_plugin,$act='',$op='',$args=array()) }
$all_plugins = plugins::get_plugins();
外掛程式目錄設定在/plugins/外掛程式名
目錄結構:
外掛程式名/
config.php //外掛程式配置檔案
action.php //外掛程式監聽處理類
models/ ->模型類目錄
資料庫互動處理功能檔案列表
admin/ ->後台功能
control/
控制器檔案列表
templates/
視**件列表
home/ ->前台功能
control/
控制器檔案列表
templates/
視**件列表
mobile/ //手機端功能
salers/ ->商戶後台功能
修改過的原始核心檔案:
/core/base.php
* 控制器排程
privatestatic function control()else else elseif(method_exists($main,'indexop'))elseelseelseelseelseelse
}if($found == -1 )
foreach($plugins[$key]['menu']['left'] as $i => $j)
} /*by bruce.chou*/
plugins::tpl_output('變數名', $變數);
plugins::tpl_showpage('視**件','布局檔案',$this );
外掛程式目錄/action.php示例:
<?php
class mpaction
}
當然目前未做到盡善盡美,但基本在shopnc系統中實現了外掛程式功能 php外掛程式機制實現原理
外掛程式,亦即plug in,是指一類特定的功能模組 通常由第三方開發者實現 它的特點 1.隨時安裝 解除安裝 啟用 禁用 2.無論什麼狀態都不影響系統核心模組的執行,3.是一種非侵入式的模組化設計,實現了核心程式與外掛程式的鬆散耦合。乙個健壯的php外掛程式機制,我認為必須具備以下特點 1.外掛程...
外掛程式機制的實現核心類
外掛程式機制的實現核心類 class pluginmanager 此處做些日誌記錄方面的東西 註冊需要監聽的外掛程式方法 鉤子 param string hook param object reference param string method function register hook,re...
DISCUZ 外掛程式機制
1 參考 2 由第一點中的官方提供的參考庫可以基本可以了解怎麼去開發乙個外掛程式。這裡簡述幾點重要的 一 配置檔案中config global.php中加上 config plugindeveloper 1 就可以在後台 應用 外掛程式 中設計新外掛程式。將上述變數中的值設定成為2,就可以看disc...