Mostrando entradas con la etiqueta moodle. Mostrar todas las entradas
Mostrando entradas con la etiqueta moodle. Mostrar todas las entradas

viernes, 24 de julio de 2026

Cómo potenciar tus cursos de Moodle con eXeLearning (sin complicarte la vida)

Si trabajas con Moodle, sabes que es una de las plataformas LMS (Learning Management System) más sólidas del mundo. Sin embargo, cuando se trata de diseñar contenidos visualmente atractivos e interactivos directamente desde su editor nativo, la tarea puede volverse monótona o limitada.

Cómo potenciar tus cursos de Moodle con eXeLearning (sin complicarte la vida)


Aquí es donde entra eXeLearning: una herramienta de software libre (open source) diseñada para crear contenidos educativos interactivos sin necesidad de escribir una sola línea de código.

¿Por qué combinar eXeLearning y Moodle?

Aunque Moodle permite subir PDFs, crear cuestionarios y organizar páginas, eXeLearning lleva el diseño instruccional a otro nivel.

  • Creación offline: Diseñas y organizas todo tu contenido en tu computadora sin depender de conexión a internet.

  • Interactividad nativa: Incluye actividades interactivas prediseñadas (preguntas de opción múltiple, rellenar huecos, desplegables, juegos pequeños).

  • Estándares e-learning: Permite exportar tus contenidos en paquetes SCORM (1.2 o 2004) e IMS, lo que garantiza que la calificación de las actividades se registre automáticamente en el libro de calificaciones de Moodle.

  • Reutilización: Si el día de mañana cambias de plataforma, tus paquetes SCORM siguen siendo 100% compatibles.

Paso a paso: De eXeLearning a Moodle en 4 pasos

El flujo de trabajo entre ambas herramientas es sumamente sencillo:

1.Diseña el contenido en eXeLearning:Tiempo estimado: según el tema.

Organiza el árbol de contenidos (temas, subtemas) y añade los iDevices que necesites (texto, actividades interactivas, galerías de imágenes o videos embebidos).

2.Exporta como paquete SCORM:Menú Archivo.

Exportar">

Selecciona Exportar > Estándar educativo > SCORM 1.2 (o SCORM 2004). eXeLearning generará un archivo comprimido .zip con toda la estructura y recursos.

3.Añade la actividad en Moodle:Ajustes del curso.

En tu aula virtual de Moodle, activa el modo de edición, haz clic en Añadir una actividad o recurso y elige Paquete SCORM. Adjunta el archivo .zip que exportaste.

4.Configura calificación e intentos:Parámetros del recurso.

Ajusta el método de calificación (Calificación más alta, Promedio, etc.) y los intentos permitidos para que las actividades interactivas del SCORM sincronicen sus notas con Moodle.

💡 3 Consejos de oro para una integración perfecta

1. Guarda siempre el archivo fuente (.elp):

El archivo .zip que subes a Moodle es el producto final. Si necesitas corregir un texto o actualizar una actividad en el futuro, hazlo sobre tu proyecto original de eXeLearning (.elp) y vuelve a exportar el SCORM. 

2. Cuida los estilos y temas: eXeLearning cuenta con varios estilos visuales predefinidos (o la posibilidad de crear estilos CSS personalizados). Elige un estilo responsive que se adapte bien a pantallas móviles dentro de la interfaz de Moodle.

3. Usa SCORM 1.2 para mayor compatibilidad: Aunque Moodle soporta SCORM 2004, la versión 1.2 suele ser la más estable para el registro directo de calificaciones de opción múltiple e interactivos básicos.


Integrar eXeLearning con Moodle te permite transformar módulos leídos y pesados en secuencias didácticas dinámicas, manteniendo el control total de las notas de tus estudiantes. Es la combinación perfecta entre libertad de diseño pedagógico y gestión académica eficiente.

miércoles, 22 de abril de 2026

Configurar SMTP gmail en moodle

En config.php:


$CFG->smtphosts = 'smtp.gmail.com:587';

$CFG->smtpuser = 'mai@mail.es';

