Bonjour à tous,
Tout d'abord, j'ai cherché une réponse, mais n'ai rien trouvé de satisfaisant. Pardonnez-moi si j'ai loupé la réponse ; et merci d'avance de me l'indiquer.
Je dois, pour construire le menu d'un site, utiliser des tableaux imbriqués à 4 niveaux. Malheureusement, l'utilisation d'une BDD est exclue, pour garder le site léger et simple (ça aurait été trop facile...).
J'ai donc un menu qui se présente ainsi :
- inprocess
- architectes
- ateliers
- projets
- par programme
- musées
- la tannerie
- maison des arts
- bibliothèques
- hôtels
- par visuel
- par chronologie
et ainsi de suite...
J'ai donc créé un tableau à 4 niveaux pour contenir l'ensemble de l'arborescence, et naviguer dedans facilement. Exemple :
Tout fonctionne bien jusque là, sauf que je ne peux pas récupérer la donnée "nom" qui est différente de la forme courte utilisée pour la barre d'adresse (gérée avec une redirection d'url). Quand je demande à ce qu'il m'affiche $menu['inprocess']['archi']['part'], j'ai Array, au lieu de inprocess > architectes > partenaires comme je le voudrais.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 $menu = Array ( "inprocess" => Array ( "archi" => Array ( "part" => Array ( "mathias" => "mathias", "corinne" => "mathias" ), "ass" => "ass", "coll" => "coll" ), "atel" => "atel" ), "projets" => Array ( "prog" => Array ( "musees" => Array ( "tannerie" => "tannerie", "maisondesarts" => "maisondesarts" ), "biblioth" => Array ( "prague" => "prague" ), "hotels" => Array ( "chanchan" => "chanchan", "giterural" => "giterural" ), [...]
Pour reformuler : avec ce type de tableau, j'ai l'arborescence comme je la veux, mais j'aimerais pouvoir récupérer le nom plus le contenu. Jusque là, je n'ai réussi à avoir que le contenu, ou que le nom. Et je ne sais pas comment construire le tableau pour tout avoir en même temps. Problème de logique, probablement.
Précision : j'ai bien essayé en créant des tableaux de type :
mais cela ne permet pas de rendre correctement l'arborescence, dans la mesure où les sous-menus ne sont pas liés avec leur menu parent, et qu'ils apparaissent tous, quel que soit le menu parent.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $n1 = Array ("menus de niveau 1"); $n2 = Array ("menus de niveau 2"); $n3 = Array ("menus de niveau 3"); $n4 = Array ("menus de niveau 4");
Dois-je créer un objet, pour manipuler tout ça plus simplement ? Ou y a-t-il une solution en imbriquant plus de tableaux ?
Merci d'avance de votre réponse.
L
Partager