记录技术成长,奔向未来!

主菜单的问题

摘要: 主菜单的数据表中含有的字段,一般不宜作为主菜单出现,应作为主菜单的子菜单!

问题不在于菜单数量,而是 left.php 中判断当前活动模块时,$parent_mod 逻辑可能干扰了全局变量或输出。将标签管理放在文章管理的子菜单下正常,说明只要标签管理作为独立的一级菜单,就会触发某种冲突。

既然子菜单方式正常,我们可以采用这个方案。按以下修改:

1. 修改 admin/left.php,将标签管理作为文章管理的子菜单

找到文章管理的子菜单数组,增加一项:

php
[
    'name' => '文章管理',
    'icon' => '📝',
    'sub' => [
        ['mod' => 'article_list', 'name' => '文章列表'],
        ['mod' => 'article_add', 'name' => '写文章'],
        ['mod' => 'tagsadmin', 'name' => '标签管理'],   // 新增
    ]
],

同时,删除原来独立的 ['mod' => 'tagsadmin', 'name' => '标签管理', 'icon' => '🔖'] 行。

2. 修改 admin/index.php 中的白名单

确保 $allowed_mods 包含 'tagsadmin'(如果还没有)。

3. 确保 admin/modules/tagsadmin.php 正常工作

使用我们最终提供的 tagsadmin.php 代码(只有展示,不含删除/合并),或者使用完整功能版(但必须确保没有输出干扰)。因为作为子菜单,它应该不会影响其他模块的重定向。

4. 测试

  • 侧边栏文章管理下会出现“标签管理”子菜单。

  • 点击后正常显示标签列表。

  • 文章添加/编辑/删除等操作不再出现白屏。

这样既保留了后台标签管理功能,又避开了独立菜单项的冲突。这个现象可能是由于 PHP 版本或框架在解析独立菜单时对 session 或 header 的影响,但作为子菜单就正常。

发表评论 (0)

留下你的足迹

验证码 点击图片刷新