Submitted by Vinz62 on
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 ;)
Bonjour,
Permalien Soumis par kovalsky le 17 Avril, 2014 - 12:34
Bonjour,
je te conseille de regarder du côté de Custom Breadcrumb : https://drupal.org/project/custom_breadcrumbs
Ou bien des fonctions de thème (avec un hook_breadcrumb) si tu es plus développeur.
Bonjour,
Permalien Soumis par Vinz62 le 17 Avril, 2014 - 13:55
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);
}