$CFG->smtppass = ''; // tu app password  https://myaccount.google.com/apppasswords (es necesario tener la cuenta con 2fa https://myaccount.google.com/security )

$CFG->smtpsecure = 'tls';

$CFG->smtpauthtype = 'LOGIN'; 

Configuración Google Meet en Moodle

Para implementar la integración de Google Meet con Moodle mediante OAuth 2, sigue estos pasos:

  1. Creación del proyecto en Google Cloud
    • Se crea un proyecto en Google Cloud Console.
  2. Configuración de credenciales OAuth 2
    • Se genera:
      • Client ID
      • Client Secret
  3. Configuración en Moodle
    • Se accedió a:
      👉 Administración del sitio → Servidor → Servicios OAuth 2
    • Se creó el servicio de Google utilizando:
      • Client ID
      • Client Secret
  4. Configuración de URI de redirección
    • Se configura correctamente en Google Cloud:

      https://tudominio.com/admin/oauth2callback.php
    • Esto resuelve el error redirect_uri_mismatch
  5. Activación de APIs necesarias
    • Se habilita:
      • Google Drive API (necesaria para sincronizar grabaciones)
  6. Validación de conexión
    • Se logra conectar la cuenta de Google con Moodle
    • Se habilita la opción de sincronización de grabaciones

 Resultado

  • Moodle puede:
    • Crear sesiones de Google Meet
    • Conectar con Google Drive
    • Sincronizar grabaciones (tras ejecutar la sincronización)

Subir archivos grandes en Moodle

 Servidor web (NGINX o Apache)

En NGINX

Parámetro clave:

client_max_body_size 512M;
  • Esto define el tamaño máximo de subida
  • Valor típico por defecto: 1M o 2M (muy bajo)
  • Tú puedes subirlo a:
    • 128M (normal)
    • 256M (recomendado)
    • 512M (archivos grandes como videos)

 Se coloca en:

  • /etc/nginx/nginx.conf
  • o en config del sitio

Luego:

sudo systemctl reload nginx

PHP (MUY IMPORTANTE)

En php.ini debes ajustar:

upload_max_filesize = 512M
post_max_size = 512M
max_execution_time = 300
max_input_time = 300
memory_limit = 512M

post_max_size debe ser ≥ upload_max_filesize

Luego reinicia:

sudo systemctl restart php-fpm

(o apache si usas Apache)


Moodle (dentro del sistema)

Ir a:

Administración del sitio → Seguridad → Políticas del sitio

Configurar:

  • Tamaño máximo de archivo → 512MB (o el que quieras)

También en:

  • Curso → Configuración → Tamaño máximo de subida

Resumen rápido

Para subir archivos grandes:

NivelParámetroEjemplo
NGINXclient_max_body_size512M
PHPupload_max_filesize512M
PHPpost_max_size512M
MoodleTamaño máximo archivo512MB

Error típico

Si uno de estos es menor → falla la subida
(Moodle muestra error aunque tengas todo lo demás bien)

Configurar SMTP en Moodle (no gmail)

Si Moodle no envía correos, puedes configurar el SMTP directamente en el archivo config.php. 

1. Editar archivo

Ubica y abre:

/config.php

2. Añadir configuración SMTP

Agrega al final del archivo:

$CFG->directorypermissions = 0777;
$CFG->smtphosts = 'ssl://smtp.serviciodecorreo.es:465';
$CFG->smtpuser = 'tu_correo@tudominio.com';
$CFG->smtppass = 'tu_contraseña';
$CFG->smtpsecure = 'ssl';
$CFG->smtpauthtype = 'LOGIN';


3. Datos necesarios
  • Servidor SMTP: smtp.serviciodecorreo.es
  • Puerto: 465 (SSL)
  • Usuario: correo completo
  • Contraseña: la del correo

Notas importantes

  • Asegúrate de que el servidor permita conexiones SMTP (puerto 465 o 587)
  • Si no funciona con SSL, prueba:
    • tls con puerto 587
  • Verifica que el correo existe y la contraseña es correcta

Resultado

Con esta configuración, Moodle podrá enviar correos correctamente .

viernes, 13 de febrero de 2026

