Il faudrait que tu regardes dans ta base de données la table mdl_question_categories:
Peux-tu filtrer les données de cette table en n'affichant que les enregistrements qui ont pour valeur du champ "contextid" 25 et 2610.
Normalement, dans une même arborescence, les catégories et sous-catégories ont la même valeur de "contextid".
Par exemple, si tu as à la racine de ton site deux catégories de questions: "Français" et "Mathématiques" et que tu as des sous-catégories "Grammaire" et "Orthographe" pour le français et "Algèbre" et "Géométrie" pour les mathématiques, tu devrais retrouver dans les enregistrements de ta table les éléments suivants (j'ai pris des valeurs "id" et "contextid" aléatoires) :
id |
name |
contextid |
parent |
---|
35 |
top |
10 |
0 |
68 |
français |
10 |
35 |
114 |
Grammaire |
10 |
68 |
159 |
top |
12 |
0 |
236 |
français |
12 |
159 |
259 |
Orthographe |
12 |
236 |
276 |
top |
15 |
0 |
284 |
Mathématiques |
15 |
276 |
287 |
Algèbre |
15 |
284 |
298 |
top |
18 |
0 |
302 |
Mathématiques |
18 |
298 |
307 |
Géométrie |
18 |
307 |
La colonne "parent" permet de retrouver l'arborescence des catégories de questions et la valeur "contextid" permet de garantir ce lien car les valeurs de la sous-
catégorie et de la catégorie parente doivent être les mêmes.
Ainsi, dans les 3 premières lignes de mon exemple (qui ont donc le même contextid), on peut voir que la catégorie principale est "top" (car parent=0), ensuite, la sous-catégorie est "français" car la catégorie parent a pour Id 35 (soit la ligne correspondant à "top"), puis la sous-catégorie du français est "Grammaire" car la catégorie parent a pour Id 68 (soit la ligne correspondant à "français"). Et ainsi de suite...
Si tu peux nous mettre une copie des enregistrements demandés, ça pourrait peut-être permettre de voir ce qui cloche.