Une nouvelle version de ce plugin mis à jour pour la version 2.6 de Dotclear.
Présentation
Ce plugin indique en permanence la position
de la page affichée par rapport à la page d’accueil du blog, communément appelé un fil d’Ariane.
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.5 pour Dotclear
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 cette version du plugin.
1 De Gvx -
Je pense avoir détecter un petit bug dans le contexte "tag".
Si il y a plus d'une page, une url de type
est généré.Mais le plugin tags ne gère pas ce type d'url. On arrive donc sur une page d'erreur 404.
Il faudrait générer une url type
en fait remplacer
$core->blog->url.$core->url->getBase("tags")
par
$core->blog->url.$core->url->getBase("tag")
2 De Franck -
Merci pour le retour, je m'occupe de corriger ça dans la semaine…