Skip to content
Advertisement

Moodle email templates

I am working on a Learning Management System build upon Moodle. I want to add an email header and footer for each email.

I did some change in Moodle for adding an image in ./lib/moodlelib.php as follows:

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;
    }   
  ....................

but I want the header and footer as fixed templates. Please help me.

Advertisement

Answer

You could create a message header in a language file (in English either directly under /lang/en or in a plugin) and then add the following string in the language file:

$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" />';

Then you could write a string for your footer as well:

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

And finally you could insert your strings in the message:

$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' );

This way your header and footer may be customized at will if you change them directly in the language file (or, in the DB. See here).

User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement