Instalas un Moodle 2.3.4, importas algunos cursos y los modificas ligeramente, adaptándolos a las nuevas necesidades. Y de repente, al borrar un elemento del curso (etiqueta, chat o cualquier recurso o actividad), nos devuelve el siguiente error:
Detectado un error de codificación, debe ser corregido por un programador: PHP catchable fatal error
Y no nos deja acceder al curso, ni ver nada de él. ¿Cómo lo arreglamos?.
Bueno, está la opción rápida que te saca del apuro: irte a la base de datos de Moodle y localizar la tabla _course. En ella vereis vuestros cursos. Localizais el que os da el error y editais el registro. Sólo tendreis que borrar el contenido del campo sectioncache y lo habreis arreglado.
La opción “para que no de más problemas” es irse al archivo lib/modinfolib.php y sobre la línea 1096, localizar el código


if ((!$this->visible or !$this->available) and
!has_capability('moodle/course:viewhiddenactivities', $modcontext, $userid)) {

$this->uservisible = false;

y sustituirlo por

if ($modcontext != "") {
if ((!$this->visible or !$this->available) and !has_capability('moodle/course:viewhiddenactivities', $modcontext, $userid))
{ $this->uservisible = false; }
}
else
{ $this->uservisible = false; }

 

Comparte!
Share

5 comments

  1. “borrar el contenido del campo sectioncache”

    ese campo no existe en mi tabla V2.3.7+
    donde mas puedo verlo
    gracias.

    1. Hola Arturo

      Si en la versión 2.3.7+ de moodle ya no existe ese campo, la solución que queda es modificar el código que explico en el artículo. Espero que te ayude este comentario

  2. En un 2.2.11 ha funcionado también. En nuestro caso era la línea 1005 la que había que corregir. Muchas gracias por compartirlo.

  3. Tengo el mismo error en la verision 2.8.3. Todo marchaba bien, pero al crear una nueva tarea y al probar subir un documentos como estudiante, me salió el error y despues no puedo ingresar con dicho estudiante solamente como administrador.
    Hice el cambio del codigo sugerido y no me funcionó.

    Si pueden ayudarme, se los agracedere mucho.

    Cordialmente,

Escriba el dato que falta en el captcha, es para saber si es un humano * Time limit is exhausted. Please reload CAPTCHA.

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">