Academia Deltamontero · Documentación
Desarrollo

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
scsspreVariables de Bootstrap antes de compilar: colores de marca ($primary #1361A4, $danger, $info…), radios de borde (botones tipo píldora), colores de la barra oscura
scssEstilos 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, backgroundimagesizeoptioncenter 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:

MarcadorSe 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

BloqueQué hace
Sin diálogos nativosDesactiva 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 toursX 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ónQuita el tooltip doble de los botones del cajón lateral.
Siguiente actividadBotó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 CSSBarra 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 certificadoOculta de la lista "No disponible hasta que…" lo ya completado (local_deltamodules_get_completed_cmids).
Antitrampa del examenSolo 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 usuariosEn /admin/user.php, aviso con botón a Personal Deltamontero.
Subir cursosEn /admin/tool/uploadcourse/, aviso del asistente de módulos.
Botón AtrásRecarga la página si el navegador la restaura desde su caché de historial (pageshow con persisted).
LoginPie 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).
ResponsiveEn pantallas pequeñas, las tablas anchas se desplazan dentro de su recuadro.
Informes personalizadosEn 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 datosEn la página de aceptación, las marcas de "requerido" aparecen solo si se intenta continuar sin marcar la casilla.
Chat de IAVentana 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

MecanismoDóndeUso
Paquete de idioma local es_localcustomize-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_localconfigure-course-editor.phpNombres de los materiales en el menú "Añadir" (por ejemplo "Documento (PDF, Word, Excel)", "Lectura", "Repaso o prueba").
lang/es de cada plugin de tercerosinfrastructure/moodle/lang/es/ (copiado en la imagen)Traducciones de plugins que no traen español (Plugins de terceros).
Cadenas propiaslang/es y lang/en de cada plugin propioTextos de las páginas propias.

Otros ajustes de la interfaz en moodle-config.sh

AjusteValor
defaulthomepage1 (Área personal al iniciar sesión)
frontpage, frontpageloggedinVacíos; la portada la dibuja customfrontpageinclude
guestloginbutton, allowguestmymoodle0
rememberusername0
authloginviaemail1 (ingreso con usuario o correo)
supportname, supportavailability, docroot"Soporte Academia Deltamontero", formulario de contacto disponible, sin enlace a la documentación de Moodle
texteditorstiny,plain
dateformat%d de %B de %Y
local_ai_manager/addnavigationentry0 (la IA se administra en Configuración IA)
mod_interactivevideo/defaultappearancedistractionfreemode

En esta página