Un nouveau petit plugin pour pallier une absence de Breadcrumb (Fil d’Ariane en français) sur nos blogs préférés. En clair ce plugin indique en permanence la position
de la page affichée par rapport à la page d’accueil du blog.
Exemple lorsqu’on consulte ce billet qui appartient à la sous-catégorie Plugins
de la catégorie Dotclear
:
Accueil › Dotclear › Plugins › Plugin Breadcrumb 0.1 pour Dotclear 2
Installation et utilisation
Le plugin s’installe comme tout plugin de Dotclear, rien de nouveau ici. Par contre il faudra modifier le fichier template correspondant à l’endroit où vous souhaitez afficher le Breadcrumb. En général, le fichier _top.html
est un bon choix car il permet d’obtenir l’affichage quelque soit le contexte courant.
La balise à ajouter est la suivante : {{tpl:Breadcrumb}}
Un paramètre optionnel, nommé separator
, permet de spécifier si nécessaire la chaîne de caractère qui sépare les éléments du Breadcrumb. Par défaut c’est la chaîne ›
(le ›
est l’équivalent de l’entité HTML ›
).
Exemple :
{{tpl:Breadcrumb separator=" :: "}}
Le Breadcrumb affiché est encapsulé dans un paragraphe dont l’id est breadcrumb
, soit si je reprends l’exemple cité au début de ce billet :
<p id="breadcrumb">Accueil › Dotclear › Plugins › Plugin Breadcrumb 0.1 pour Dotclear 2</p>
J’ai omis les liens dans l’exemple ci-dessus, mais tous les éléments, hormis le dernier, sont bien évidemment dotés du lien idoine (page d’accueil, catégorie Dotclear, catégorie Plugins).
Extension
Le plugin prend nativement en charge les contextes suivants :
default
etdefault-page
: Page d’accueil (première page et pages suivantes)category
: Billets d’une catégoriepost
: Billet seullang
: Billets d’une langue sélectionnéearchive
: Archives du blogpages
: Page seuletags
: Tous les mots-cléstag
: Billets comportant un mot-clé sélectionnésearch
: Billets résultant d’une recherche404
: Page d’erreur
Les autres plugins peuvent s’inviter dans la danse en gérant un behaviour publicBreadcrumb
qui fournit en paramètre le type d’URL correspondant au contexte (voir la liste ci-dessus pour les contextes natifs) et le séparateur à utiliser si nécessaire pour séparer les différents éléments.
La valeur de retour de ce behaviour sera, si elle est non vide, ajoutée après le lien vers la page d’accueil et précédée comme il se doit par le séparateur.
Exemple pour un plugin de formulaire de contact :
$core->addBehavior('publicBreadcrumb',array('extContactMe','publicBreadcrumb')); class extContactMe { public static function publicBreadcrumb($context,$separator) { if ($context == 'contactme') { return __('Contact me'); } } }
L’affichage produit pour le Breadcrumb sera alors :
<p id="breadcrumb"><a href="http://www.example.com/">Accueil</a> › Formulaire de contact</p>
À défaut de retour sur ce behaviour — ce qui peut indiquer que le contexte est inconnu — seul un lien vers la page d’accueil du blog sera affiché.
Conclusion
N’hésitez pas à me faire toutes les remarques que vous auriez au sujet de ce petit plugin, ce billet servira de support pour celui-ci, en tout cas pour cette version.
1 De Frank -
Bonjour,
La partie concernant la page active en l’occurrence “Lien permanent”, ne devrait pas être un lien. Si je clique dessus rien ne se passe aucun changement de page et cela peut-être perturbant pour certains utilisateurs
2 De Franck -
C’est pourtant ce qui est prévu, seuls les liens “parents” devraient l’être. Je vais vérifier…
3 De Franck -
…et après vérification, il n’y a pas de lien sur la page courante.
Mais peut-être ne parlons-nous pas de la même chose ?
4 De Franck -
Ah je sais ! Le plugin n’est pas installé et actif sur ce blog. Ce qui est affiché sous le titre du billet ne sont que les catégories d’appartenance et le lien permanent du billet (ce lien est fourni afin que les visiteurs puissent le transmettre facilement à quelqu’un d’autre).
C’est vrai que les deux peuvent prêter à confusion.
5 De Frank -
Oui la confusion viens de là donc mon commentaire est en fin de compte pas très utile puisque cela est pris en compte désolé ;)