Moodle电子邮件模板

时间:2017-04-22 09:11:59

标签: php moodle

我正在研究基于Moodle的学习管理系统。我想为每封电子邮件添加电子邮件页眉和页脚。

我在Moodle中做了一些更改,以便在./lib/moodlelib.php中添加图像,如下所示:

function email_to_user($user, $from, $subject, $messagetext, $messagehtml = '', $attachment = '', $attachname = '',
                       $usetrueaddress = true, $replyto = '', $replytoname = '', $wordwrapwidth = 79) {

    global $CFG, $PAGE, $SITE;
    // Append image at top
    if($messagehtml){
        $tmp = $messagehtml;

       // Added image here
       $messagehtml = '<img src="'.$CFG->wwwroot.'/images/logo.png" alt="LMS" /><br/>';

       // $messagehtml = $image;
        $messagehtml .= $tmp;
    }
    if($messagetext){
        $tmp = $messagetext;
        // Added image here
        $messagetext = '<img src="'.$CFG->wwwroot.'/images/logo.png" alt="LMS" /><br/>';
       // $messagehtml = $image;
        $messagetext .= $tmp;
    }   
  ....................

但我想将页眉和页脚作为固定模板。请帮帮我。

2 个答案:

答案 0 :(得分:3)

您可以在language file中创建一个邮件标题(在英语中直接在/lang/en下或在插件中),然后在语言文件中添加以下字符串:

$string ['message_header'] = '<p> write here whatever your style and HTML structure you want in your header</p>
adding your image as well <img src="'.$CFG->wwwroot.'/images/logo.png" alt="LMS" />';

然后你也可以为你的页脚写一个字符串:

$string ['message_footer'] = 'Your HTML footer here';

最后,您可以在消息中插入字符串:

$message = 'here your body';

// insert message header - if your language string is in /lang/moodle.php:

$message = get_string ( 'message_header') . $message;

// insert message footer - if your language string is in your /local/myplugin:

$message .= get_string ( 'message_footer', 'local_my_plugin' );

这样,如果您直接在语言文件中更改页眉和页脚,可以随意自定义页眉和页脚(或者在数据库中。请参阅here)。

答案 1 :(得分:2)

有点晚了,但我希望它可以帮助其他人: https://docs.moodle.org/dev/Themed_emails 只需在 /var/www/html/moodle/lib/templates 中查找电子邮件模板。名为 email_html.mustache 的模板应该是正确的。