web-dev-qa-db-fra.com

Fil d'Ariane de la taxonomie

J'utilise le module de taxonomie de base pour les balises de blog, mais lorsque vous êtes sur la page d'une balise, le fil d'Ariane ne peut apparaître que comme `` Accueil '', alors que j'aimerais idéalement être `` Accueil> Blog> # Tag # ''. J'utilise un module de fil d'Ariane personnalisé pour définir le fil d'Ariane pour les types de contenu (<- ne permet pas le fil d'Ariane de taxonomie) et j'ai essayé d'utiliser le module de fil d'Ariane de taxonomie avec absolument aucun résultat, en partie parce qu'il ne s'agit pas d'un module particulièrement configurable. Les pages de balises de blog (répertoriant tous les nœuds sous un terme) semblent être générées à partir du module de taxonomie de base et non des vues, donc je ne peux pas résoudre le problème dans les vues.

Si quelqu'un pouvait m'orienter dans la bonne direction, je lui en serais reconnaissant :)

8
Storsey

Cela ressemble à quelque chose que vous pourriez faire relativement facilement avec drupal_set_breadcrumb dans un module personnalisé.

C'est probablement ce que le module de navigation personnalisé utilise lui-même. Vous devrez modifier le fil d'Ariane après le module de fil d'Ariane personnalisé mais avant leur rendu. C'est peut-être ce qui vous pose certains problèmes avec le module de fil d'Ariane de la taxonomie.

Vous pourrez peut-être l'utiliser si vous modifiez son poids dans la table système, en fonction de la façon dont les deux modules modifient le fil d'Ariane. Je suppose que c'est fait avec hook_init

3
googletorp

Cela peut être accompli en remplaçant theme_breadcrumb () dans le template.php de votre thème Un exemple d'implémentation:

function mytheme_breadcrumb($breadcrumb) {

  if (arg(0) == 'taxonomy' && arg(1) == 'term' && is_numeric(arg(2))) {
    $breadcrumb = array();
    $breadcrumb[] = l(t('Home'), '<front>');
    $breadcrumb[] = l(t('Blog'), 'path/to/blog');

    $tid = arg(2);

    if ($term = taxonomy_term_load($tid)) {
      $uri = entity_uri('taxonomy_term', $term);
      $breadcrumb[] = l($term->name, $uri['path'], $uri['options']);
    }
  }

  // resume normal operation
  if (!empty($breadcrumb)) {
  // uncomment the next line to enable current page in the breadcrumb trail
    $title = drupal_get_title();
    if (!empty($title)) {
      $breadcrumb[] = $title;
      unset($title);
    }

    return '<div class="breadcrumb">'. implode(' &gt; ', $breadcrumb) . '</div>';
  }
}
9
zerolab

Il y a un module pour cela (bien plus d'un):

Je choisirais probablement le fil d'Ariane personnalisé en raison de sa flexibilité et de sa capacité à créer également du fil d'Ariane pour le reste de votre site.

4
wiifm

J'avais le même problème avec les taxonomies. Je suis tombé sur le module "Easy Breadcrumbs", qui regarde hors de la construction d'URL pour générer le fil d'Ariane (repose sur Pathauto et Clean URLs).

Par exemple:

example.com/style/mediterranean

Accueil> Style> Méditerranée

Je comprends que dans de nombreux cas, cela n'aidera pas, mais si votre fil d'Ariane imite la construction de votre URL, alors Easy Breadcrumbs devrait résoudre vos problèmes.

2
woop

Avec miettes 7.x-2.x:

  1. Visitez admin/structure/crumbs, et activez le caractère générique du plugin taxonomy. *, Ou quelque chose de plus spécifique de la famille des plugins taxonomy. (il est peut-être déjà activé, mais jetez un œil pour en être sûr)

  2. Aller à admin/structure/crumbs/entity-parent/taxonomy-term, et définissez "blog" comme chemin parent pour le vocabulaire que vous avez choisi.

  3. Visitez admin/structure/crumbs, assurez-vous que crumbs.entityParent. * (Ou quelque chose de plus spécifique) est activé.

Avec miettes 7.x-1.x:

  1. Visitez admin/structure/crumbs, et activez le caractère générique du plugin taxonomy. *, Ou quelque chose de plus spécifique de la famille des plugins taxonomy. (il est peut-être déjà activé, mais jetez un œil pour en être sûr)

  2. Écrivez un module personnalisé avec un plugin Crumbs (*) qui fait de "blog" le chemin parent pour "taxonomy/term /% taxonomy_term".

  3. Visitez admin/structure/crumbs, activez votre nouveau plugin et donnez-lui une priorité plus faible (plus bas) que la taxonomie. * Ou taxonomy.termParent. *.

(*) Écriture du plugin: http://drupal.org/node/1398876
L'exemple peut être un peu exagéré à cet effet, j'espère que vous pourrez trouver votre chemin.

1
donquixote

J'utilisais Affichage de la taxonomie et j'ai constaté que drupal_set_breadcrumb() échouait sur hook_init() et que les remplacements du fil d'Ariane échouaient dans d'autres modules.

Voir ce problème pour un correctif et une solution proposée aux utilisateurs de ce module: la gestion du fil d'Ariane rend impossible la modification du fil d'Ariane pour les termes sans parents

1
tmsimont