Customscripts non pris en compte

Customscripts non pris en compte

par Olivier Valentin,
Nombre de réponses : 3
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles

Bonjour à tous,

j'avais déjà posté pour résoudre un souci avec Cusstomscripts sur un Moodle en package avec un serveur local. Aujourd'hui, je travaille sur une version installée sur nos serveurs... mais je rencontre toujours le même souci !

Je cherche à modifier la page de création de cours qui se trouve dans /moodle/course.

Donc, dans l'ordre :

  • à la racine de Moodle, je crée un dossier "customscripts"
  • je modifie le fichier config.php  pour rajouter : $CFG->customscripts = __DIR__ . '/customscripts/';
  • dans le dossier "customscripts", je crée un nouveau dossier "course"
  • j'y place le fichier request.php
  • dans le fichier request.php, je place l'appel "require_once(__DIR__ . '/../config.php');" en commentaires ;
  • le fichier request.php appelle deux fichiers : request_form.php et lib.php. Je les copie depuis le dossier course original et je les place également dans customscripts/course. Je modifie leurs chemins pour les appeler directement depuis ce dossier :
require_once('lib.php');
require_once('request_form.php');

A ce moment, si je  modifie le fichier request.php par exemple pour changer le nom de la page, cela fonctionne parfaitement.
Donc customscripts est bien pris en compte.

Par contre, si je veux modifier le fichier request_form.php pour le personnaliser, là, rien ne fonctionne ! Et dans les deux cas, je note aussi que la présentation de la page part dans tous les sens ! (j'ai surligné le titre juste pour montrer que les modifications dans request.php fonctionnent).


Je ne comprends plus ce qui ne fonctionne pas...
Est-ce que j'ai mal rédigé un appel ? Faut-il modifier quelque chose qui est appelé dans request_form.php ? Pourtant, d'après mes essais, l'appel du fichier de librairie pour élaborer les formulaires n'est pas en cause, et d'après ce que je lis, ne devrait pas être modifié !

Merci pour vos conseils !

Olivier
Moyenne des évaluations  -
En réponse à Olivier Valentin

Re: Customscripts non pris en compte

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles
Re-bonjour,
bon, solution trouvée... mais je continue de ne pas tout comprendre !

Comme les modifications étaient prises en compte pour mon fichier request.php mais pas pour request_form.php, j'ai commencé à me dire que mes appels étaient mauvais. Et effectivement, il semble qu'il y ait un souci.

Dans fichier request.php, j'appelais la librairie des cours et le fichier request_form.php (qui contient le formulaire de demande de création de cours) de cette façon :

require_once('lib.php');
require_once('request_form.php');
Mais en fait, j'ai du modifier le chemin d'appel pour que cela fonctionne de cette manière :

require_once('lib.php');
require_once('/var/www/moodle/customscripts/course/request_form.php');

C'est très étrange :
  • si j'appelle le lib.php avec tout le chemin depuis la racine serveur, ça ne fonctionne pas !
  • si j'appelle le request_form.php alors qu'il est appelé directement depuis le dossier customscripts/course, ça ne fonctionne pas !
Pourquoi ces deux fichiers doivent-ils être appelés de deux manières différentes ?? J'ai du fait une erreur, mais laquelle ? En tout cas, provisoirement, en appelant mes fichiers de cette manière, j'arrive à mon résultat : je peux appeler mon propre formulaire de demande de création de cours contenu dans customscripts.

Je reste toutefois curieux de comprendre mon erreur dans mes appels !

Olivier
En réponse à Olivier Valentin

Re: Customscripts non pris en compte

par Céline Perves,
Avatar Développeurs Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles
Bonjour,
seuls les fichiers qui font un require du fichier racine config.php relèvent du customscripts
donc pas les librairies ou classes
du coup comme tu l'as constaté tu dois réécrire une partie de ton fichier request.php pour appeler les librairies et classes dont tu as besoin
pour ce qui ton soucis de require_once dans ton customscript
quand tu fais require_once tu es toujours dans le répertoire course d'origine qui correspond au require ($customscript); du fichier lib/setup.php qui a appelé ta page de custom scripts
ton lib.php est alors celui de course/lib.php et pas celui de ton répertoire de customscripts
ton request_form est bien celui que tu vises pour faire des changements puisque tu pointes le fichier qui dans ton répertoire customscripts

En espérant avoir pu t'éclairer
Bon après midi
Céline
Bonne Journée
Moyenne des évaluations Utile (4)
En réponse à Céline Perves

Re: Customscripts non pris en compte

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles
Bonjour Céline,
après explication, c'était d'une évidence flagrante... Du coup, je peux allègrement virer le fichier lib.php de mon répertoire customscripts puisque le fichier originel est bon !
Merci pour cet éclairage !
Olivier