Plugin local de Moodle que ofrece una vista ejecutiva de los cursos del sitio: métricas claras en una sola pantalla, sin servicios web ni tokens. Pensado para demostraciones con clientes, equipos académicos o como base para evolutivos (filtros, exportaciones, informes).
Si tu Moodle está en la raíz del servidor web, la URL del panel suele ser:
http://localhost/local/custom_api/index.php
Si instalaste Moodle en una subcarpeta (por ejemplo moodle), la ruta sería:
http://localhost/moodle/local/custom_api/index.php
En ambos casos el patrón es: {URL_base_de_tu_Moodle}/local/custom_api/index.php.
- Muestra un resumen de cursos (excluye el curso sitio).
- Para cada curso lista: ID, nombre completo, nombre corto, visible, inscritos, actividades y un enlace Vista al curso.
- Indica el total de cursos detectados.
- Permite limitar cuántos cursos se muestran (selector “Mostrar primeros”).
- Añade un enlace en la navegación del sitio (para usuarios con permiso), además de poder entrar directo por URL.
- Ideal para conectar Moodle con Make.com, Zapier u otras plataformas similares (n8n, IFTTT, etc.): el mismo tipo de desarrollo en Moodle (plugins locales, datos de curso estructurados y permisos claros) suele ser la base para exponer información vía webhooks, API REST de Moodle o jobs programados que esas herramientas consumen o disparan.
- Operación y soporte: vista rápida de cursos, inscritos y actividades para coordinadores sin entrar curso por curso.
- Demos y propuestas comerciales: muestra tangible de capacidad técnica en Moodle antes de cerrar un proyecto de integración o automatización.
En version.php el plugin declara:
$plugin->requires = 2022041900→ compatible con Moodle 4.0 en adelante (rama 4.x y versiones posteriores que mantengan la misma API de plugins y navegación usada aquí).
Antes de instalar en producción, conviene probar en el mismo major de Moodle que uses en el cliente y revisar notificaciones de actualización tras subir de versión de Moodle.
- Copia la carpeta del plugin dentro de tu instalación:
moodle/local/custom_api(el nombre de la carpeta debe ser exactamentecustom_api). - Inicia sesión como administrador.
- Ve a Administración del sitio → Notificaciones y completa la actualización del sitio.
- Opcional pero recomendable: Administración del sitio → Desarrollo → Purgar todas las cachés.
- Actualizar el plugin (pasos de instalación arriba) hasta que no queden pendientes en Notificaciones.
- Permisos: el acceso lo controla la capacidad
local/custom_api:viewdashboard(definida endb/access.php).- Por defecto está permitida para los arquetipos Gestor del sitio, Profesor con permisos de edición y Profesor.
- Si un usuario no entra, como administrador ve a Administración del sitio → Usuarios → Permisos → Definir roles, edita el rol que necesites y busca
local/custom_api:viewdashboardpara marcarla como Permitir (o revisa que no esté prohibida en un contexto superior).
- Probar la vista: inicia sesión con un usuario que tenga ese permiso y abre en el navegador la URL de tu sitio, por ejemplo
http://localhost/local/custom_api/index.php. - Navegación: con el mismo usuario, revisa el menú del sitio; debería aparecer el ítem con el nombre del plugin (según idioma: “Panel de cursos” / “Course Dashboard”) que apunta a la misma página.
| Archivo / carpeta | Función |
|---|---|
index.php |
Página principal del panel |
lib.php |
Extiende la navegación para enlazar al panel |
db/access.php |
Capacidades del plugin |
version.php |
Versión y requisitos de Moodle |
lang/es/ y lang/en/ |
Cadenas de idioma |
styles.css |
Estilos del panel (tabla, contenedor, botón de acción) |
img/course_api.png |
Captura de referencia para documentación o portafolio |
- Filtros por categoría, docente o fechas.
- Exportación CSV o Excel.
- Gráficos o bloques reutilizables en el tablero del sitio.
Este código es software libre dentro del ecosistema Moodle (GPL compatible con el núcleo de Moodle). Cualquier persona puede reutilizarlo y colaborar.
Julian Alzate — Desarrollo backend, frontend Moodle y proyectos web.
Sitio y perfil profesional: https://juli6464.github.io/
