分类下拉自定义
Filter_Plugin_OutputOptionItemsOfCategories 是 Z-BlogPHP OutputOptionItemsOfCategories() 函数内的接口,该函数按分类层级生成后台的分类 select 下拉选项(选项文本为带层级符号的 SymbolName)。接口在选项数组收集完成、输出 option 之前触发,可追加或过滤分类选项。
接口信息
| 接口 | 参数 | 说明 |
|---|---|---|
Filter_Plugin_OutputOptionItemsOfCategories | $default, $tz | 定义 OutputOptionItemsOfCategories 函数里的接口 |
完整案例
下例在分类下拉末尾追加一个"不限分类"选项(键为 0),供筛选表单等场景使用:
php
<?php
RegisterPlugin("demoAPP", "ActivePlugin_demoAPP");
function ActivePlugin_demoAPP()
{
Add_Filter_Plugin('Filter_Plugin_OutputOptionItemsOfCategories', 'demoAPP_OutputOptionItemsOfCategories');
}
function demoAPP_OutputOptionItemsOfCategories($default, &$tz, $type)
{
// $tz 的键为分类 ID,值为带层级符号的分类名,按引用修改即可
$tz[0] = '不限分类';
}启用插件后,后台所有使用该函数输出的分类下拉末尾都会出现"不限分类"选项。
注意事项
- 该接口属于输出期接口,在后台渲染分类下拉时触发(文章编辑页、模块编辑页、各类筛选表单等场景),仅影响下拉显示,不校验提交值;
- 源码调用处实际传入
$default, $tz, $type三个参数,比清单多出$type(分类类型,与OutputOptionItemsOfCategories($default, $type)的第二参数一致); $tz是"分类 ID => 分类名"数组,须声明为引用(&$tz)修改才能生效;选项按数组顺序输出,键 0 的追加项会排在末尾;- 若注册时指定
PLUGIN_EXITSIGNAL_RETURN,回调返回值会直接替代整个下拉输出; - 追加键 0 这类非分类 ID 的选项后,注意接收表单的一方要能处理该值,避免把 0 当作真实分类 ID 存库。