Bonjour tout le monde !
A la suite de bidouilles sur un Moodle de test (heureusement !), je rencontre un souci pour lequel je cherche des pistes.
Contexte
Je cherche à me séparer du format de cours Vue image (Grid) sur mon Moodle 4.1.3+ en prod avec un thème enfant basé sur Boost, que je souhaite remplacer par le format Tiles. Seulement, beaucoup de personnes utilisent le format Grid, qui est là depuis un sacré moment.
Le format Tuiles est intéressant, car si un enseignant souhaite passer de Grid à Tiles, le code de Tiles prévoit une fonction de récupération des images ! Il se charge d'aller vérifier si des images avaient été uploadées avec Grid pour les sections, les récupèrent et les enregistrent avec les paramètres propres au format Tiles.
Ma première idée était de juste faire une requête SQL sur la table des cours, pour passer la valeur du champ "format" de "grid" à "tiles". Impossible : ça ne fonctionne que si on le fait dans les paramètres du cours, sinon la fonction n'est pas appelée !
J'ai alors changé de façon : j'ai récupéré le code de la fonction Tiles, mis une requête pour récupérer tous les cours en format Grid, appliqué la fonction à chaque cours, et rajouté une simple requête à la fin pour modifier la valeur de la table course et lancer ce code.
Ca a marché !
Sauf que...
Problème
A présent, les cours qui étaient créés AVANT le lancement de ce code ont tous le même souci : l'index ne se charge pas, de même que la navigation principale (dans la barre supérieure de Boost) et la navigation du cours (cours, participants, notes...).
En plus de cela, il y a des choses que je n'explique pas :
- la navigation a bien disparue, mais pourtant, les éléments de navigation sont en place ! En survolant aux bons endroits, je vois qu'il y a des liens, qui renvoient bien aux bons endroits ;
- l'index ne se génère pas, et pourtant toutes les sections apparaissent, ainsi que les activités et ressources. Et je peux tout à fait cliquer dessus ;
- si je me loggue en tant qu'étudiant, tout fonctionne !! Ce n'est qu'avec un rôle au minimum Enseignant que le problème se déclare !
- si je crée un nouveau cours, tout fonctionne correctement. Seuls les cours déjà créés auparavant (même sous un format Thématique ou Hebdomadaire) sont impactés.
J'ai l'impression que quelque chose n'arrive pas à se charger, peut-être au niveau de l'index, et que cela empêche de le générer correctement, ce qui bloque la navigation... mais uniquement pour un rôle capable de modifier.
La console de navigateur n 'affiche rien de spécial.
Si je change de template, c'est aléatoire... Classic affiche tout, Boost ne fonctionne pas tout comme Adaptable.
Dans la base de données, j'ai regardé du coté des tables de cours, des sections, des paramètres de section... je n'ai pas l'impression de rater quelque chose.
Ce que je cherche
J'ai bien conscience de cet exposé assez technique, et qu'il est clair que tout cela résulte bien de ma bidouille, et non d'un bug de Moodle.
Ce que je cherche surtout à savoir, c'est si quelqu'un a déjà rencontré un problème similaire pour trouver une autre piste de recherche. Si quelqu'un en sait plus sur comment se génère l'index et/ou la navigation, pour comprendre pourquoi elle ne s'affiche pas alors que tout fonctionne chez un rôle Etudiant.
A nouveau, je rencontre ce problème sur une plateforme de test, ce qui n'a donc aucune grande importance. Mais si je veux déployer cela en prod, vaudrait mieux que ça fonctionne un peu mieux !!
Merci d'avance pour vos idées !
Olivier