Affichage incrémenté de catégories et sous-catégories
Salut,
je cherche à faire un affichage de catégories et sous-catégories sous cette forme :
Cat1
-1.1
--1.1.1
--1.1.2
-1.2
--1.2.1
Cat2
-2.1
-2.2
--2.2.1
--2.2.2
-2.3
Mon problème se situe au niveau du décalage à ajouter avant les nomns de catégories. En l'occurence le nombre de "-" dans l'exemple.
Voici comment je stocke mes informations de catégories :
id | id_parent | name
Et enfin voici ce que j'ai pondu pour l'instant mais je bloque, il me manque quelque chose :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
decalage = "";
foreach(categories as cat) {
// Si la catégorie n'est pas une racine
if(!cat->estRacine()) {
// Si on a changé de parent
if(idParent != cat->getIdParent()) {
decalage .= "-";
idParent = cat->getIdParent();
}
}
// Si la catégorie est une racine
else {
decalage = ""; // Je remet le décalage à 0
idParent = 0; // Ici je remets l'idParent à 0 car une catégorie racine a 0 en idParent
}
affiche decalage.cat->getName(); |
En fait ceci me décale relativement comme il faut. Il y a en fait un problème car le décalage se remet à 0 uniquement si la catégorie est une racine.
Ce qui me donne à l'affichage un truc du style :
Cat1
-1.1
--1.1.1
--1.1.2
---1.2
----1.2.1
Cat2
-2.1
-2.2
--2.2.1
--2.2.2
---2.3
Voilà si quelqu'un a une idée pour résoudre ce problème ou un tout autre algo, ca m'intéresse bien ^^
Merci d'avance et a+ :D