fil d'ariane

6 messages dans ce sujet

Posté(e) · Signaler ce message

bonjour,

est il possible de modiifer la fonction affiche_arbre_categorie afin d'afficher le nom du produit lorsque l'on est sur la page produit details ?

merci

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Il faudrait ajouter un 3ème paramètre à la fonction affiche_arbre_categorie, qui contiendrais l'id du produit. La valeur par défaut du paramètre serait null.

Si ce paramètre n'est pas vide, il faudra faire une requête pour chercher le nom du produit dans la table peel_produit. Le résultat de la requête doit être ajouté sur cette ligne :

return affiche_arbre_categorie($parent, ' > ' . $nom . ' ' . $additional_text) . '>' . $nom_du_produit;

Dans la fonction affiche_ariane de \lib\fonctions\display.php, il faut ajouter l'id du produit en paramètre de la fonction :


} elseif (defined('IN_CATALOGUE_PRODUIT')) {
$short_link_text = affiche_arbre_categorie(vn($_GET['catid']),null,vn($_GET['id']));
[/CODE]

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

voici la fonction ainsi modifiée et qui fonctionne !


function affiche_arbre_categorie($catid = 0, $additional_text = null, $id_produit = null)

{

  if (!empty($id_produit)) {

  $qid = query('SELECT p.id, p.nom_' . $_SESSION['session_langue'] . ' as nom_prod

   FROM peel_produits p, peel_produits_categories pc

   WHERE pc.produit_id = ' . intval($id_produit) . ' AND p.etat = "1"');

  if ($prod = fetch_assoc($qid)) {

   $nom_produit =  String::html_entity_decode_if_needed($prod['nom_prod']);

  } else {

   return false;

  }

  } else {

  $qid = query('SELECT parent_id, nom_' . $_SESSION['session_langue'] . '

   FROM peel_categories

   WHERE id = "' . intval($catid) . '" AND etat = "1"');

  }

  if (num_rows($qid)) {

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

   $nom = '<a href="' . get_product_category_url($catid, $nom) . '">' . $nom . '</a>';

  } else {

   $parent = 0;

   $nom = '';

  }

  if ($parent > 0) {

   return affiche_arbre_categorie($parent, ' ' . $nom . ' ' . $additional_text) . ' &gt; ' . $nom_produit;

  } else {

   return $nom . $additional_text;

  }

}

Pouvez-vous regarder et corriger si nécessaire

merci Simon

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Oui, c'est ça :) !

Après plus grande réflexion, on peux faire une version peu plus courte en utilisant la classe Product :


function affiche_arbre_categorie($catid = 0, $additional_text = null, $id_produit = null)
{
if (!empty($id_produit)) {
$product_object = new Product($id_produit);
}
$qid = query('SELECT parent_id, nom_' . $_SESSION['session_langue'] . '
FROM peel_categories
WHERE id = "' . intval($catid) . '" AND etat = "1"');
if (num_rows($qid)) {
list($parent, $nom) = fetch_row($qid);
$nom = '<a href="' . get_product_category_url($catid, $nom) . '">' . $nom . '</a>';
} else {
$parent = 0;
$nom = '';
}
if ($parent > 0) {
return affiche_arbre_categorie($parent, ' ' . $nom . ' ' . $additional_text) . (!empty($product_object->name) ? ' &gt; ' . $product_object->name : '');
} else {
return $nom . $additional_text;
}
}
[/CODE]

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

la classe produit récupére bien l'id et le nom du produit mais pour l'affichage :

l'appel à $product_object->name ne donne rien à cet endroit , il faut la mettre soit dans :

$nom = '<a href="' . get_product_category_url($catid, $nom) . '">' . $nom . '</a>'; (ma préférée)

ou bien

return $nom . $additional_text;

est ce normal ?

Ma catégorie est pourtant de niveau 1 et devrait donc s'afficher à l'endroit que vous avez indiqué :

if ($parent > 0) {

....

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Il faut effectivement ajouter l'appel à $product_object->name sur la ligne return $nom . $additional_text. Les dernière lignes de la fonction doivent donc être :


if ($parent > 0) {
return affiche_arbre_categorie($parent, ' &gt; ' . $nom . ' ' . $additional_text) . (!empty($product_object->name) ? ' &gt; ' . $product_object->name : '');
} else {
return $nom . $additional_text . (!empty($product_object->name) ? ' &gt; ' . $product_object->name : '');
}
[/CODE]

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