如何利用CoreMainMenuHomeDelegate移除Moodle Mobile的Site Home标签?
首先明确:CoreMainMenuHomeDelegate本身无法直接移除Site Home标签——这个Delegate的设计定位就是用来向首页菜单添加自定义项,没有提供修改或删除原有系统菜单项的接口。
不过可以通过Moodle Mobile的钩子(Hook)机制实现移除,具体操作步骤如下:
- 搭建自定义Moodle Mobile插件项目,按照官方插件开发规范初始化基础结构
- 在插件的核心逻辑文件(比如
main.js)中,使用core.mainmenu.home.items钩子拦截首页菜单项数组:import { addHook } from '@core/utils/hooks'; addHook('core.mainmenu.home.items', (items) => { // 过滤掉标识为'sitehome'的Site Home项 return items.filter(item => item.type !== 'sitehome'); }); - 打包插件并部署到你的Moodle站点,在移动端应用中启用该插件后,Site Home标签就会被移除
需要注意:Site Home的标识可能因Moodle版本略有差异,如果上述代码不生效,可以打印items数组查看具体的标识字段(比如component或name),调整过滤条件即可。
内容的提问来源于stack exchange,提问作者egp_s2s
相关产品推荐
相关产品推荐

