Recorridos guiados (tours)
Tours de la Academia definidos en configure-tours.php sobre tool_usertours, y la clase tours que los muestra una sola vez por persona.
La Academia usa los recorridos de usuario nativos de Moodle (tool_usertours). Hay dos piezas: el script que los define y la clase que garantiza que cada uno se vea una sola vez.
Definición: configure-tours.php
Paso cosmético de moodle-config.sh (se ejecuta en cada arranque). El arreglo $TOURS define cada recorrido con name, description, pathmatch, steps y, opcionalmente, roles, category, css y major.
| Recorrido | Página (pathmatch) | Filtro |
|---|---|---|
| Academia: Bienvenida | /my/% | — |
| Academia: Tu módulo | /course/view.php% | Rol student, categoría Academia Deltamontero |
| Academia: Editar un módulo | /course/view.php% | Roles de edición (delta_jefaturas, delta_resp_contenidos, delta_gestor_m12, manager, editingteacher, administradores) y categoría de la Academia |
| Academia: Módulos | /local/deltamodules/modules.php% | — |
| Academia: Editor del repaso | /local/deltamodules/questions.php% | — |
| Academia: Reglas de la Academia | /local/deltamodules/rules.php% | — |
| Academia: Postulantes | /local/candidate_enrollment/candidates.php% | — |
| Academia: Clientes | /local/deltamodules/clients.php | — |
| Academia: Reportes | /local/deltamodules/reports.php | — |
| Academia: Personal Deltamontero | /local/deltamodules/people.php% | — |
Los pasos se escriben con dos ayudantes: $u(título, contenido) para un paso sin elemento (centrado) y $s(selector, título, contenido, ubicación) para un paso sobre un selector CSS.
Comportamiento del script
- Idempotente por contenido: calcula un
sha1de la definición y lo guarda en la configuración del tour (deltahash). Si no cambió, no lo toca (así no se vuelve a mostrar a quien ya lo vio). Si cambió, actualiza el tour en su lugar y reemplaza sus pasos. - Configuración común: pasos numerados, botón final "Entendido",
SHOW_TOUR_UNTIL_COMPLETE, fondo oscurecido,orphan = false(si el elemento no está en la página, el paso se salta) yreflex = false. - Con
'major' => truellama amark_major_change()para mostrarlo de nuevo a todos tras un cambio grande. - Desactiva los recorridos genéricos de Moodle sobre las mismas pantallas (
tour_navigation_course_student,course_teacher,mycourses,dashboard). El del calificador se mantiene. - Al final notifica el cambio a la caché de recorridos.
Una sola vez por persona: tours::started
Moodle da un tour por visto solo al llegar al final y compara al segundo la fecha en que se vio con la de publicación (majorupdatetime) y con la del pedido "Realizar tour de esta página"; en el empate lo volvía a mostrar en cada ingreso.
El observador local_deltamodules\tours::started (evento \tool_usertours\event\tour_started) marca el tour como visto apenas se entrega: si es la primera vez fija majorupdatetime un segundo antes, borra la preferencia de pedido (TOUR_REQUESTED_BY_USER) y guarda la de completado (TOUR_LAST_COMPLETED_BY_USER) con la hora actual. Solo vuelve a mostrarse con el botón "?" del pie → "Realizar tour de esta página".
Interfaz
El JavaScript global (additionalhtmlhead) agrega a cada paso una X para cerrar (data-role="end"), un botón "‹ Anterior" y oculta "Salir del tour" en los pasos intermedios. Ver Interfaz global.
Para agregar un tour, ver Guía de cambios.
Certificados
Certificado de cada módulo con mod_customcert - plantilla del sitio, bloqueo por completado, candado real, revocación y verificación por código.
Navegación y hooks
Hooks de local_deltamodules, redirecciones de pantallas de Moodle, barra superior, avisos para el super administrador, vista de estudiante, callbacks de lib.php y la lista blanca de Administración del sitio.