Menu déroulant des catégories

1 message dans ce sujet

Posté(e) · Signaler ce message

Bonjour à tous,

Voilà, le menu déroulant des catégories s'affiche normalement comme ceci:

+ catégorie 1

+ catégorie 2

- catégorie 3

+ sous-catégorie 3.1

+ sous-catégorie 3.2

Moi, je veux diviser les catégories et ne faire dérouler que les sous-catégories.

Cela donnerait ceci:

Titre en image

+ sous-catégorie 1.1

+ sous-catégorie 1.2

2nd Titre en image

+ sous-catégorie 2.1

+ sous-catégorie 2.2

J'ai réussi le premier titre mais j'ai un petit problème avec le second.

Voilà ce que j'obtiens:

probleme.jpg

Le second affiche une second fois le premier sous-menu!!!

Voilà ce que j'ai fait:

J'ai attribué 2 noms différents pour 2 constructions de l'arborescence et j'ai indiqué la catégorie que je voulais voir se décliner.

function construit_menu_arborescent_cat_services(&$sortie_cat, &$selectionne_cat, $parent_cat=4, $indent_cat=-1)

 {

		  global $wwwroot, $catid;

		  $indent_cat +=1;

		  if(is_array($catid)) $catid=0;

		  // Recherche de tous les noeuds ayant $parent comme noeud parent

		  $qid = mysql_query("SELECT id, parent_id, nb, nom_".$_SESSION['langue']." FROM peel_categories WHERE parent_id = $parent_cat AND etat = '1' ORDER BY position");

		  // Si la requete a abouti

		  if($qid){

			 // Pour toutes les entrées

			 while($cat = mysql_fetch_array($qid)){

				   // Boucle pour ajouter l'indentation (une image vide)

				   // Pour aller plus loin on peut gérer des lignes de suite

				   for($i=0;$i<$indent_cat;$i++){

					   $sortie_cat .= "<img src='$wwwroot/images/mnu_empty.gif' border=0>";

				   }

				   // Recherche d'enfant pour d&eacute;terminer l'aspect de l'icone (feuille ou dossier)

				   $fils_cat = mysql_query("SELECT id, parent_id, nom_".$_SESSION['langue']." FROM peel_categories WHERE parent_id = ".$cat['id']." AND etat = '1' ORDER BY position");

				   $div_cat = mysql_num_rows($fils_cat);

				   // Si il y a des enfants

				   if ($div_cat) {

					   // Ajout de l'icone du dossier

					   $sortie_cat .= "<img src='$wwwroot/images/menplus.gif' border=0>&nbsp;";

					   // Ajout du lien (identique &agrave; construit menu)

					   $sortie_cat .= "<a class=menuleft href=$wwwroot/achat/index.php?catid=" . $cat['id'] .">";

					   // Test si le noeud est le noeud actif (id), si oui, ajoute du gras (plus visuel)

					   if($cat['id']==$catid) $sortie_cat .= "<b>";

					   // Ajoute le nom de la cat&eacute;gorie et d&eacute;bute un calque DIV ayant pour ID l'Id de la cat&eacute;gorie

					   $sortie_cat .=  html_entity_decode($cat['nom_'.$_SESSION['langue'].'']);


					   $nb = calcul_nbprod_parcat($cat['id']);


					   if (!empty($nb)) {$sortie_cat .= " (".$nb.") "; }


					  $sortie_cat .= "</a></b>

 <DIV id=".$cat['id'];

					   // Recherche si le noeud fait partie de l'arborescence du noeud actif

					   parent_noeud_cat($cat['id'],$catid, $actif_cat=0);

					   // Si Oui,

					   if(($cat['id'] == $catid) || ($actif_cat == 1)){

						   // Rends le calque visible

						   $sortie_cat.= " style=\"display:yes\">\n";

					   }

					   else{

						   // Sinon, rends le calque invisible

						   $sortie_cat.= " style=\"display:none\">\n";

					   }

				   }

				   // Sinon, c'est un document 

				   else{

					   // Ajoute l'image du document

					   $sortie_cat .= "<img src='$wwwroot/images/menminus.gif' border=0>&nbsp;";

					   // Ajoute le lien (identique &agrave; construit_menu)

					   $sortie_cat .= "<a class=menuleft href=$wwwroot/achat/index.php?catid=" . $cat['id'] .">";

					   // Si c'est la feuille active, la met en gras

					   if($cat['id']==$catid) $sortie_cat .= "<b>";

					   // Ajoute le nom

					   $sortie_cat .= html_entity_decode($cat['nom_'.$_SESSION['langue'].'']);


					   $nb = calcul_nbprod_parcat($cat['id']);


					   if (!empty($nb)) {$sortie_cat .= " (".$nb.") "; }


						$sortie_cat .= "</a></b>

 ";

				   }

				   // Si c'est un noeud (cat&eacute;gorie)

				   if($div_cat){

					  // Appel r&eacute;cursif pour ajout des enfants

					  construit_menu_arborescent_cat($sortie_cat, $selectionne_cat, $cat['id'], $indent_cat);

					  // Ferme le calque

					  $sortie_cat.="</div>";

				   }

			 }

		  }

 }	

 function construit_menu_arborescent_cat_produits(&$sortie_cat, &$selectionne_cat, $parent_cat=5, $indent_cat=-1)

 {

		  global $wwwroot, $catid;

		  $indent_cat +=1;

		  if(is_array($catid)) $catid=0;

		  // Recherche de tous les noeuds ayant $parent comme noeud parent

		  $qid = mysql_query("SELECT id, parent_id, nb, nom_".$_SESSION['langue']." FROM peel_categories WHERE parent_id = $parent_cat AND etat = '1' ORDER BY position");

		  // Si la requete a abouti

		  if($qid){

			 // Pour toutes les entr&eacute;es

			 while($cat = mysql_fetch_array($qid)){

				   // Boucle pour ajouter l'indentation (une image vide)

				   // Pour aller plus loin on peut g&eacute;rer des lignes de suite

				   for($i=0;$i<$indent_cat;$i++){

					   $sortie_cat .= "<img src='$wwwroot/images/mnu_empty.gif' border=0>";

				   }

				   // Recherche d'enfant pour d&eacute;terminer l'aspect de l'icone (feuille ou dossier)

				   $fils_cat = mysql_query("SELECT id, parent_id, nom_".$_SESSION['langue']." FROM peel_categories WHERE parent_id = ".$cat['id']." AND etat = '1' ORDER BY position");

				   $div_cat = mysql_num_rows($fils_cat);

				   // Si il y a des enfants

				   if ($div_cat) {

					   // Ajout de l'icone du dossier

					   $sortie_cat .= "<img src='$wwwroot/images/menplus.gif' border=0>&nbsp;";

					   // Ajout du lien (identique &agrave; construit menu)

					   $sortie_cat .= "<a class=menuleft href=$wwwroot/achat/index.php?catid=" . $cat['id'] .">";

					   // Test si le noeud est le noeud actif (id), si oui, ajoute du gras (plus visuel)

					   if($cat['id']==$catid) $sortie_cat .= "<b>";

					   // Ajoute le nom de la cat&eacute;gorie et d&eacute;bute un calque DIV ayant pour ID l'Id de la cat&eacute;gorie

					   $sortie_cat .=  html_entity_decode($cat['nom_'.$_SESSION['langue'].'']);


					   $nb = calcul_nbprod_parcat($cat['id']);


					   if (!empty($nb)) {$sortie_cat .= " (".$nb.") "; }


					  $sortie_cat .= "</a></b>

 <DIV id=".$cat['id'];

					   // Recherche si le noeud fait partie de l'arborescence du noeud actif

					   parent_noeud_cat($cat['id'],$catid, $actif_cat=0);

					   // Si Oui,

					   if(($cat['id'] == $catid) || ($actif_cat == 1)){

						   // Rends le calque visible

						   $sortie_cat.= " style=\"display:yes\">\n";

					   }

					   else{

						   // Sinon, rends le calque invisible

						   $sortie_cat.= " style=\"display:none\">\n";

					   }

				   }

				   // Sinon, c'est un document 

				   else{

					   // Ajoute l'image du document

					   $sortie_cat .= "<img src='$wwwroot/images/menminus.gif' border=0>&nbsp;";

					   // Ajoute le lien (identique &agrave; construit_menu)

					   $sortie_cat .= "<a class=menuleft href=$wwwroot/achat/index.php?catid=" . $cat['id'] .">";

					   // Si c'est la feuille active, la met en gras

					   if($cat['id']==$catid) $sortie_cat .= "<b>";

					   // Ajoute le nom

					   $sortie_cat .= html_entity_decode($cat['nom_'.$_SESSION['langue'].'']);


					   $nb = calcul_nbprod_parcat($cat['id']);


					   if (!empty($nb)) {$sortie_cat .= " (".$nb.") "; }


						$sortie_cat .= "</a></b>

 ";

				   }

				   // Si c'est un noeud (cat&eacute;gorie)

				   if($div_cat){

					  // Appel r&eacute;cursif pour ajout des enfants

					  construit_menu_arborescent_cat($sortie_cat, $selectionne_cat, $cat['id'], $indent_cat);

					  // Ferme le calque

					  $sortie_cat.="</div>";

				   }

			 }

		  }

 }

Visiblement, ça ne suffit pas, il doit falloir changer un petit truc. J'ai essayé un peu au hasard mais je ne vois pas ce que je dois changer.

Quelqu'un aurait-il une idée?

Merci d'avance...

Si je n'y arrive pas, je vais devoir tout repenser ma boutique et ça ne le fait pas du tout!!! :(

Bonne soirée à tous.

Natty. ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping