Skip to content

后台子菜单扩展案例 ​

Z-BlogPHP 的后台管理页面(文章管理、页面管理、分类管理等)顶部都有一排子菜单,例如「新增文章」「新增页面」。插件可以通过 Filter_Plugin_Admin_*_SubMenu 系列接口在这些页面追加自定义子菜单项。

通用模式 ​

所有 SubMenu 接口的用法相同:

  1. 在插件的 ActivePlugin_* 函数中,通过 Add_Filter_Plugin() 注册回调函数
  2. 回调函数在后台页面渲染时被调用,需要 echo 输出一段 HTML(通常是 <a> 标签)
  3. 推荐用数组集中定义菜单项,再通过 MakeSubMenu() 循环输出,菜单较多或需要调整顺序时更方便
php
function ActivePlugin_demoAPP()
{
    Add_Filter_Plugin('Filter_Plugin_Admin_XXX_SubMenu', 'demoAPP_XXX_SubMenu');
}

function demoAPP_XXX_SubMenu()
{
    global $zbp;
    // 每项参数依次为:名称、链接、CSS 类名、target(新窗口填 _blank,否则留空)
    $array   = [];
    $array[] = ['菜单一', $zbp->host . 'zb_users/plugin/demoAPP/main.php',         'm-left', ''];
    $array[] = ['菜单二', $zbp->host . 'zb_users/plugin/demoAPP/main.php?act=two', 'm-left', '_blank'];
    foreach ($array as list($name, $url, $class, $target)) {
        echo MakeSubMenu($name, $url, $class, $target);
    }
}

MakeSubMenu 参数 ​

php
function MakeSubMenu(
    $strName,           // 菜单显示文字
    $strUrl,            // 链接地址
    $strClass = 'm-left',     // 可选,CSS 类名
    $strTarget = '',           // 可选,target 属性
    $strId = '',               // 可选,id 属性
    $strTitle = '',            // 可选,title 和 alt 属性
    $strIconClass = ''         // 可选,图标类名
)

注意事项 ​

  • 回调函数必须 echo 输出 HTML,而不是 return;
  • 菜单项的 <span> 建议使用 m-left 类名,保持与系统内置菜单样式一致;
  • 如果需要根据当前页面条件决定是否显示,可以在回调里用 GetVars('act', 'GET') 判断当前 act 参数。

各页面案例 ​

管理页面子菜单 ​

接口页面案例
Filter_Plugin_Admin_SiteInfo_SubMenu后台首页快捷操作面板
Filter_Plugin_Admin_ArticleMng_SubMenu文章管理批量生成文章
Filter_Plugin_Admin_PageMng_SubMenu页面管理批量创建页面
Filter_Plugin_Admin_CategoryMng_SubMenu分类管理分类合并工具
Filter_Plugin_Admin_CommentMng_SubMenu评论管理评论过滤
Filter_Plugin_Admin_MemberMng_SubMenu用户管理批量导出用户
Filter_Plugin_Admin_UploadMng_SubMenu附件管理附件清理工具
Filter_Plugin_Admin_TagMng_SubMenu标签管理标签合并
Filter_Plugin_Admin_PluginMng_SubMenu插件管理插件设置快捷入口
Filter_Plugin_Admin_ThemeMng_SubMenu主题管理主题备份
Filter_Plugin_Admin_ModuleMng_SubMenu模块管理模块批量编辑
Filter_Plugin_Admin_SettingMng_SubMenu设置管理高级设置

编辑页子菜单 ​

接口页面案例
Filter_Plugin_Edit_SubMenu文章/页面编辑页自定义编辑按钮
Filter_Plugin_Tag_Edit_SubMenu标签编辑页标签高级属性
Filter_Plugin_Module_Edit_SubMenu模块编辑页模块高级设置
Filter_Plugin_Member_Edit_SubMenu用户编辑页用户扩展字段
Filter_Plugin_Category_Edit_SubMenu分类编辑页分类扩展属性