logic hooks

logic hooks

de Daniel Garcia Sanchez -
Número de respuestas: 2

Hola a tod@s sacar lengua soy nuevo en Moodle, no tengo mucha experiencia con él, pero por lo poco que he visto, me parece una excelente herramienta ... para empezar tengo una pregunta:

¿cuál sería el proceso para implementar algo parecido a los logic hooks? Me explico un poco ... vengo de personalizar un sugarcrm bastante personalizado (software de gestión empresarial), y los desarrolladores de sugarcrm implementaron una herramienta muy buena: logic hooks; que permitía realizar diversas acciones después de otra acción. Un ejemplo, que yo utilizaba mucho en sugarcrm, es el envío de emails después de que un usuario de sugarcrm creaba un registro. De esta manera, yo podía personalizar el email que iba a enviarse....

No sé qué utilidad pueda tener ahora mismo...pero me gustaría saber cómo funciona esto a nivel de código en Moodle.

Saludos

Daniel

Promedio de valoraciones: -
En respuesta a Daniel Garcia Sanchez

Re: logic hooks

de David Monllaó -

Hola Daniel,

http://docs.moodle.org/dev/Events_API, aquí tienes una lista de eventos que lanza moodle 2.x:

./admin/uploaduser.php: events_trigger('user_updated', $existinguser);
./admin/uploaduser.php: events_trigger('user_created', $user);
./auth/email/auth.php: events_trigger('user_created', $user);
./auth/ldap/auth.php: events_trigger('user_created', $user);
./cohort/lib.php: events_trigger('cohort_added', $cohort);
./cohort/lib.php: events_trigger('cohort_updated', $cohort);
./cohort/lib.php: events_trigger('cohort_deleted', $cohort);
./cohort/lib.php: events_trigger('cohort_member_added', (object)array('cohortid'=>$cohortid, 'userid'=>$userid));
./cohort/lib.php: events_trigger('cohort_member_removed', (object)array('cohortid'=>$cohortid, 'userid'=>$userid));
./course/lib.php: events_trigger('course_category_deleted', $category);
./course/lib.php: events_trigger('course_category_deleted', $category);
./course/lib.php: events_trigger('course_created', $course);
./course/lib.php: events_trigger('course_updated', $course);
./course/mod.php: events_trigger('mod_deleted', $eventdata);
./course/modedit.php: events_trigger('mod_updated', $eventdata);
./course/modedit.php: events_trigger('mod_created', $eventdata);
./enrol/manual/locallib.php: events_trigger('user_unenrol_modified', $enrolment);
./group/lib.php: events_trigger('groups_member_added', $eventdata);
./group/lib.php: events_trigger('groups_member_removed', $eventdata);
./group/lib.php: events_trigger('groups_group_created', $group);
./group/lib.php: events_trigger('groups_grouping_created', $data);
./group/lib.php: events_trigger('groups_group_updated', $group);
./group/lib.php: events_trigger('groups_grouping_updated', $data);
./group/lib.php: events_trigger('groups_group_deleted', $group);
./group/lib.php: events_trigger('groups_grouping_deleted', $grouping);
./group/lib.php: events_trigger('groups_members_removed', $eventdata);
./group/lib.php: events_trigger('groups_groupings_groups_removed', $courseid);
./group/lib.php: events_trigger('groups_groups_deleted', $courseid);
./group/lib.php: events_trigger('groups_groupings_deleted', $courseid);
./lib/accesslib.php: events_trigger('role_assigned', $ra);
./lib/accesslib.php: events_trigger('role_unassigned', $ra);
./lib/accesslib.php: events_trigger('role_unassigned', $ra);
./lib/enrollib.php: events_trigger('user_enrolled', $ue);

./lib/enrollib.php: events_trigger('user_unenrol_modified', $ue);
./lib/enrollib.php: events_trigger('user_unenrolled', $ue);
./lib/enrollib.php: events_trigger('user_unenrolled', $ue);
./lib/eventslib.php:function events_trigger($eventname, $eventdata) {
./lib/moodlelib.php: events_trigger('user_logout', $params);
./lib/moodlelib.php: events_trigger('user_created', $DB->get_record('user', array('id'=>$user->id)));
./lib/moodlelib.php: events_trigger('user_updated', $DB->get_record('user', array('id'=>$oldinfo->id)));
./lib/moodlelib.php: events_trigger('user_deleted', $user);
./lib/moodlelib.php: events_trigger('course_deleted', $course);
./lib/moodlelib.php: events_trigger('course_content_removed', $course);
./lib/portfolio/exporter.php: events_trigger('portfolio_send', $this->id);
./mod/assignment/type/upload/assignment.class.php: events_trigger('assessable_file_uploaded', $eventdata);
./mod/assignment/type/upload/assignment.class.php: events_trigger('assessable_files_done', $eventdata);
./mod/assignment/type/uploadsingle/assignment.class.php: events_trigger('assessable_file_uploaded', $eventdata);
./mod/quiz/attemptlib.php: events_trigger('quiz_attempt_submitted', $eventdata);
./mod/quiz/startattempt.php:events_trigger('quiz_attempt_started', $eventdata);
./user/edit.php: events_trigger('user_updated', $usernew);
./user/editadvanced.php: events_trigger('user_created', $usernew);
./user/editadvanced.php: events_trigger('user_updated', $usernew);
./user/emailupdate.php: events_trigger('user_updated', $user);