Fiche produit

14 posts in this topic

Posted · Report post

Bonjour,

J'ai un petit problème dont je n'arrive pas à trouver l'origine:

sur detail_produits

<?php affiche_arbre_categorie(vn($_GET['catid'])); ?>

doit afficher

parcourir : accueil > nom de la catégorie

mais je n'affiche que

parcourir : accueil

code de la fonction

function affiche_arbre_categorie($catid=false) {

/* Affiche l'arbre de categories tree en appelemnt recupere_arbre_categorie */

	echo recupere_arbre_categorie($catid);

}


function recupere_arbre_categorie($catid=0) {

/* Renvoie l'arbre des catégories des produits, en commençant de top jusquà la

 * categorie specifiee par $id */


	global $wwwroot;


	$qid = mysql_query("SELECT parent_id, nom FROM peel_categories WHERE id = $catid AND etat = 1");


	if ($qid) {


		if (mysql_num_rows($qid)) {


			list($parent, $nom) = mysql_fetch_row($qid);


			$nom = "<a class=\"petit \" href=\"$wwwroot/achat/index.php?catid=$catid\">$nom</a>";


		} 


		else {


			$parent = 0;


			$nom = "";


		}


	}


	else {


		$parent = 0;


		$nom = "";


	}


	if ($parent > 0) {		


		return affiche_arbre_categorie($parent) . " > " . $nom;


	} elseif ($catid > 0) {


		return "parcourir : <a class=\"petit\"  href=\"$wwwroot/achat/index.php\">accueil</a> > " . $nom;


	} elseif ($catid == 0) {


		return "parcourir : <a class=\"petit\"  href=\"$wwwroot/achat/index.php\">accueil</a>";


	}


}

dans ma bdd, parent_id est toujours = 0

si quelqu'un peut m'aider, merci beaucoup

Share this post


: post
Share on other sites

Posted · Report post

Dans le fichier /lib/fonctions/fonctions.php

remplacer la ligne 133 de la fonction "recupere_arbre_categorie" par :

return "parcourir : <a class=\"petit\" href=\"$wwwroot/achat/index.php\">accueil</a> &gt; " . $nom;

Share this post


: post
Share on other sites

Posted · Report post

Dans le fichier /lib/fonctions/fonctions.php

remplacer la ligne 133 de la fonction "recupere_arbre_categorie" par :

return "parcourir : <a class=\"petit\" href=\"$wwwroot/achat/index.php\">accueil</a> > " . $nom;

Merci de votre réponse.

Mais cela ne change rien.

Je ne comprends vraiement pas pourquoi,

il est normal que $parent = 0 si je n'ai pas de sous-catégorie, n'est-ce pas?

en mettant

$nom = "<a class=\"petit \" href=\"$wwwroot/achat/index.php?catid=$catid\">$nom</a>";

à chaque else, rien n'y fait

si vous avez une idée, merci beaucoup

Share this post


: post
Share on other sites

Posted · Report post

Bon, et bien,

j'ai supprimé de l'url des fiches détails produits $catid, je ne peux donc pas récupérer la variable par GET

voila, voila

quelqu'un peut m'aider à faire un echo d'une autre façon

Share this post


: post
Share on other sites

Posted · Report post

le problème est que la question manque de précision :

dans quelles conditions la page détail s'affiche ?

en partant de quelle page ?

en passant par quel lien ?

La solution que je vous avais donné était pour le d'une navigation classique : choix de la catégorie puis choix du détail (encore qu'il me semble que c'est déjà prévu.

Sauf erreur de ma part vous parler d'un lien direct du type produit en page vers page détail.

Dans ce cas, effectivement la catégorie n'est pas envoyée dans la requète.

Share this post


: post
Share on other sites

Posted · Report post

je viens juste de solutionner mon problème.

Il venait du fait que les fiches produits sont normalement de forme:

monsite/achat/produits_details.php?id=xx&catid=xx

et j'ai supprimé la variable catid pour garder juste

monsite/achat/produits_details.php?id=xx

J'ai ajouté une requete supplémentaire pour récupérer cette variable autrement, et c'est bon.

J'ai juste un peu beaucoup bataillé car je ne suis pas très à l'aise pour la syntaxe ....

En tout cas, merci d'avoir pris le temps de me réponde

Bonne soirée

Share this post


: post
Share on other sites

Posted · Report post

Ce qui serait sympa pour le reste de la communauté c'est de publier votre solution. Cela pourra peut-être servir à quelqu'un un jour. Nous en profiterons d'ailleurs au passage pour vous valider votre syntaxe au cas où…

Share this post


: post
Share on other sites

Posted · Report post

Ce qui serait sympa pour le reste de la communauté c'est de publier votre solution. Cela pourra peut-être servir à quelqu'un un jour. Nous en profiterons d'ailleurs au passage pour vous valider votre syntaxe au cas où…

c'est très basique pour ceux qui code facilement,

code d'origine de produit_detail:

<?php if (! $prod) { ?>

	<h2>Produit non trouvé</h2>

	<blockquote class="normal">

	Désolé, le produit que vous cherchez n'a pas été trouvé. 

	Visitez notre 

	<a class="normal" href="<?php echo $wwwroot?>/achat">catalogue</a> 

	pour faire une nouvelle recherche.

	</blockquote>

	<?php return false; } ?>


<table border="0" width="100%"  cellpadding="5" cellspacing="0">

