Hola,
tengo una duda sobre si se puede configurar moodle 2.1 para que el administrador reciba un email de aviso cuando un alumno se haya creado una cuenta de registro previa a la matriculación de un curso.
Gracias
Un saludo
Hola,
tengo una duda sobre si se puede configurar moodle 2.1 para que el administrador reciba un email de aviso cuando un alumno se haya creado una cuenta de registro previa a la matriculación de un curso.
Gracias
Un saludo
Hola Fran,
Que yo sepa la tarea es para un programador, si puedes hacerlo, tienes que modificar un poco el núcleo del Moodle, más precisamente moodlelib.php que está en /lib
Primero, en la función es "send_confirmation_email($user)" agregar al final un llamado a una nueva función que tienes que crear, algo como:
send_mail_to_admin_students($user)
Luego crear la función, algo como:
function send_mail_to_admin_students($user) {
global $CFG;
global $USER;
$site = get_site();
$supportuser = generate_email_supportuser();
$countries = get_list_of_countries();
$data = new object();
$data->firstname = $user->firstname;
$data->lastname = $user->lastname;
$data->sitename = format_string($site->fullname);
$data->userid = format_string($user->id);
$data->correo = $user->email;
$message = get_string('emailinfonewreg', '', $data);
$subject = get_string('emailinfonewregsubject', '', format_string($site->fullname));
return email_to_user($supportuser, $supportuser, $subject, $message);
}
Finalmente agregas las nuevas variables de texto (emailinfonewregsubject) en el archivo de idioma.
Saludos
Hola Enerto, seguí us pasos para que mandara un email al administrador cuando se automatricula un alumno y ahora ni me manda el email al administrador ni al alumno para activar s cuenta. me dice que no se ha podido mandar un email al alumno.toqué los archivos moodlelib.php y moodle.php pero al ver que una vez que no fui capaz de que funcionara el envío de emails a administradores cuando se automatriculara un alumno, estituí los archivos tocados por los originales, y ahora no me envía emails ni a mí, ni a los alumnos automatriculados. He incluso vuelto a migrar la plataforma (ya que antes de todo esto había realizado una migración de un hosting a otro, y funcionaba).¿Alguna sugerencia?
Gracias de antemano
Hola Fran, realmente me sorprende lo que me dices. Hago frecuentes cambios en los scripts. Antes de modificarlos le cambio el nombre al original y lo dejo en su lugar para hacer un roll-back más seguro por ej. moodlelib_orig.php y siempre me funciona. ¿Me dices que volviste a instalar la plataforma y no funciona? creo que eso ya escapa a nuestro script. ¿pusiste el depurador de mails?
En nuestro caso hicimos así
function send_user_request($user) {
global $CFG;
$site = get_site();
$supportuser = generate_email_supportuser();
$data = new object();
$data->firstname = fullname($user);
$data->sitename = format_string($site->fullname);
$subject = "$data->sitename: Nueva solicitud de cuenta para $data->firstname";
$message = "Estos son los detalles de la solicitud de cuenta:\n\n";
$message = $message."Username: $user->username\nPassword: $user->password\n";
$message = $message."Email: $user->email\nFirst Name: $user->firstname\nLast Name: $user->lastname\n";
$message = $message."Ciudad: $user->city\nCountry: $user->country\n\n";
$message = $message."Por favor, notifique al usuario por email cuando confirme su cuenta.\n";
$messagehtml = text_to_html($message, false, false, true);
$user->mailformat = 1; // Always send HTML version as well
// The first user is the To: address, and the second is the From: address
return email_to_user($supportuser, $supportuser, $subject, $message, $messagehtml);
}
Muchas gracias a ambos por su prolijidad. Ahora tengo una duda que proviene de mi desconocimiento de php.
En el caso de la respuesta de Ernesto no sabría añadir las nuevas variables de texto (emailinfonewregsubject) en el archivo de idioma al código previo que me das. Entiendo que al final de send_confirmation_email($user) tengo que pegar el codigo que me pasas, pero no sé añadir las nuevas variables de texto (emailinfonewregsubject), al código que me das.
Pablo en tu caso, quiero corroborar que tendría que copiar el código que me das en el lugar que me dice Ernesto ¿no? Es decir al final de send_confirmation_email($user)
Muchas gracias a ambos
Hola puse el código que me dijiste tanto dentro de la function send_confirmation_email($user) , como fuera y no envió ningún correo al administrador avisando del registro del studiante. ¿Es que el código que me diste va en otro lugar? Como no especificaste donde iba , di por supuesto que era donde decía la respuesta anterior.
Agradecería que me especificase para poder resolver este problema.
Saludos
Hola Fran,
Creo que no me expliqué bien, al final de la función send_confirmation_email($user), antes de la llamada al envío de mail, pones send_mail_to_admin_students($user), y aparte, creas la nueva función send_mail_to_admin_students($user). El mail lo enviará al administrador de la plataforma que figura en Administración del sitio>Servidor>Email>Email de apoyo.
El texto en español lo pones en el script moodle.php de la carpeta lang>es_utf8/moodle.php de la siguiente manera:
$string['emailinfonewregsubject'] = 'Nuevo usuario registrado';
$string['emailinfonewreg'] = '
Se ha Registrado el usuario: $a->firstname $a->lastname
email: $a->correo
----------------------------------------------------------------';
Una vez que agregues todo, ve al menú Administración del Sitio>Depurando y selecciona "DESARROLLADOR: mensajes extra de depuración" y tilda Mostrar mensajes de depuración y Depurar envíos de email, para que te podamos ayudar con los errores que te indique.
Luego de las pruebas destlda todo!! por que asustarás a los usuarios!
Espero que lo logres,
Saludos
lo primero , muchísimas gracias por tu implicación. He seguido tus pasos y al crear un usuario me dice que "Se ha intentado enviarle un email sin éxito", y arriba me aparece un texto :
Could not instantiate mail function. Could not instantiate mail function.
El tramo del moodle.php, siguiendo tus indicaciones, me quedó así
function send_confirmation_email($user) {
global $CFG;
$site = get_site();
$supportuser = generate_email_supportuser();
$data = new stdClass();
$data->firstname = fullname($user);
$data->sitename = format_string($site->fullname);
$data->admin = generate_email_signoff();
$subject = get_string('emailconfirmationsubject', '', format_string($site->fullname));
$username = urlencode($user->username);
$username = str_replace('.', '%2E', $username); // prevent problems with trailing dots
$data->link = $CFG->wwwroot .'/login/confirm.php?data='. $user->secret .'/'. $username;
$message = get_string('emailconfirmation', '', $data);
$messagehtml = text_to_html(get_string('emailconfirmation', '', $data), false, false, true);
$user->mailformat = 1; // Always send HTML version as well
send_mail_to_admin_students($user);
//directly email rather than using the messaging system to ensure its not routed to a popup or jabber
return email_to_user($user, $supportuser, $subject, $message, $messagehtml);
}
function send_mail_to_admin_students($user) {
global $CFG;
global $USER;
$site = get_site();
$supportuser = generate_email_supportuser();
$countries = get_list_of_countries();
$data = new object();
$data->firstname = $user->firstname;
$data->lastname = $user->lastname;
$data->sitename = format_string($site->fullname);
$data->userid = format_string($user->id);
$data->correo = $user->email;
$message = get_string('emailinfonewreg', '', $data);
$subject = get_string('emailinfonewregsubject', '', format_string($site->fullname));
return email_to_user($supportuser, $supportuser, $subject, $message);
}
Creo que añadí lo que me comentaste, donde me dijiste
También modifiqué lo que me dijiste en Depurando, pero como te comento me da el error arriba señalado.
El enlace de la plataforma por si quieres comprobar el erro al intentar registrarte es http://www.franjimenezdealba.com/formacion/moodle
Gracias de nuevo por todo
Saludos
Si no me equivoco eso mismo lo hace este plugin
General plugins (Local): Message provider
https://moodle.org/plugins/browse.php?list=category&id=18&p=1
Un saludo.
O este también puede valer.
General plugins (Local): Moodle welcome
https://moodle.org/plugins/browse.php?list=category&id=18&p=1
Otro saludo.