Menu gauche

11 messages dans ce sujet

Posté(e) · Signaler ce message

Bonjour

Je cherche à modifier la fonction construit_menu_arborescent_cat de template.php, pour pouvoir afficher uniquement la catégorie active développée exactement comme sur http://www.confort-price.fr

Quelqu'un aurait une idée

merci peel 5.3

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour Marc,

Quel code avez-vous pour construit_menu_arborescent_cat?

Cordialement,

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour Marc,

Quel code avez-vous pour construit_menu_arborescent_cat?

Cordialement,

function construit_menu_arborescent_cat(&$sortie_cat, $selectionne_cat, $parent_cat=0, $indent_cat=-1)

{

		  global $wwwroot, $catid;

		 $indent_cat +=1;

		 if (empty($catid))

			$catid = $selectionne_cat[0];

		else if(is_array($catid)) 

			 $catid=0; 

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

		 $qid = mysql_query("SELECT c.id, c.parent_id, c.nom_".$_SESSION['langue']." as categorie FROM peel_categories c INNER JOIN peel_sites_pivots sc ON (sc.categorie_id = c.id) WHERE c.parent_id = '$parent_cat' AND sc.site_id = '".intval($_SESSION['ecom']['id'])."' AND c.etat = '1' ORDER BY c.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\" alt=\"\" />";

				  }

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

				 $fils_cat = mysql_query("SELECT c.id, c.parent_id, c.nom_".$_SESSION['langue']." FROM peel_categories c INNER JOIN peel_sites_pivots sc ON (sc.categorie_id = c.id) WHERE c.parent_id = '".$cat['id']."' AND sc.site_id = '".intval($_SESSION['ecom']['id'])."' AND c.etat = '1' ORDER BY c.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\" alt=\"\" />&nbsp;";

					  // Ajout du lien (identiqueà construit menu)

					  $sortie_cat .= "<a href=\"$wwwroot/achat/cat-".mrpropre($cat['categorie'])."-".$cat['id'].".html\">";


					  // 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['categorie']);


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

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


					 $sortie_cat .= "</a></b><br /><DIV id=".$cat['id'];

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

					  $actif_cat = 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\" alt=\"\" />&nbsp;";

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

					  $sortie_cat .= "<a href=\"$wwwroot/achat/cat-".mrpropre($cat['categorie'])."-".$cat['id'].".html\">";

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

					  if($cat['id']==$catid) $sortie_cat .= "<b><font style=\"color:#ea5900;background-color:#fff;\">";

					  // Ajoute le nom

					  $sortie_cat .=  html_entity_decode($cat['categorie']);


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

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


					   $sortie_cat .= "</a></font></b><br />";

				  }

				  // 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>";

				  }

			}

		 }

}

Je voudrais que seule la catégorie parent d'une sous catégorie s'affiche et soit développée. Il faudrait un <div style="display:none"> sur tout le reste?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour Marc,

De mémoire, sur ces version anciennes de PEEL, la correction est à apporter à parent_noeud_cat.

Sur votre version, elle doit prendre son premier argument par référence.

Remplacez le code de parent_noeud_cat par le suivant, et testez :

function parent_noeud_cat($noeud_cat,$aktul_cat,$actif_cat = 0){

// Si c'est pas la racine

if($aktul_cat != 0 && $noeud_cat != 0){

// Recherche le parent du noeud &agrave; tester

$qid = mysql_query("SELECT c.id, c.parent_id FROM peel_categories c INNER JOIN peel_sites_pivots sc ON (sc.categorie_id = c.id) WHERE c.id = '$aktul_cat' AND sc.site_id = '".intval($_SESSION['ecom']['id'])."' AND c.etat = '1' ORDER BY c.position");

$cat=mysql_fetch_array($qid);

// Appel r&eacute;cursif jusqu'&agrave; la racine

$actif_cat = parent_noeud_cat($noeud_cat,$cat['parent_id'],$actif_cat);

// Si le noeud test&eacute; est le noeud recherch&eacute;

if($cat['parent_id']==$noeud_cat){

// Met le drapeau &agrave; 1

$actif_cat=1;

}

}

return $actif_cat;

}

Cordialement,

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Oui cette correction déjà été apportée. Elle corrige le fait que les menus se repliaient lorsque qu'on rentrait dans la fiche d'un produit.

Là je voudrais que seule la catégorie parent soit affichée et développée exactement comme sur http://www.confort-price.fr

Quand vous allez dans "meuble" par exemple, seule la ctégorie meuble est affichée dans le menu de gauche

CDT

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonsoir,

avez-vous eu une réponse ?

pouvez-vous afficher uniquement la catégorie active avec les sous-catégories de la catégorie active ?

cordialement

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

le plus facile pour n'afficher que la catégorie active et les sous-catégories qui lui sont attachées

serait il de voir avec les calques actifs en n'affichant que ceux-ci ?

version 3.9

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

est-ce plus facile avec l'affichage des calques actifs ?

pouvez-vous répondre seulement oui ou non ?

merci

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Je vous réponds par politesse, mais je ne comprends pas la question sur les calques actifs ;)

Pour info, la gestion de l'affichage des catégories était compliqué sur les anciennes versions et a été simplifié pour PEEL 6.

Si vous n'arrivez pas à modifier la fonction, il y a toujours possiblité de faire quelque chose de simple en dur si vous avez peu de catégories.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonsoir et merci pour votre attention.

Quand vous parlez de la version 6, je suppose que c'est la version 5.6 ?

Concernant ma question sur les calques actifs, j'ai essayé de n'afficher que le calque actif de façon à ne voir que le calque de la catégorie active mais sans succès

et avant de perséverer dans cette voie, je voulais savoir si je ne faisais pas fausse route...

je vais essayer autrement, et sur une autre version si c'est plus simple avec une version plus récente

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonsoir,

Quand je parle de la version 6, c'est la 6.0, la toute dernière pas encore officielle.

Le code ayant été totalement remanié, ce ne sera peut-être pas aisé de reprendre des morceaux pour les mettre sur une 5.3, et je pense que quand vous la verrez vous préfèrerez peut-être migrer vers la 6.0 ;)

Gilles

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