<tr>

	<td class="petit">

	<div class="normal" style="border-bottom: 1px dotted grey;text-transform : uppercase;">

	<?php affiche_arbre_categorie(vn($_GET['catid'])); ?>

	</div>
mon nouveau code:
<?php if (! $prod) { ?>

	<h2>Produit non trouvé</h2>

	<blockquote class="normal">

	Désolé, le produit que vous cherchez n'a pas été trouvé. <br>

	Visitez notre 

	<a class="normal" href="<?php echo $wwwroot?>/achat"><b>catalogue</b></a></br> 

	pour faire une nouvelle recherche.

	</blockquote>

	<?php return false; } ?>


<table border="0" width="100%"  cellpadding="5" cellspacing="0">

<tr>

	<td class="normal">

	<div class="normal" style="border-bottom: 1px dotted grey;">


	<?php

 $select = mysql_query("

			SELECT

				p.id,

				pc.categorie_id

			FROM

				peel_produits p

				,peel_produits_categories pc

			WHERE p.id = pc.produit_id

			AND pc.produit_id = '".$prod['id']."'

			AND pc.categorie_id > '0'

			");

			echo " <a class=\"petit\"  href=\"$wwwroot/achat/index.php\">Accueil</a>";

			if (mysql_num_rows($select) > 0) {


						while ($ref =  mysql_fetch_array($select)) {


				$catid = $ref['categorie_id'];



				 affiche_arbre_categorie(vn($catid)); 


				}

			}

			?>


		</div>

pour les produits dans plusieurs catégories, toutes les catégories sont accessibles dans "affiche_arbre_categorie"

donc j'ai sorti le lien vers "accueil" avant la boucle while pour qu'il ne se répète pas dans ces cas là

si vous voyez des problèmes avec cette modif, merci de vos remarques

Share this post


: post
Share on other sites

Posted · Report post

Beau boulot. Le seul souci c'est que le lien vers accueil existe déjà dans affiche_arbre_categorie. Je pense donc qu'il ne faut pas reprévoir la ligne :

			echo " <a class=\"petit\"  href=\"$wwwroot/achat/index.php\">Accueil</a>";

ou bien là vous risquez le doublon du "Accueil >"

Mis à par cela, je l'ai testé et cela marche nickel. Bravo !

Share this post


: post
Share on other sites

Posted · Report post

Beau boulot. Le seul souci c'est que le lien vers accueil existe déjà dans affiche_arbre_categorie. Je pense donc qu'il ne faut pas reprévoir la ligne :

			echo " <a class=\"petit\"  href=\"$wwwroot/achat/index.php\">Accueil</a>";

ou bien là vous risquez le doublon du "Accueil >"

Mis à par cela, je l'ai testé et cela marche nickel. Bravo !

:mellow: :P

Pour le lien vers l'accueil, j'ai aussi modifié fonctions

code d'origine:

if ($parent > 0) {		


		return affiche_arbre_categorie($parent) . " > " . $nom;


	} elseif ($catid > 0) {


		return "parcourir : <a class=\"petit\"  href=\"$wwwroot/achat/index.php\">accueil</a> > " . $nom;


	} elseif ($catid == 0) {


		return "parcourir : <a class=\"petit\"  href=\"$wwwroot/achat/index.php\">accueil</a>";
nouveau code:
if ($parent > 0) {		


		return affiche_arbre_categorie($parent) . " > " . $nom;


	} elseif ($catid > 0) {


		return "  > " . $nom;


	} elseif ($catid == 0) {


		return " <a class=\"normal\"  href=\"$wwwroot/achat/index.php\">accueil</a>";

sinon, en cas de produits dans plusieurs catégories, on obtient

Accueil>catégorie Accueil>catégorie ...

en mettant le lien vers l'accueil avant la boucle while comme j'ai fait, on obtient

Accueil>catégorie>catégorie....

C'est en tout cas ce que je recherchais

Bonne journée

Share this post


: post
Share on other sites

Posted · Report post

C'est juste mais comme vous n'aviez pas indiqué la modif du fichier "fonctions.php"…

Pour l'idée du doublonnage à cause des catégories multiples, bien vu car je n'avais pas pensé à cette éventualité.

Share this post


: post
Share on other sites

Posted · Report post

Je reviens tout de même sur un détail.

Je conçois que ce système vous convienne mais il y a tout de même un cas de figure ou cela n'est pas trop fonctionnel :

reprenons votre cas de catégories multiples mais avec des sous-catégories et voilà le résultat :

accueil>catégorie1>sous-catégorie1.1>catégorie1>sous-catégorie1.2

Je vais plancher dessus pour arriver à un compromis.

Share this post


: post
Share on other sites

Posted · Report post

Oui, ce serait bien que cela fonctionne dans tous les cas.

Pour ma part, comme je n'ai pas pour l'instant de sous-catégories, c'est une solution qui me convient.

J'ai d'ailleurs remarqué que des sites ont la même présentation de page produit_detail (sans catid dans l'url) avec le lien vers la catégorie.

Ils ont sans doute trouvé une solution autre que GET, à moins que ce soit la version Peel Premium qui permet cela.

Share this post


: post
Share on other sites

Posted · Report post

Après de multiples tests, il s'avère que, pour une raison que j'ignore, la gestion des 2 arbres est différente.

Je suis en train de tester une adaptation qe l'arbre des aticles qui à l'air d'être pleinement fonctionnel.

Si c'est concluant, je le publie.

Share this post


: post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

Twitter Advisto ecommerce

Facebook PEEL Shopping