You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Moodle 4.0.1 Boost主题如何向课程页二级导航菜单添加选项

Moodle 4.0.1 课程页二级导航(secondary menu)自定义实现方案

自定义菜单项添加方法

Moodle 4.0版本后的二级导航不是通过静态文件配置、硬编码在模板里的,整套逻辑基于导航API动态生成,直接在根目录搜索菜单关键字找不到对应代码是正常的。基于Boost主题做修改时,优先用子主题扩展的方式实现,不要直接修改核心或Boost原生文件,避免版本升级后配置被覆盖,具体实现步骤:

  • 在你使用的Boost子主题的lib.php文件中,添加课程导航扩展回调,示例代码如下:
function yourthemename_extend_navigation_course($navigation, $course, $context) {
    // 定位到当前页面的二级导航容器
    $secondarynav = $navigation->get('secondarynavigation');
    if (!$secondarynav) {
        return;
    }
    // 插入自定义菜单项
    $customitem = $secondarynav->add(
        get_string('custommenutitle', 'theme_yourthemename'), // 菜单显示文本,建议写入主题语言包
        new moodle_url('/your/custom/path.php', ['courseid' => $course->id]), // 菜单跳转地址
        navigation_node::TYPE_CUSTOM,
        null,
        'custommenu_unique_key',
        new pix_icon('i/report', '') // 菜单前置图标,不需要可留空
    );
    // 标记该节点在二级导航显示,按需配置权限规则
    $customitem->showinsecondarynavigation = true;
    // 示例:仅课程管理员可见该菜单
    if (!has_capability('moodle/course:update', $context)) {
        $customitem->remove();
    }
    // 如需调整排序,给节点设置weight属性,数值越小排序越靠前
    $customitem->weight = -10;
}
  • 代码保存后,清空Moodle全站缓存,刷新课程页面即可看到新增的菜单项。
  • 如果需要调整默认菜单项的显隐、排序,不需要额外写逻辑的场景,可以直接在主题配置中增加二级导航管理项,通过主题设置页可视化控制。

注意:不要直接修改/course/classes/navigation/views.php中的核心导航生成逻辑,所有自定义逻辑必须放在子主题或本地自定义插件中实现,避免版本升级丢失修改。

Mustache模板关联定位方法

目前没有单独公开的全量mustache文件映射清单,定位对应模板可以用两种内置方式,效率远高于全目录搜索:

  • 开启主题设计模式:进入站点管理-外观-主题-主题设置,开启「主题设计模式」后刷新目标页面,用浏览器开发者工具查看DOM结构,所有mustache渲染的元素都会携带data-template属性,直接标注对应模板的命名空间路径,比如二级导航对应的模板为core/navigation/secondary,对应实体文件路径为/lib/templates/navigation/secondary.mustache。
  • 命令行检索:在站点根目录执行检索命令grep -r "secondarynavigation" --include="*.php" --include="*.mustache" .,即可筛选出所有和二级导航相关的渲染逻辑、调用位置。
  • 导航节点的属性、回调触发规则等开发规范,可以在Moodle官方开发者文档中搜索「Navigation API」查看对应版本的说明。

参考界面截图

二级导航界面截图1
二级导航界面截图2


内容的提问来源于stack exchange,提问作者Dean Howard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 16:33:39