Une nouvelle et dernière version autonome de ce plugin qui sera intégré dans la future version 2.8 de Dotclear. Il permet maintenant d’activer l’affichage du fil d’Ariane par blog et d’inclure ou pas une balise d’encadrement du type <p id="breacrumb">…</p>
.
N’oubliez pas d’activer le plugin pour chacun des blogs où vous l’utilisez si vous faites une mise à jour.
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.6 pour Dotclear
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 :
<p id="breadcrumb"> <a id="bc-home" href="/">Accueil</a> › Dotclear › Plugins › Plugin Breadcrumb 0.6 pour Dotclear </p>
Tous les éléments, hormis le dernier, sont bien évidemment dotés du lien idoine (page d’accueil, catégorie Dotclear, catégorie Plugins). De plus, l’ensemble des éléments est encadré par une balise <p id="breadcrumb">
… </p>
, comportement que vous pouvez désactiver si nécessaire.
Une fois le plugin installé et la balise en place (si nécessaire), il faut activer l’affichage du fil d’Ariane pour le blog ; voir Paramètres du blog, section Fil d’Ariane pour l’activation et les options.
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 id="bc-home" 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 cette version du plugin.
1 De brol -
Manque une traduction dans les params du blog : The
tag should be present (or inserted if not) in the template.2 De Franck -
Merci pour le signalement brol, je regarderai ça dès que possible.
3 De Franck -
Correction effectuée, version 0.6.1 dispo ici et sur DotAddict rapidement.
4 De brol -
J’ai une erreur depuis mon admin quand je fais la mise à jour (via l’admin direct) : Une erreur est survenue pendant le téléchargement du fichier.
5 De Franck -
C’est le cas uniquement avec ce plugin ?
6 De brol -
J’avais que celui-là à mettre à jour. Je suis donc passé par la mise à jour via le lien + pwd. Pas eu de pb alors.
7 De brol -
Ce plugin est-il déjà intégré à dc2.8-dev-r3055 ?
8 De Franck -
Oui
9 De brol -
A chaque mise à jour de la version dev de dc, la màj se bloque sur ce plugin. Je passe un coup de fakemeup. La mise à jour se fait ensuite.
La version de breadcrumb est toujours là mais de nouveau en 0.6 alors que je l’avais mise à jour auparavant (en 0.6.1). D’ailleurs, la mise à jour en 0.6.1 m’est proposée…
Bref, je me demande si ce plugin ne devrait pas être supprimé lors de la mise à jour en dc2.8 si c’est maintenant intégré direct dans le core de dc… ?
10 De Franck -
Il faut supprimer le plugin breadcrumb s’il est présent dans un second répertoire de plugins (différent de celui fourni avec DC) vu qu’il est maintenant intégré à la distribution.
Ça fera l’objet d’une note lors de la release finale.
11 De brol -
Certes mais il s’agit d’une installation de base, sans répertoire supplémentaire pour les plugins.
La màj r3056 se présente. Je mets d’abord à jour le plugin en 0.6.1. Pas de pb. Je lance ensuite la màj dc2.8-dev-r3056, ça couine sur “plugins/breadcrumb/_define.php”. Je passe un coup de fme. Puis je relance la màj qui passe alors sans pb. Sauf qu’elle m’a remis breadcrumb en v0.6 (la v0.6.1 m’est de nouveau proposée)…
Je pense qu’il y a un soucis.
12 De Franck -
Non, il faut supprimer le plugin breadcrumb (quelle que soit sa version), avant de faire la mise à jour. Ça sera indiqué à la release.
Le plugin en version 0.6.1 n’est à utiliser qu’avec une version 2.7.5 ou antérieure de Dotclear.
13 De brol -
OK. Du coup, c’est bizarre qu’une mise à jour soit présentée si elle n’est pas compatible avec la version.
14 De Franck -
Simplement parce qu’on ne peut pas indiquer la version maximum pour un plugin déposé sur DotAddict, et qu’il n’y a aucune raison de ne pas maintenir ce plugin pour les installations antérieures à la 2.8.
15 De brol -
Certes mais comme la mise à jour est malgré tout proposée dans l’admin, mais qu’il ne faut pas la faire, c’est confusant… C’est tout ce que je voulait relever.
Maintenant je le sais, je ne mettrai pas à jour, reste juste à faire passer le mot à tout le monde qui ne lira pas ton commentaire, ou le blog de dotclear ou tout autre support que tu choisiras.
16 De Franck -
Ça viendra au moment de la release de la 2.8, comme je l’ai dit plusieurs fois ici.
17 De brol -
J’ai un contexte qui comporte un slash, comment je peux faire pour que ça soit pris en compte ?
Il s’agit de multitoc (trois contextes : multitoc/cat, multitoc/alpha et multitoc/tag).
Merci
18 De brol -
Y aurait-il possibilité d’appeler le fichier .html plutôt que le contexte ? Si oui, comment écrire ça ?
Merci.
19 De Franck -
Pour le
/
suffit de tester sa présence dans l’URL, après ça dépend de ton plugin.Sinon je n’ai pas bien compris ta seconde question sur le fichier (?) plutôt que le contexte.
20 De brol -
J’ai essayé avec multitoc/tag, pas pris en compte. Et si je mets juste tag, ça ne le fait pas. Bref, vais probablement laisser tomber les différents contextes et me restreindre au contexte parent. Et basta !
Sinon, pour l’appel du fichier html plutôt que le contexte, c’est pour le plugin dayMode dont les urls sont du type /archive/année/mois/jour. Je me disais, probablement à tort, qu’il serait plus simple de déterminer le truc à afficher en fonction du fichier html appelé au lieu du contexte.
21 De brol -
Tu écris ” En général, le fichier _top.html est un bon choix car il permet d’obtenir l’affichage quelque soit le contexte courant.” pourquoi en ce cas l’avoir casé dans la div main dans blowup v2.8 ?!
22 De Franck -
Parce que « En général » ne veut pas dire « Partout », et de toute façon ici n’est pas le lieu pour discuter des développements de Dotclear 2.8, uniquement de cette version du plugin.
23 De brol -
Ok. Ai déposé un ticket. Ça te permet de te concentrer sur les autres demandes alors ? :)
24 De Franck -
Pour les autres demandes, concernant multitoc et daymode, vu que je ne les connais pas, je vais avoir du mal à te répondre.
25 De brol -
C’est marrant parce que tu as participé à multitoc, dixit la fiche sur le lab.
Mais bon, ça n’empêche qu’il n’y aurait pas un moyen pour appeler un fichier plutôt qu’un contexte ?
26 De brol -
Mais si tu veux/peux jeter un coup d’oeil, les dernières versions sont sur mon github :
dayMode
multiToc
27 De brol -
Bonjour,
Pas trouvé le fil de support sur le forum dc…
Il me semble qu’il y a un soucis entre breadcrumb et Related Pages : Quand on affiche une page related, elle n’est pas identifiée par breadcrumb.
Je ne sais si ça vient de breadcrumb ou de Related Pages.
Merci
28 De Franck -
Ce plugin étant intégré à Dotclear, nul besoin d’un fil dédié sur le forum.
Pour les plugins tiers, il faut s’assurer qu’ils prennent en compte le behaviour publicBreadcrumb pour qu’ils soient gérés via Breadcrumb.