Skip to content

后台加载监听扩展 ​

通过 Filter_Plugin_Zbp_LoadManage 接口,可以在 Z-BlogPHP 进入后台管理流程(Zbp::LoadManage())时执行插件自身的后台初始化逻辑。

接口信息 ​

接口参数说明
Filter_Plugin_Zbp_LoadManage无Zbp 类的后台管理初始加载接口

完整案例 ​

下例在后台加载时检查插件版本号,有新版本则写入升级标记并记录系统日志:

php
<?php

define('DEMOAPP_VERSION', '1.1');

RegisterPlugin("demoAPP", "ActivePlugin_demoAPP");

function ActivePlugin_demoAPP()
{
    Add_Filter_Plugin('Filter_Plugin_Zbp_LoadManage', 'demoAPP_Zbp_LoadManage');
}

function demoAPP_Zbp_LoadManage()
{
    global $zbp;

    $cfg = $zbp->Config('demoAPP');
    if ($cfg->version != DEMOAPP_VERSION) {
        $cfg->version = DEMOAPP_VERSION;
        $cfg->Save();
        Logs('demoAPP 已升级到 ' . DEMOAPP_VERSION);
    }
}

注意事项 ​

  • 触发位置在 Zbp::LoadManage() 内;该方法由 Zbp::Load() 在后台管理流程(ismanage 为真,即经 admin/index.php 等后台入口访问)时调用,前台请求不会触发;
  • 核心自身把自动升级数据库的回调(Include_Admin_UpdateDB)挂载在本接口上,可见其定位是后台初始化与升级处理;
  • 此时机晚于 Filter_Plugin_Zbp_Load,用户权限、配置等均已就绪;
  • 回调没有参数;由于它位于每次后台页面加载的路径上,逻辑应保持轻量,避免拖慢所有后台页面;
  • 适合做数据表检查、版本升级、后台菜单注册前的准备等一次性初始化动作。