Stats Row del Área personal (/my/)
Fila de 4 tarjetas de estadísticas de aprendizaje renderizada en la parte superior del Área personal (/my/), encima del contenido principal de la página. Figma node 19539-773.
| Tarjeta | Dato | Color | Icono |
|---|---|---|---|
| Cursos activos | student_stats::get_all()['active_courses'] | havelock-blue | graduation-cap |
| Pendientes | ['pending_activities'] | orange | receipt |
| Eventos | ['upcoming_events'] | aqua | calendar |
| Completado | ['completed_courses'] | purple | circle-check |
Arquitectura
La presentación está quemada en el tema (sin bloques custom); los datos vienen del plugin local. Decisión registrada en ADR-002.
theme_cdigital/config.php
└── layout 'mydashboard' → layout/mydashboard.php
theme_cdigital/layout/mydashboard.php
└── llama a local_pccntr8203403_dashboard\data\student_stats::get_all()
└── renderiza templates/mydashboard.mustache
└── partial templates/stats_row.mustache (wrapper .cdigital-learnstats)
Archivos clave
| Archivo | Descripción |
|---|---|
theme/cdigital/layout/mydashboard.php | Layout del Área personal; arma el contexto stats[] |
theme/cdigital/templates/mydashboard.mustache | Página completa (extiende patrón Boost drawers) |
theme/cdigital/templates/stats_row.mustache | Partial de las 4 tarjetas |
theme/cdigital/scss/preset/cdigital.scss | Sección .cdigital-learnstats (grid responsivo 4/2/1 columnas) |
theme/cdigital/lang/{en,es}/theme_cdigital.php | Strings stat_active_courses, stat_pending_activities, stat_upcoming_events, stat_completed_courses |
Notas
- La fila solo se muestra a usuarios autenticados no invitados.
- La fila se retiró de
/my/courses.php(antes la pintabalayout/mycourses.phpcon assets del bloque retiradoblock_pccntr8203403_learnstats). - Los bloques nativos del sidebar del rediseño (Calendario, Usuarios en línea, Insignias) se gestionan desde la página "Área personal por defecto" del administrador y se estilizan vía CSS del tema.
- Las queries se ejecutan en cada carga de
/my/; si el rendimiento se degrada con datos reales, considerar Cache API (MUC) en el plugin local.