theme_cdigital
Ficha técnica
Componente: theme_cdigital (tema, hijo de Boost) · Ruta: public/theme/cdigital/
Versión: 2026080501 (release 0.1.0, madurez ALPHA) · Requiere: Moodle ≥ 4.5 ⚠ (ver Manifiesto)
Impacto: Tema · Plugin asociado: local_pccntr8203403_dashboard
Tema que reimplementa la apariencia del Campus Virtual siguiendo el diseño de Figma y renderiza el Dashboard de aprendizaje. Extiende Boost: hereda su comportamiento y sobreescribe layouts, plantillas, renderers, SCSS y strings.
Estructura
| Carpeta / archivo | Contenido |
|---|---|
config.php | Registro del tema, layouts, sistema de íconos |
lib.php | Renderers (theme_cdigital_core_course_renderer, core_renderer) y helpers de frontpage |
settings.php | Ajustes de administración — ver Ajustes del tema |
layout/ | frontpage.php, mycourses.php, mydashboard.php (+ drawers de Boost) |
templates/ | Plantillas Mustache (core overrides + componentes propios) |
classes/output/core_renderer.php | Inyecta el banner, arma la modal "Ver mi avance" (7 cards) e inyecta el Drawer IA |
scss/preset/cdigital.scss | Punto de entrada SCSS (incluye Boost) |
amd/src/ | Módulos JS (ver abajo) |
pix/ | Imágenes e íconos (branding, íconos de la modal, ilustraciones) |
lang/{en,es}/ | Cadenas de idioma |
Features que renderiza
Cada una tiene su ficha en el Catálogo:
| Feature | Plantilla / punto de render |
|---|---|
| Fila "Contenido del curso" + insignias | course_content_header.mustache + full_header() |
| Banner "Tu desempeno academico" | course_info_banner.mustache + full_header() |
| Modal "Ver mi avance" | course_progress_modal.mustache + core_renderer |
| Stats Row del Area personal | stats_row.mustache + mydashboard.php |
| Welcome Hero | welcome_hero.mustache |
| Card "Continua donde quedaste" | continue_card.mustache |
| Card de curso | core_course/coursecard.mustache + AMD |
| Sección "Mis Cursos" del Área personal | miscursos_section.mustache + mydashboard.php + AMD miscursos_tabs.js |
| Drawer IA | aitutor_drawer.mustache + standard_after_main_region_html() + AMD aitutor.js |
| Bloque "Cursos que necesitan atención" | Solo SCSS: .cdigital-atencion* y override del chrome de bloque en .cdigital-activitypanel (el markup lo aporta block_pccntr8203403_atencion) |
| Portada (frontpage) | frontpage.mustache + helpers de lib.php |
| Carrusel de banners de la portada | frontpage.mustache + theme_cdigital_get_banner_slides() + AMD banner_carousel.js |
Módulos AMD
| Módulo | Función |
|---|---|
aitutor.js | Drawer IA: toggle open/close, envio de mensajes al proxy local_pccntr8203403_aitutor, render de respuestas, lectura de SCORM CMI |
banner_carousel.js | Carrusel de banners de la portada: rotación automática, flechas, puntos, pausa/reanudación y prefers-reduced-motion |
coursecard_favourite.js | Toggle de favorito en la card de curso (WS core core_course_set_favourite_courses) |
coursecard_teachers.js | Carga batcheada de nombres de docentes (WS ..._get_course_teachers) |
miscursos_tabs.js | Filtro client-side por pestaña (Todos/En Curso/Completados) de la sección Mis Cursos |
repository.js | Wrappers de core/ajax para los WS anteriores |
Build: ver Build de assets.
Dependencias
- Consume las clases de datos del plugin local (
course_stats,student_stats,academic_alerts) desde su renderer y layouts, y su Web Serviceget_course_teachers. - Renderiza el Drawer IA e invoca la funcion
send_messagede local_pccntr8203403_aitutor via el modulo AMDaitutor.js. - Para secciones con equivalente nativo (Calendario, Usuarios en linea, Insignias) usa bloques core estilizados con CSS del tema (ADR-002).
Riesgos de actualización
- El tema sobreescribe plantillas core (
core_course/coursecard,core/header, etc.). Una actualización mayor de Moodle puede cambiar esas plantillas o el contexto que reciben; revisar los overrides tras cada upgrade de branch. - La card de curso depende del flujo client-side de
block_myoverview(WS core +Templates.render); cambios en ese flujo afectan el override. Detalle en Card de curso. requiresdeclarado enversion.phpapunta a Moodle 4.5 (placeholder); alinear a 5.0/5.1.