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

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