78模板网分享cms建站教程,提供网站模板、网站插件、办公模板等模板教程免费学习,找模板教程就上78模板网!

如何让zblog插件挂载的接口优先级为最高级

在zblog下,我们一般挂载接口都是用 Add_Filter_Plugin 函数,如果有很多个插件挂了同样的接口,当系统在调用时,会以此按照挂载的顺序来调用插件。

有些时候,我们的插件需要调用最原始的数据,如果我们挂载的接口不是最先被调用,这样可能就无法得到最原始的数据,最终可能会导致插件达不到想要的效果。

有两种方法可以提高挂载的接口优先级:

方法一:

挂载接口时,不要将函数写在 ActivePlugin_xxx 函数里,直接写在函数外。zblog加载插件的原理是,系统在初始化时,先引入所有插件的include.php文件,再依次调用每个插件的 ActivePlugin_xxx 函数来挂载接口。这样写在此函数外,include文件被引用时就会被率先挂载

define('NICE_THUMB_SIZE_WIDTH',270);
define('NICE_THUMB_SIZE_HEIGHT',180);
define('NICE_THUMB_PAHT',ZBP_PATH .'zb_users/NiceThumb/');
RegisterPlugin("Nice","ActivePlugin_Nice") ;
Add_Filter_Plugin('Filter_Plugin_Admin_TopMenu','kfuuNiceFilter::Admin_TopMenu');
function ActivePlugin_Nice( ){
Add_Filter_Plugin('Filter_Plugin_Admin_TopMenu','kfuuNiceFilter::Admin_TopNenu');
Add_Filter_Plugin('Filter_Plugin_Zbp_Load','kfuuNiceFilter::Zbp_Load');
Add_Filter_Plugin('Filter_Plugin_Zbp_CheckRights','kfuuNiceFilter::Zbp_CheckRights');
Add_Filter_Plugin('Filter_Plugin_Cmd_Begin','kfuuNiceFilter::Cmd_Begin');
Add_Filter_Plugin('Filter_Plugin_Cmd_Ajax','kfuuNiceFilter::Cmd_Ajax');
Add_Filter_Plugin('Filter_Plugin_Html_Js_Add','kfuuNiceFilter::Html_Js_Add');
Add_Filter_Plugin('Filter_Plugin_Category_Edit_Response','kfuuNiceresponse::Category_Edit_Response');
Add_Filter_Plugin('Filter_Plugin_Tag_Edit_Response','kfuuNiceresponse::Tag_Edit_Response');

源码.jpg 如何让zblog插件挂载的接口优先级为最高级  第1张

方法二:

某些特殊的情况下,我们的接口并不需要zblog在初始化时添加挂载,而是需要的时候才添加,这样如果接口需要被最先调用,可以用下面的函数来添加。

Add_Filter_Plugin_First('Filter_Plugin_xxx_xxx','xxx');
function Add_Filter_Plugin_First($plugname, $functionname, $exitsignal = PLUGIN_EXITSIGNAL_NONE){
    $GLOBALS['hooks'][$plugname] = array_reverse(UsingPluginFilter($plugname), true);
    Add_Filter_Plugin($plugname, $functionname, $exitsignal);
    $GLOBALS['hooks'][$plugname] = array_reverse($GLOBALS['hooks'][$plugname], true);
    return true;
}

原理就是将接口钩子数组反转后挂载接口,然后再反转数组,这样我们的接口就被添加在第一位了,也就会最先调用

本文链接:http://78moban.cn/post/14595.html

版权声明:站内所有文章皆来自网络转载,只供模板演示使用,并无任何其它意义!

联系技术
文章删除 友链合作 技术交流群
1050177837
公众号
公众号
公众号
返回顶部