domingo, 19 de agosto de 2018

Moodle: Enviar email como HTML




  • Se añade un quinto valor a la función email_to_user que corresponde con el mensaje en HTML.
Archivo en el que reemplazar texto: moodle/lib/moodlelib.php
Texto a buscar: email_to_user($user, $supportuser, $subject, $message);
Se reemplaza por: email_to_user($user, $supportuser, $subject, $message, $message);
  • Se elimina la función html_to_text
Archivo: moodle/message/lib.php
Texto a buscar: $eventdata->fullmessage = html_to_text($eventdata->fullmessagehtml);
Se reemplaza por: $eventdata->fullmessage = $eventdata->fullmessagehtml;
  • Dónde escribir el texto HTML:

- Personalizar email auto-matriculación en curso:
Cuando el usuario se auto-matricula en un curso.
Administración del curso/Usuarios/Método de matriculación/Auto-matriculación (estudiante)
Rellenar con el texto HTML en la casilla «Mensaje personalizado de bienvenida» y guardar.

- Personalización email alta usuario manual:
Cuando el administrador lo añade de forma manual al sitio, tanto de forma individual como en subida con fichero CSV.
Administración del sitio/Idioma/Personalización idioma
core: moodle.php
string: newusernewpasswordtext
Escribir el texto HTML en la casilla «Traducción local personalizada» y guardar los cambios del paquete de idioma.



- Personalizar email de restablecimiento de contraseña:
Cuando el usuario ha olvidado su usuario o contraseña, y busca por nombre de usuario o contraseña se le envía el e-mail de restablecimiento.
Administración del sitio/Idioma/Personalización idioma
core: moodle.php
string: emailresetconfirmation
Escribir el texto HTML en la casilla «Traducción local personalizada» y guardar los cambios del paquete de idioma.

- Personalizar email de inscripción manual en el sitio:
Cuando el usuario se registra en el sitio.
Administración del sitio/Idioma/Personalización idioma
core: moodle.php
string: emailconfirmation
Escribir el texto HTML en la casilla «Traducción local personalizada» y guardar los cambios del paquete de idioma.

Personalizar email de solicitud de nueva contraseña:
Administración del sitio/Idioma/Personalización idioma
core: moodle.php
string: emailpasswordconfirmation
Escribir el texto HTML en la casilla «Traducción local personalizada» y guardar los cambios del paquete de idioma.

Personalizar email con nueva contraseña:
Administración del sitio/Idioma/Personalización idioma
core: moodle.php
string: newpasswordtext
Escribir el texto HTML en la casilla «Traducción local personalizada» y guardar los cambios del paquete de idioma.

Probado en Moodle 3.3.7, 3.8.5

5 comentarios:

  1. Yo utilizo moodle 3.1 y no ha funcionado, sigue mandando como texto :(
    en mi funcion me aparece estos comandos:
    function email_to_user($user, $from, $subject, $messagetext, $messagehtml = '', $attachment = '', $attachname = '', $usetrueaddress = true, $replyto = '', $replytoname = '', $wordwrapwidth = 79)

    en tu explicacion indicas:
    Se reemplaza por: email_to_user($user, $supportuser, $subject, $message, $message);
    dos parametros $messages iguales?
    Agradezco de antemano cualquier ayuda :)

    ResponderEliminar
    Respuestas
    1. En mi fichero moodle/lib/moodlelib.php aparece cinco veces la línea:
      return email_to_user($user, $supportuser, $subject, $message, $message); //JP add last param $message. sí dos veces $message

      Eliminar
    2. Lo tuyo parece la declaración de la función, en mi caso es un return y el cambio fue solo añadir otra vez el parámetro $message. Parecen archivos distintos en el contenido. Será por la versión. 🤷‍♂️

      Eliminar
  2. A mí tampoco me ha funcionado en moodle 3.6, remplacé las 5 líneas en el primer archivo, y los cambios del segundo archivo y me arroja este error:
    Fatal error: Uncaught Error: Call to undefined function current_language() in /var/www/html/lib/setuplib.php:713 Stack trace: #0 /var/www/html/lib/setuplib.php(572): get_docs_url() #1 /var/www/html/lib/setuplib.php(363): get_exception_info(Object(ParseError)) #2 [internal function]: default_exception_handler(Object(ParseError)) #3 {main} thrown in /var/www/html/lib/setuplib.php on line 713

    ResponderEliminar
  3. uso Moodle Moodle 3.10+ (Build: 20201224)
    funcionó Solo realizando los cambios desde aqui:

    Administración del sitio/Idioma/Personalización idioma
    core: moodle.php
    string: newusernewpasswordtext
    Escribir el texto HTML en la casilla «Traducción local personalizada» y guardar los cambios del paquete de idioma.

    no hubo necesidad de realizar nada más

    ResponderEliminar