Academia Deltamontero · Documentación
Desarrollolocal_deltamodules

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.

RecorridoPá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 sha1 de 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) y reflex = false.
  • Con 'major' => true llama a mark_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.

En esta página