Problème sur l'enchainement des scripts

Problème sur l'enchainement des scripts

par Jérôme DEMIAUX,
Nombre de réponses : 1
Avatar Traducteurs
Bonjour,

Dans le fonctionnement d'une version moodle hébergée linux, je me trouve confronté à un problème encore jamais rencontré (par bibi).

L'installation se déroule normalement, sans échec ni message mais lors de l'utilisation, il est impossible d'ouvrir les pages faisant appel aux formulaires via certains scripts et la fonction require_once

Exemple
Lorsque l'on demande la liste des cours en attente (course/pending.php), on obtient une erreur
impossible de trouver "HTML/QuickForm.php" appelé par la fonction require-once en ligne 24 du fichier moodle : lib : formslib.php sous la forme

require_once 'HTML/QuickForm.php';

Ce script est bien disponible, mais dans un répertoire "pear" inférieur à "lib"

Si l'on remplace l'instruction par require_once 'pear/HTML/QuickForm.php';

alors on débloque la situation mais pour se retrouver arreté juste après par un appel, dans le fichier QuickForm.php

require_once('PEAR.php');

Ce script est lui, non pas au même niveau mais un niveau supérieur. On pourrait donc remplacer par "../PEAR.php" et continuer ainsi jusqu'à réécrire tout moodle.

Bref, pourquoi, moodle est-il incapable de retrouver les bons scripts comme sur toutes installations valides?
Moyenne des évaluations  -
En réponse à Jérôme DEMIAUX

Re: Problème sur l'enchainement des scripts

par Valery Fremaux,

Jérome,

il s'agit d'une perturbation au niveau des définitions des "include" par défaut du moteur php.

Probablement une histoire de path qui a enlevé le "." de la liste des includes. Je ne sais pas exactement où, mais j'ai eu le même problème de chemin avec le moteur ZEND pour le global_search.

C'est pourquoi on conseille vivement aux développeurs de préférer toujours des includes absolus à partir de $CFG->dirroot ou $CFG->libdir.

Pourrait le truc petre résolu en modifiant le php.ini et en s'assurant bien d'avoir "." dans la liste des includes ?

Cheers.