Cuando intentas conectar al webservice de Moodle para añadir algún servicio externo y recibes el siguiente error:
Detectado un error de codificación, debe ser corregido por un programador: Cannot find file with external function implementationMás información sobre este errorInformación de depuración: Error code: codingerrorTrazado de la pila (stack): line 87 of /lib/externallib.php: coding_exception thrown line 36 of /admin/webservice/documentation.php: call to external_api::external_function_info()
Algún módulo o plugin de terceros está provocando este error.
Si habilitas el debug de Moodle y no recibes información sobre qué puede estar provocando el error, prueba a hacer lo siguiente:
1) Edita la línea 86 del archivo implicado en el error:
/lib/externallib.php
2) Cambia el siguiente código que viene por defecto:
if (!file_exists($function->classpath)) {
throw new coding_exception('Cannot find file with external function implementation');
}Por este otro al que añadiremos la función de imprimir en pantalla el debug de ese error print_r($function);
if (!file_exists($function->classpath)) {
print_r($function);
throw new coding_exception('Cannot find file with external function implementation');
}Ahora si entras en la web de nuevo aparecerá un error que te indicará el módulo o plugin que está provocando el error.
Si no aparece ningún error, mira el código fuente de la página (usando las teclas Control + U) y debe aparecer al principio del todo.
Por ejemplo, en este caso vemos el siguiente código que aparece al principio del todo:
stdClass Object
(
[id] => 533
[name] => block_remuiblck_complete_task
[classname] => block_remuiblck\external\api
[methodname] => complete_task
[classpath] => /home/xxxxxxxx/public_html/blocks/remuiblck/externallib.php
[component] => block_remuiblck
[capabilities] =>
[services] =>
)En este caso es un bloque del theme RemUI es el que está causando el problema.
3)¿Cómo solucionar el problema?
Iremos a Administración del sitio - Extensiones - Vista General de Extensiones y veremos si el módulo que da el error está instalado o falta en el sistema
En este caso vemos que el módulo existe en la base de datos pero no en el disco:
Por lo que procederemos a instalar el bloque que falta para solucionar definitivamente el error.


