Skip to content

作者下拉前置扩展 ​

Filter_Plugin_OutputOptionItemsOfMember_Begin 是 Z-BlogPHP OutputOptionItemsOfMember() 函数内的前置接口,在该函数构建作者下拉选项的最开始触发。此时用户列表尚未加载构建,传入的 $tz 选项数组为空,插件可以在此预填充选项或直接接管输出。该函数生成的下拉用于文章编辑页选择作者等场景。

接口信息 ​

接口参数说明
Filter_Plugin_OutputOptionItemsOfMember_Begin$default, $posttype, $action, $tz定义 OutputOptionItemsOfMember 函数里的前置接口

完整案例 ​

下例在作者下拉最前面预置一个"不限作者"选项。因为后续系统构建的用户列表会继续写入同一个 $tz 数组,预置项会保留在输出开头:

php
<?php

RegisterPlugin("demoAPP", "ActivePlugin_demoAPP");

function ActivePlugin_demoAPP()
{
    Add_Filter_Plugin('Filter_Plugin_OutputOptionItemsOfMember_Begin', 'demoAPP_OutputOptionItemsOfMember_Begin');
}

function demoAPP_OutputOptionItemsOfMember_Begin($default, $posttype, $checkaction, &$tz)
{
    // $tz 此时为空数组,通过引用填充的项会保留到最终输出
    $tz[0] = '不限作者';
}

启用插件后,后台文章编辑页的作者下拉第一项即为"不限作者"。

注意事项 ​

  • 该接口属于输出期接口,在后台渲染作者下拉时触发,仅影响下拉显示,不校验提交值;
  • 源码调用处传入 $default, $posttype, $checkaction, $tz 四个参数,清单中的 $action 在源码中形参名为 $checkaction(权限动作名);$tz 需声明为引用(&$tz)修改才能生效;
  • 前置阶段 $tz 为空数组,后续系统会按权限把用户逐个写入 $tz,预置项与系统项会合并输出(键冲突时系统值生效);
  • 若注册时指定 PLUGIN_EXITSIGNAL_RETURN,回调返回值会直接替代整个下拉输出,不再执行后续用户列表构建;
  • 需要按用户等级过滤最终列表时,应改用 Filter_Plugin_OutputOptionItemsOfMember 接口,它在用户列表构建完成之后触发。