Interfaz global (CSS y JavaScript)
Estilos del tema Boost Union y el CSS y JavaScript que moodle-config.sh inyecta en todas las páginas mediante additionalhtmlhead, además de los textos personalizados.
Gran parte del aspecto y del comportamiento de la interfaz no vive en los plugins sino en ajustes que moodle-config.sh escribe en cada arranque. Para cambiarlos se edita infrastructure/moodle/moodle-config.sh (o el script indicado) y se despliega.
Tema Boost Union
Ajuste (theme_boost_union) | Contenido |
|---|---|
brandcolor | #1361A4 |
scsspre | Variables de Bootstrap antes de compilar: colores de marca ($primary #1361A4, $danger, $info…), radios de borde (botones tipo píldora), colores de la barra oscura |
scss | Estilos de la Academia sobre el tema compilado: fuente Century Gothic (archivos en los recursos adicionales del tema) con Nunito de respaldo e Inter para datos y tablas; tokens de color en :root; barra superior azul con degradado; logo; cajón lateral; selectores de usuarios; página de aceptación del aviso de datos; páginas de cambio y recuperación de contraseña; tooltips; botones; tarjetas; tablas con encabezado azul; índice del curso; página del certificado |
backgroundimageposition, backgroundimagesizeoption | center center, cover |
Después se fuerza la recompilación (theme_reset_all_caches()). set-logos.php sube los logos, el fondo (/opt/delta-logos/background.png) y las fuentes (/opt/delta-fonts/) al almacenamiento del tema.
themedesignermode = 0 y cachejs = 1: después de cambiar el SCSS hace falta desplegar (el arranque purga las cachés) o purgarlas a mano.
additionalhtmlhead
Todo el CSS y JavaScript global va en additionalhtmlhead y no en additionalhtmlfooter: Moodle no imprime el pie adicional en las páginas con diseño embedded, que es justamente el que usa el reproductor de mod_interactivevideo. El contenido se arma en la variable HEAD_JS de moodle-config.sh (un heredoc sin expansión) y antes de guardarlo se reemplazan dos marcadores:
| Marcador | Se reemplaza por |
|---|---|
__MOODLE_REL__ | La versión de Moodle ($CFG->release, sin el número de compilación; por defecto 4.5) |
__DELTA_LOGO__ | La ruta del logo compacto del tema (por eso set-logos.php corre antes) |
El chat de IA y otras piezas van en línea (no en archivos AMD ni en el SCSS) para que funcionen aunque Coolify o el navegador sirvan cachés antiguas del tema o del JavaScript.
Bloques, en el orden en que aparecen
| Bloque | Qué hace |
|---|---|
| Sin diálogos nativos | Desactiva el aviso "¿Salir del sitio?" del navegador y el verificador de cambios de los formularios de Moodle; los elementos con data-delta-confirm (y opcionalmente data-delta-confirm-title y data-delta-confirm-yes) piden confirmación con el modal de Moodle (core/notification); si hay cambios sin guardar, al salir por un enlace pregunta con el modal. Emite el evento delta:beforeunload para los scripts del examen. |
| Botones de los tours | X para cerrar, "‹ Anterior" y ocultar "Salir del tour" en los pasos intermedios. |
| Pie "?" | Pone primero la cuenta con la que se inició sesión. |
| Tooltips del cajón | Quita el tooltip doble de los botones del cajón lateral. |
| Siguiente actividad | Botón "Siguiente actividad →" en las páginas view.php de las actividades (en el video, en la barra del reproductor), con local_deltamodules_get_next_activity; en el video, etiqueta del completado "Pendiente / Hecho". |
| Barra informativa y reglas CSS | Barra discreta abajo a la derecha (año, "Deltamontero — Todos los derechos reservados", versión de Moodle, fecha y hora; se oculta sobre el video). CSS: oculta la navegación secundaria del curso a quien lo rinde, la miga de pan fuera de la administración, el botón de nueva previsualización de cuestionarios, las herramientas de autor dentro del examen y del reproductor, el chat sobre el video y durante el examen; contraste en encabezados azules. Anti-descarga suave: sin clic derecho ni arrastre sobre imágenes y videos. |
| Requisitos del certificado | Oculta de la lista "No disponible hasta que…" lo ya completado (local_deltamodules_get_completed_cmids). |
| Antitrampa del examen | Solo en /mod/quiz/attempt.php: control de cambio de pantalla con conteo en el servidor (local_deltamodules_exam_strike), aviso que queda en pantalla hasta pulsar Entendido, envío automático al llegar al límite y bloqueo de los enlaces que no son del examen (Repasos). |
| Lista de usuarios | En /admin/user.php, aviso con botón a Personal Deltamontero. |
| Subir cursos | En /admin/tool/uploadcourse/, aviso del asistente de módulos. |
| Botón Atrás | Recarga la página si el navegador la restaura desde su caché de historial (pageshow con persisted). |
| Login | Pie de la tarjeta más limpio y "ojo" de la contraseña que la muestra solo mientras se mantiene presionado (la opción nativa loginpasswordtoggle está apagada). |
| Responsive | En pantallas pequeñas, las tablas anchas se desplazan dentro de su recuadro. |
| Informes personalizados | En el editor de Report Builder: logo y título legibles, y el diálogo "Nuevo informe" reducido a nombre y origen, con una lista corta de orígenes útiles. |
| Aviso de datos | En la página de aceptación, las marcas de "requerido" aparecen solo si se intenta continuar sin marcar la casilla. |
| Chat de IA | Ventana flotante a la derecha que deja libre el botón ✦, saludo inicial con el primer nombre, títulos de conversación mejorados, borrado por conversación sin diálogo del navegador, chat nuevo en cada inicio de sesión (estado en localStorage), contador de la cuota diaria y desplazamiento automático. Usa los datos que expone el parche patch-ai-chat-ui.php. |
Textos personalizados
| Mecanismo | Dónde | Uso |
|---|---|---|
Paquete de idioma local es_local | customize-strings.php ($OVERRIDES, por componente) | Saludo con primer nombre y primer apellido, pie "Desarrollado por Deltamontero sobre Moodle", "Gestionar módulos", textos del chat de IA, condición "Ver hasta el final" de los videos y otros. Registra lo aplicado en customstrings_applied. |
Paquete de idioma local es_local | configure-course-editor.php | Nombres de los materiales en el menú "Añadir" (por ejemplo "Documento (PDF, Word, Excel)", "Lectura", "Repaso o prueba"). |
lang/es de cada plugin de terceros | infrastructure/moodle/lang/es/ (copiado en la imagen) | Traducciones de plugins que no traen español (Plugins de terceros). |
| Cadenas propias | lang/es y lang/en de cada plugin propio | Textos de las páginas propias. |
Otros ajustes de la interfaz en moodle-config.sh
| Ajuste | Valor |
|---|---|
defaulthomepage | 1 (Área personal al iniciar sesión) |
frontpage, frontpageloggedin | Vacíos; la portada la dibuja customfrontpageinclude |
guestloginbutton, allowguestmymoodle | 0 |
rememberusername | 0 |
authloginviaemail | 1 (ingreso con usuario o correo) |
supportname, supportavailability, docroot | "Soporte Academia Deltamontero", formulario de contacto disponible, sin enlace a la documentación de Moodle |
texteditors | tiny,plain |
dateformat | %d de %B de %Y |
local_ai_manager/addnavigationentry | 0 (la IA se administra en Configuración IA) |
mod_interactivevideo/defaultappearance | distractionfreemode |
Scripts de configuración
Todos los scripts de infrastructure/moodle - arranque, configuración que corre en cada despliegue (con su clasificación crítica o cosmética), scripts de provisionamiento y lectores en Python.
Guía de cambios
Procedimientos para modificar y ampliar la plataforma - páginas, reglas, correos, tours, scripts, parches, plugins de terceros, versiones, pruebas locales y commits.