Fiche produit

14 messages dans ce sujet

Posté(e) · Signaler ce message

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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;

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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ù…

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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 !

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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é.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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.

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