English
First public release of local_themerules: rule-based dynamic theme and logo switching for Moodle — a different theme and logo per client company, a distraction-free skin during exams, a lighter theme on phones, all from admin-configured rules, no code and no per-course setup.
Highlights:
- Ordered, enable/disable-able rules pairing a logical condition tree (AND/OR groups, nested) with an action (theme, logo, or both).
- Conditions: user, course, course category (+ subcategories), cohort, course group, course tag, device type, standard/custom profile fields.
- Visual rule builder with entity-search pickers — no hand-written JSON required.
- Simulator with a full per-condition trace, and JSON import/export for moving rule sets between sites.
- In-app quick reference, plus a full bilingual (EN/ES) illustrated user guide.
- PHPUnit + Behat coverage, GitHub Actions CI (PHP 8.1–8.4, Moodle 4.5–5.2, Postgres/MariaDB).
See CHANGELOG.md for full detail.
Installation
Download themerules-v0.1.0.zip from the Assets section below (NOT GitHub's automatic "Source code (zip)", which creates a wrongly-named folder and won't install cleanly).
Then choose one:
- Via the browser: Site administration → Plugins → Install plugins → upload the zip.
- Manual: unzip and copy the
themerules/folder intolocal/in your Moodle install, then visit Site administration to complete the database upgrade.
Requirements
- Moodle 4.5 LTS or higher (developed and tested against 5.2.1+)
- PHP 8.1 – 8.4
Español
Primera versión pública de local_themerules: cambio dinámico de tema y logo por reglas para Moodle — un tema y logo distinto por empresa cliente, un aspecto sin distracciones durante exámenes, un tema más ligero en móvil, todo mediante reglas configuradas por el administrador, sin código y sin configuración curso a curso.
Lo más destacado:
- Reglas ordenadas, activables/desactivables, que combinan un árbol de condiciones lógicas (grupos AND/OR anidados) con una acción (tema, logo, o ambos).
- Condiciones: usuario, curso, categoría de curso (+ subcategorías), cohorte, grupo de curso, etiqueta de curso, tipo de dispositivo, campos de perfil estándar o personalizados.
- Editor visual de reglas con buscadores de entidades — sin necesidad de escribir JSON a mano.
- Simulador con traza completa por condición, e importación/exportación en JSON para mover conjuntos de reglas entre sitios.
- Referencia rápida dentro del propio plugin, más una guía de uso ilustrada y bilingüe (EN/ES) completa.
- Cobertura con PHPUnit + Behat, CI en GitHub Actions (PHP 8.1–8.4, Moodle 4.5–5.2, Postgres/MariaDB).
Ver CHANGELOG.md para el detalle completo.
Instalación
Descarga themerules-v0.1.0.zip de la sección Assets de abajo (NO el "Source code (zip)" automático de GitHub, que crea una carpeta con nombre incorrecto y no instala limpio).
Después, elige una opción:
- Por el navegador: Administración del sitio → Plugins → Instalar plugins → sube el zip.
- Manual: descomprime y copia la carpeta
themerules/dentro delocal/de tu Moodle; luego visita Administración del sitio para completar la actualización de la BD.
Requisitos
- Moodle 4.5 LTS o superior (desarrollado y probado contra 5.2.1+)
- PHP 8.1 – 8.4