Skip to content

置顶状态下拉自定义 ​

Filter_Plugin_OutputOptionItemsOfIsTop 是 Z-BlogPHP OutputOptionItemsOfIsTop() 函数内的接口,该函数生成后台文章编辑页的置顶状态 select 下拉选项,默认包含:无(0)、首页置顶(2)、全局置顶(1)、分类置顶(4)。接口在选项数组收集完成、输出 option 之前触发。

接口信息 ​

接口参数说明
Filter_Plugin_OutputOptionItemsOfIsTop$default, $tz定义 OutputOptionItemsOfIsTop 函数里的接口

完整案例 ​

下例让非管理员用户在置顶下拉中看不到"全局置顶"选项,只保留首页置顶与分类置顶:

php
<?php

RegisterPlugin("demoAPP", "ActivePlugin_demoAPP");

function ActivePlugin_demoAPP()
{
    Add_Filter_Plugin('Filter_Plugin_OutputOptionItemsOfIsTop', 'demoAPP_OutputOptionItemsOfIsTop');
}

function demoAPP_OutputOptionItemsOfIsTop($default, &$tz)
{
    global $zbp;

    // 置顶键:0 无,1 全局置顶,2 首页置顶,4 分类置顶;$tz 需按引用修改
    if (!$zbp->CheckRights('root')) {
        unset($tz[1]);
    }
}

启用插件后,非管理员在后台编辑文章时无法通过下拉选择"全局置顶"。

注意事项 ​

  • 该接口属于输出期接口,在后台渲染置顶状态下拉时触发(文章编辑页等场景),仅影响下拉显示,不校验提交值;
  • $tz 是"置顶值 => 置顶名"数组,键来自 $zbp->lang['msg'] 中的 none、top_index、top_global、top_categorys 等语言项,须声明为引用(&$tz)修改才能生效;
  • $default 是当前文章的置顶值,过滤选项时建议保留 $default 对应项,避免当前值在界面上无对应选项;
  • 若注册时指定 PLUGIN_EXITSIGNAL_RETURN,回调返回值会直接替代整个下拉输出;
  • 置顶状态是文章属性之一,界面过滤不影响直接提交数据的绕过行为,权限控制仍应以保存流程的检查为准。