Crumbs, la suite ultime pour maîtriser votre fil d'Ariane avec Drupal

Une voiture dans le désert

Pour un site Internet qui dispose d'une profondeur conséquente, le fil d'Ariane (Breadcrumb) est un élément fort, voire indispensable, qui participe à l'ergonomie et favorise la navigation au sein des pages de votre site Web.

Drupal dispose d'un nombre conséquent de modules contribués qui permettent de personnaliser le fil d'Ariane selon un certain nombre de facteurs, comme la position de la page dans un menu, le type de contenu visualisé, les chemins des termes de taxonomy, etc. Beaucoup de ces modules proposent de personnaliser son fil d'Ariane selon des critères relativement limités et il peut devenir compliqué de couvrir tous les cas d'usage avec un seul module.

Le module Custom Breadcrumbs est un de ces modules qui se propose de couvrir le plus de cas d'usage (les vues, panels, les vocabulaires et termes de taxonomy, les chemins, les types de contenus) et est d'ailleurs un des plus utilisés selon ses statistiques d'usage. Mais il est toujours en version alpha et la couverture de ces cas d'usage n'est pas encore complètement fonctionnelle. Un autre module Path breadcrumbs se veut plus universel puisqu'il ne se propose pas moins de couvrir toutes les entités de Drupal. Son seul, et majeur, inconvénient est qu'il est incompatible avec les urls personnalisées (il ne fonctionne donc qu'avec les url brutes natives de Drupal, comme par exemple node/xx).

Crumbs, la solution ultime ?

Un nouveau module, Crumbs, est tout récemment apparu dans le paysage des modules se proposant de maîtriser le fil d'Ariane. Le module Crumbs ne se propose pas moins d'être la solution ULTIME pour maîtriser son fil d'Ariane, quelque soit le besoin. Crumbs est-il cette solution complète dont tout site builder a pu rêver un jour ? Peut-on obtenir un fil d'Ariane sur mesure, pertinent, en quelques clics ?

Crumbs fonctionne sur un principe simple pour construire le fil d'Ariane. Depuis la page consultée, il recherche le parent, puis le parent du parent jusqu'à remonter à la page d'accueil ou trouver le même parent. Mais comment fait-il pour trouver le parent pertinent, quand plusieurs sont disponibles ? Couvre-t-il toutes les entités ? Peut-il utiliser le contenu même des pages pour construire le fil d'Ariane ? Crumbs utilise un système de plugins pour déterminer quel est le parent le plus pertinent pour la page en cours, selon les priorités définies par le site builder (pour avoir tous les détails du fonctionnement de Crumbs, vous pouvez consulter sa documentation très complète). Ce système de plugins s'avère être redoutable tant en terme de simplicité de configuration qu'en terme d'efficacité. De plus, autre point non négligeable, Crumbs se veut modulaire et fournit une API pour rajouter ses propres plugins Crumbs si, dans ce cas impropable, le besoin s'en fait réellement ressentir.

Le rêve est devenu réalité.

Crumbs permet donc de construire son fil d'Ariane en fonction de divers paramètres, tels que :

  • Les menus
  • Les vocabulaires et termes de taxonomy
  • Les types de contenus
  • Les chemins (personnalisés ou non)

Jusque là rien que du classique, mais toute la force de Crumbs provient de ses plugins permettant de contôler le fil d'Ariane selon

  • Les champs Entity Reference (et même Entity reference prepopulate)
  • Les champs Texte des contenus
  • Les champs Référence à un terme disponibles dans le corps des contenus
  • Des parents définis manuellement (ou sur la base des token disponibles) pour chaque type d'entité et de bundles
  • Les filtres contextuels de Views

Vous avez noté, je n'en doute pas, le support de Entity Reference et de Views...Et je dois en oublier...

Un aperçu de la configuration de Crumbs

La configuration des plugins de Crumbs

Afin de déterminer les priorités et trouver le bon parent pour chaque élément du fil d'Arianne, Crumbs utilise un système de poids que l'on affecte à chacun des plugins. Le plugin ayant un poids plus élevé l'emporte sur ceux ayant un poids moins élevé. Vous pouvez ainsi déterminer quel fil d'Ariane sera construit en affectant aux plugins disponibles un poids pertinent.

