如何自定义Moodle邮件内容:屏蔽私信与论坛帖邮件详情
解决Moodle私信/论坛帖邮件简化显示的方法
一、原理说明
Moodle的邮件通知由**消息组件(component)+ 消息类型(message type)对应模板和语言字符串控制,直接修改核心文件会被系统升级覆盖,推荐用主题覆盖(Theme Override)**的方式,既能实现定制需求又不影响后续升级。
二、具体操作步骤
1. 准备主题覆盖目录
假设你使用默认的boost主题,在Moodle服务器的主题目录下创建对应模板路径:
- 私信模板路径:
theme/boost/templates/message/output/email/core_message/ - 论坛帖模板路径:
theme/boost/templates/message/output/email/mod_forum/
如果目录不存在,手动创建即可。
2. 创建自定义邮件正文模板
- 私信邮件:在上述私信路径下新建
instantmessage.mustache文件,内容仅写:您有新消息 - 论坛帖邮件:针对需要简化的论坛消息类型(比如新帖子
postcreated、新话题discussioncreated等),在论坛路径下新建对应模板文件,比如postcreated.mustache,内容同样仅写:
(如果需要覆盖多种论坛消息类型,重复此步骤创建对应文件即可)您有新消息
3. 自定义邮件主题(可选)
如果希望邮件主题也显示“您有新消息”,同时避免影响站内消息标题,可通过主题覆盖语言字符串:
在theme/boost/lang/zh_cn/theme_boost.php文件中添加以下内容(文件不存在则新建):
<?php $string['message:instantmessage_subject'] = '您有新消息'; $string['mod_forum:postcreated_subject'] = '您有新消息'; $string['mod_forum:discussioncreated_subject'] = '您有新消息'; // 可根据需要添加更多论坛消息类型的主题覆盖
4. 清除Moodle缓存
修改完成后,登录Moodle后台,进入站点管理 -> 开发 -> 清除缓存,确保新模板和语言字符串生效。
三、注意事项
- 此方法仅修改指定类型的邮件通知,其他邮件(如课程申请通知)的模板和内容保持默认,不会受影响。
- 若后续更换主题,需要在新主题下重复上述操作,或者将自定义模板迁移到新主题目录。
- 不要直接修改Moodle核心或插件的原始文件,否则系统升级时会被覆盖。
内容的提问来源于stack exchange,提问作者icky_0815
相关产品推荐
相关产品推荐