Consultas SQL valiosas para moodle

 SELECT 

    table_name,

    ROUND((data_length + index_length) / 1024 / 1024 / 1024, 2) AS size_gb

FROM information_schema.TABLES

WHERE table_schema = 'campus'

ORDER BY size_gb DESC;


SELECT

   ROUND(SUM(data_length + index_length) / 1024 / 1024 / 1024, 2) AS total_gb

FROM information_schema.TABLES

WHERE table_schema = 'campus';


SELECT table_name,

       ROUND((data_length + index_length) / 1024 / 1024, 2) AS size_mb

FROM information_schema.TABLES

WHERE table_schema = 'mdlsimb'

ORDER BY size_mb DESC


Borrar logs de antes del 2025

SELECT COUNT(*) AS registros_a_borrar

FROM mdl_logstore_standard_log

WHERE timecreated < UNIX_TIMESTAMP('2025-01-01');


DELETE FROM mdl_logstore_standard_log

WHERE timecreated < UNIX_TIMESTAMP('2025-01-01')

LIMIT 50000;



OPTIMIZE TABLE mdl_logstore_standard_log;

SHOW VARIABLES LIKE 'innodb_file_per_table';

ANALYZE TABLE mdl_logstore_standard_log;


lunes, 19 de mayo de 2025

Como resolver el error de puerto de moodle en local

 

Cierra completamente XAMPP

  • Cierra el Panel de Control.

  • Mata cualquier proceso de Apache que haya quedado en segundo plano:

    En CMD (como administrador):

    taskkill /F /IM httpd.exe


docker ps
docker start mariadb10_4
admin tareas detener   e iniciar mysql

/course/modedit.php
/mod/quiz/edit.php


C:\moodle\server\moodle\mod


viernes, 25 de abril de 2025

Cómo crear un plugin básico de actividad en Moodle (paso a paso)

Crear tu propio plugin en Moodle puede sonar complicado al principio, pero con este tutorial te mostraré cómo desarrollar un plugin básico de tipo “actividad” para que puedas entender la estructura y empezar a construir tus propias funcionalidades.

Cómo crear un plugin básico de actividad en Moodle (paso a paso)


 ¿Qué vamos a crear?

Un plugin de actividad llamado Mi Módulo, que aparecerá en el listado de actividades cuando edites un curso y te permitirá crear nuevas instancias con un solo campo: nombre.

 Estructura del plugin

Primero, crea una carpeta en:


moodle/mod/mimodulo

Dentro de esa carpeta, necesitas tener al menos estos archivos:


mimodulo/ ├── db/ │ └── install.xml
         acces.php ├── lang/ │ └── en/ │ └── mimodulo.php ├── lib.php ├── mod_form.php ├── version.php ├── view.php

 1. version.php

Archivo obligatorio que define la versión del plugin.


<?php defined('MOODLE_INTERNAL') || die(); $plugin->component = 'mod_mimodulo'; $plugin->version = 2025042500; $plugin->requires = 2022041900; $plugin->maturity = MATURITY_STABLE; $plugin->release = 'v1.0';

 2. install.xml (estructura de base de datos)

Ubicado en db/install.xml. Define la tabla del plugin.


<?xml version="1.0" encoding="UTF-8" ?> <XMLDB PATH="mod/mimodulo/db" VERSION="2025042500" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../lib/xmldb/xmldb.xsd"> <TABLES> <TABLE NAME="mimodulo" COMMENT="Tabla del módulo mimodulo"> <FIELDS> <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true"/> <FIELD NAME="name" TYPE="char" LENGTH="255" NOTNULL="true"/> <FIELD NAME="timecreated" TYPE="int" LENGTH="10" NOTNULL="true"/> <FIELD NAME="timemodified" TYPE="int" LENGTH="10" NOTNULL="false"/> </FIELDS> <KEYS> <KEY NAME="primary" TYPE="primary" FIELDS="id"/> </KEYS> </TABLE> </TABLES> </XMLDB>

2.5 access.php

