后台管理页开始监听扩展
通过 Filter_Plugin_Admin_Begin 接口,可以在 Z-BlogPHP 后台管理页(zb_system/admin/index.php,即 cmd.php?act=... 指向的各类管理页)启动时执行自定义逻辑,适用于权限校验、请求拦截、访问日志等场景。
接口信息
| 接口 | 参数 | 说明 |
|---|---|---|
Filter_Plugin_Admin_Begin | 无 | 后台管理页启动时触发,在页面实际内容渲染之前 |
完整案例
下例在文章管理页访问时检查用户是否拥有 ArticleAll 权限,无权限则跳转到错误页:
php
<?php
RegisterPlugin("demoAPP", "ActivePlugin_demoAPP");
function ActivePlugin_demoAPP()
{
Add_Filter_Plugin('Filter_Plugin_Admin_Begin', 'demoAPP_Admin_Begin');
}
function demoAPP_Admin_Begin()
{
global $zbp;
// $zbp->action 是当前后台操作(如 ArticleMng、CategoryMng、admin 等)
if ($zbp->action == 'ArticleMng' && !$zbp->CheckRights('ArticleAll')) {
$zbp->ShowError(6);
die();
}
}注意事项
- 接口没有参数,回调函数通过
echo输出内容或执行逻辑后die()拦截;系统已在进入本接口前完成了通用权限校验(CheckRights($zbp->action)),本接口用于更细粒度的自定义控制; - 该接口只作用于
zb_system/admin/index.php入口下的管理页,不作用于各编辑页(如edit.php、category_edit.php等)和cmd.php提交的act操作; - 如需拦截
cmd.php的表单提交操作,应使用对应的Filter_Plugin_Cmd_Begin接口; - 触发时页面 HTML 尚未输出,适合执行跳转(
Redirect)、输出错误(ShowError)等会终止后续渲染的操作。