Une nouvelle version de ce petit plugin qui prend en charge la pagination dans les contextes supplémentaires suivants[1] :
- Billets d’une catégorie
- Billets associés à un mot-clé
- Billets retrouvés sur une recherche
Présentation
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.4 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 premier élément est doté d’un id
afin que vous puissiez le styler, soit si je reprends l’exemple cité au début de ce billet :
<a id="bc-home" href="/">Accueil</a> › Dotclear › Plugins › Plugin Breadcrumb 0.4 pour Dotclear 2
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 :
<a id="bc-home" href="http://www.example.com/">Accueil</a> › Formulaire de contact
À 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.
Note
[1] Jusqu’à présent seule la page d’accueil était gérée de cette façon.