<?php defined('MOODLE_INTERNAL') || die(); $capabilities = [ 'mod/mimodulo:addinstance' => [ 'captype' => 'write', 'contextlevel' => CONTEXT_COURSE, 'archetypes' => ['editingteacher' => CAP_ALLOW, 'manager' => CAP_ALLOW], ], ];

3. lang/en/mimodulo.php

Define los textos visibles.

<?php $string['pluginname'] = 'Mi Módulo'; $string['modulename'] = 'Mi Módulo'; $string['modulenameplural'] = 'Mis Módulos'; $string['mimodulo:addinstance'] = 'Agregar una nueva instancia de Mi Módulo'; $string['name'] = 'Nombre del módulo';

 4. mod_form.php

Formulario que se muestra al crear o editar la actividad.


<?php require_once($CFG->dirroot . '/course/moodleform_mod.php'); class mod_mimodulo_mod_form extends moodleform_mod { function definition() { $mform = $this->_form; $mform->addElement('text', 'name', get_string('name', 'mimodulo'), ['size' => '64']); $mform->setType('name', PARAM_TEXT); $mform->addRule('name', null, 'required', null, 'client'); $this->standard_coursemodule_elements(); $this->add_action_buttons(); } }

5. lib.php

Contiene funciones principales del módulo.


<?php function mimodulo_add_instance($data, $mform) { global $DB; $data->timecreated = time(); return $DB->insert_record('mimodulo', $data); } function mimodulo_update_instance($data, $mform) { global $DB; $data->timemodified = time(); $data->id = $data->instance; return $DB->update_record('mimodulo', $data); } function mimodulo_delete_instance($id) { global $DB; return $DB->delete_records('mimodulo', ['id' => $id]); }

 6. view.php

Lo que el estudiante verá al ingresar a la actividad.


<?php require_once('../../config.php'); $id = required_param('id', PARAM_INT); $cm = get_coursemodule_from_id('mimodulo', $id, 0, false, MUST_EXIST); $context = context_module::instance($cm->id); require_login($cm->course, true, $cm); $PAGE->set_url('/mod/mimodulo/view.php', ['id' => $id]); $PAGE->set_context($context); $PAGE->set_title('Mi Módulo'); $PAGE->set_heading('Mi Módulo'); echo $OUTPUT->header(); echo $OUTPUT->heading('Hola, este es tu nuevo módulo en Moodle 🚀'); echo $OUTPUT->footer();

 Instalación del plugin

  1. Copia la carpeta mimodulo en moodle/mod/.

  2. Ve a tu Moodle como administrador.

  3. Moodle detectará automáticamente el nuevo plugin.

  4. Sigue el asistente de instalación.

  5. ¡Listo! Ya puedes usar tu módulo en cualquier curso.

 Prueba tu plugin

  1. Entra a un curso como administrador o profesor.

  2. Activa edición.

  3. Haz clic en “Agregar una actividad o recurso”.

  4. Verás "Mi Módulo" en la lista.

  5. Agrega una instancia y prueba su vista.


Este tutorial te brinda una base sólida para crear tu propio plugin de tipo actividad en Moodle  con php. A partir de aquí, puedes expandir la funcionalidad, agregar configuraciones, vistas personalizadas, lógica de calificación y mucho más.

Si te gustó este artículo y te fue útil, ¡compártelo!.

Este tutorial fue creado pensando en los desarrolladores que usan Moodle en Colombia, especialmente en Manizales, donde la tecnología educativa sigue creciendo y conectando comunidades de aprendizaje, el objetivo es de aprendizaje para que puedan aprender a crear un plugin y a partir de esto desarrollar el que requieran a medida.

lunes, 3 de febrero de 2020

Crea tu Curso usando el LMS Moodle

En este video subido por Roxana Falasco explica cómo instalar y gestionar un LMS conocido como Moodle para crear cursos, examenes y diferentes actividades para una clase. Esta es una herramienta recomendada para los profesores y hacer más dinámica las clases. En Manizales y en toda Colombia esta plataforma es muy usada en las Universidades.


Si deseas contar con la plataforma Moodle en tu dominio contacta a Moodle en Colombia

Enlace recomendado:


Blogs Colombia