[Résolu] Fil d'ariane d'une fiche produit

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour à tous,

J'utilise le module drupal commerce.
Pour afficher mes produits j'ai créé un "display product" intitulé "fiche produit".

Ces produits sont classés par "famille", puis par "catégorie" (tous les 2 des taxo)
Exemple : Le produit "Coffre extra large" est classé dans la famille "Accessoires" et dans la catégorie "boîte".
(Référence à des termes dans la fiche produit)

Quand je clic sur le menu qui affiche la vue des "boites", le fil d'ariane est correcte : "Accueil >> Accessoires >> Boites",
par contre quand je suis sur la fiche produit, le fil d’Ariane ne fonctionne pas : "Accueil >> Coffre extra large" au lieu de "Accueil >> Accessoires >> >Boites >> Coffre extra large".

Comment corriger ce problème ? J'y ai passé plusieurs heures et je ne trouve aucune solutions.

PS : Je suis nouveau avec Drupal, et c'est mon premier post sur le forum, soyez indulgent ;)

Version de Drupal : 

Bonjour,

Merci pour ta réponse.

Après 2 jours de recherches je m'en suis sorti autrement en bidouillant un peu dans le code.

Je met ma solution si ça peut aider quelqu'un

J'ai modifié la fonction preprocess_page (fonction qui effectue des calculs avant de générer la page) de mon thème qui se trouve dans la page template.php de mon thème en y ajoutant ce bout de code personnalisé :

//test si il s'agit d'une fiche produit (type de la fiche produit = 'produit')
  if (isset($vars['node']) && in_array($vars['node']->type, array('produit'))) {
   
    //on récupère l'id du produit de la fiche produit
    $id_product = $vars['node']->field_product['und'][0]['product_id'];
   
    //on charge le produit grace à son identifiant
    $product = commerce_product_load($id_product);

    //on récupère les taxo
    $famille = taxonomy_term_load($product->field_famille['und'][0]['tid']);
    $type_de_produit = taxonomy_term_load($product->field_type_de_produit['und'][0]['tid']);

   //on associe à chaque taxo les termes et une url associée
   $tab_chemin_famille = array(
                              "Accessoires"=>"/accessoires",
                              "Design"=>"/design"
                               ...
                              );
   $tab_chemin_type_de_produit = array(
                                      "Boîtes"=>"/boites",
                                      "Decoration"=>"/decorations",
                                      ...
                                      );

   //on construit le fil d'ariane
   //ne pas oublier de déclarer $base_url en variable global, elle indique l'adresse d'accueil du site.
   $breadcrumb[] = l(t('Home'), '<front>');
   $breadcrumb[] = l($famille->name, $base_url.$tab_chemin_famille[$famille->name]);
   $breadcrumb[] = l($type_de_produit->name, $base_url.$tab_chemin_famille[$famille->name].$tab_chemin_type_de_produit[$type_de_produit->name]);
   drupal_set_breadcrumb($breadcrumb);
  }