Paramètres des plugins de Crumbs

Ainsi, le fil d'Ariane des contenus disposant par exemple de certains champ Entity Reference sera construit en prenant comme parent le contenu déclaré dans le champ Entity Reference. Le parent suivant sera déterminé en repartant de ce parent et ainsi de suite jusqu'à remonter jusque la page d'accueil ou faire une boucle sur le même parent. Les plugins sont disponibles d'une manière générique, c'est à dire qu'il peuvent s'appliquer à n'importe que type d'entité, mais sont également disponibles de façon plus restreinte en les utilisant par exemple uniquement aux entités de type Node ou encore uniquement aux bundles (Les Node de type Articles).

Le paramètre du plugin crumbs.entityParent.node.* correspond aux parents que nous pouvons déclarer manuellement (parents fixes ou déterminés au moyen de token ou d'un chemin à une ou plusieurs valeurs) pour chaque bundle des entités Noeuds, Taxonomy et User.

Ainsi, une configuration simple en affectant le bon poids aux bons plugins permet d'obtenir un fil d'Ariane réellement pertinent. Au premier abord, si la configuration des plugins peut vous apparaître encore un peu obscur, Crumbs dispose d'une solution pour s'approprier facilement la puissance de ce module. En effet, il propose une interface de debug permettant de comprendre comment est construit le fil d'Arianne et avec quel plugin.

L'interface de debug de Crumbs

Interface de debug de Crumbs

Ainsi, il devient très facile de comprendre la logique utilisée par le module Crumbs pour déterminer les parents de chaque élément du fil d'Ariane et d'ajuster en conséquence le poids des plugins. Il faut souligner un élément d'importance : Crumbs ne prend en compte les parents que s'ils disposent bien entendu d'un chemin (cela va sans dire), mais également d'un titre.

Une autre astuce : pour configurer un parent sur le chemin d'une vue qui est également présente dans un menu, il convient de déclarer la position de cette vue dans le menu via l'interface de configuration de Views et non pas directement dans l'interface de configuration du menu (car alors nous aurions 2 chemins identiques avec des titres potentiellement distincts déclarés dans deux plugins de Crumbs).

Enfin pour conclure, Crumbs dispose également de quelques paramètrages pour l'affichage du fil d'Ariane bien utiles.

Les paramètres d'affichage de Crumbs

Paramètres d'affichage de Crumbs

Parmi les paramètres disponibles pour l'affichage du fil d'Ariane, Crumbs en propose quelque-uns permettant de contrôler comment est affiché dans le fil d'Arianne le titre de la page consultée, mais également de contrôler l'affichage du fil d'Ariane en fonction du nombre d'éléments le constituant.

Essayez Crumbs, c'est l'adopter. Tout simplement, ça marche et ce quelque soit les cas de figure (ou presque) ! Vous ne pourrez plus vous en passer. Ne vous y trompez pas, Crumbs fait partie de ces modules que vous pouvez installer les yeux fermés pour tout projet Drupal, au même titre que Views, Token, Entity API, Pathauto, etc.

Vous avez déjà utilisé Crumbs ? Partagez vos expériences dans les commentaires.

Commentaires

Soumis par Johnk314 (non vérifié) le 29/04/2014 à 16:56 - Permalien

I was very pleased to discover this website. I wanted to thank you for your time for this fantastic read!! cefdcdkagdgd

Soumis par Brice (non vérifié) le 05/08/2016 à 09:41 - Permalien

Bonjour, merci pour cette belle introduction.
Le module est très complet. Cependant, je n'ai pas réussi à afficher le type de contenu dans le fil d'ariane, savez-vous si c'est possible ? si oui, avec quel plugin de crumbs ?

Mon chemin ressemble à ça actuellement : Home > Taxonomy Term > Node Title

J'aurais souhaité avoir plutôt le node type avant ou à la place du terme de taxonomie.

Merci d'avance pour votre retour.

Bonjour,
Le type de contenu n'est pas disponible car il ne consiste pas en un chemin. Soit vous devrez créer votre propre plugin Crumbs, soit il vous faut créer des vues dont le nom sera basé sur le type de contenu, vues que vous pourrez déclarer comme parent de vos types de contenu dans la configuration générale de Crumbs.

Ajouter un commentaire