Par exemple, dans une boucle « article », et pour un article situé dans une sous_rubrique, la balise suivante #FIL_ARIANE
provoquera l’affichage suivant :
Racine du site > Rubrique > Sous rubrique > Titre de l’article
Pour mémoire, voici le code SPIP [1] qui permet de parvenir à un résultat équivalent, et que la balise #FIL_ARIANE
peut tout à fait remplacer [2] :
<div id="hierarchie"><a href="#URL_SITE_SPIP/"><:accueil_site:></a><BOUCLE_ariane(HIERARCHIE){id_article}> > <a href="#URL_RUBRIQUE">[(#TITRE|couper{80})]</a></BOUCLE_ariane>[ > <strong class="on">(#TITRE|couper{80})</strong>]</div>
Installation
Dans sa version 0.1 le plugin contient à la fois un fichier plugin.xml et un fichier paquet.xml. Il est donc compatible SPIP 2.1 et SPIP 3.0. Il s’installe comme n’importe quel plugin SPIP (voir les procédures d’installation recommandées).
Utilisation
Comme pour une boucle « articles » on peut utiliser la balise #FIL_ARIANE
au sein d’une boucle « rubrique ». Ainsi au sein d’une boucle « rubriques » la balise #FIL_ARIANE
affichera :
Racine du site > Rubrique > Sous rubrique > Titre de la rubrique
Le cas des organisations [3] a déjà été traité, permettant de retrouver la hiérarchie d’une organisation en tenant compte des mères et des filles. Une balise #FIL_ARIANE
au sein d’une boucle « organisations » donnera l’affichage suivant :
Racine du site > Maison mère > Filiale
Les mots ont été traités aussi ; mais pas encore les sites [4].
Utilisation en dehors d’une boucle
Il est possible d’indiquer manuellement à la balise #FIL_ARIANE
les éléments du fil. Chaque élément du fil est constitué d’un couple (titre + lien). Les éléments (donc les couples titre + lien) sont passés sous forme de tableau SPIP, en paramètre de la balise.
Pour que le 1er élément après le lien vers l’accueil soit par exemple le texte « Le monde » avec un lien vers la page « le_monde », on écrira d’abord un tableau SPIP sous cette forme :
#ARRAY{'Le monde',#URL_PAGE{le_monde}}
puis on placera ce tableau en paramètre de la balise comme ceci : [(#FIL_ARIANE{[(#ARRAY{'Le monde',#URL_PAGE{le_monde}})]})]
Il en va de la même logique pour insérer d’autres éléments dans le fil : des couples (titre/lien) que l’on placera dans un tableau SPIP en paramètre de la balise. Le dernier élément apparaîtra en gras. On peut ainsi imaginer le fil d’Ariane suivant :
[(#FIL_ARIANE{ [(#ARRAY{ 'Journaux', #URL_PAGE{les_journaux}, 'Le monde', #URL_PAGE{le_monde}, 'Page sports', #URL_PAGE{sports} })] })]
qui donnera l’affichage suivant :
Racine du site > Journaux > Le monde > Page sports
Paramétrages (optionnels)
Il n’y a rien d’autre à faire pour utiliser la balise #FIL_ARIANE
que d’installer le plugin et mettre la balise dans un squelette. Cependant, quelques paramétrages optionnels sont disponibles pour adapter finement le comportement de la balise aux souhaits du webmestre qui l’utilise.
La constante _FIL_ARIANE_ACCUEIL
permet de définir si le fil d’Ariane doit commencer ou non par un lien vers la page d’accueil. Par défaut le fil d’Ariane contient le lien vers la page d’accueil. Pour que le fil d’Ariane commence au 1er élément (sans l’accueil donc) il faut redéfinir la constante _FIL_ARIANE_ACCUEIL
dans les options du site (le fichier mes_options.php) qui est par défaut à true, de cette manière :
<?php
define('_FIL_ARIANE_ACCUEIL',false);
?>
Ainsi notre exemple de fil d’Ariane dans une boucle article donnerait le résultat suivant :
Rubrique > Sous rubrique > Titre de l’article
Depuis la version 0.1.6 la constante _FIL_ARIANE_LIEN
permet de définir si le dernier élément doit être un lien ou non. La constante est à false par défaut. Pour mettre le lien sur le dernier élément, il faut redéfinir la constante de cette manière :
<?php
define('_FIL_ARIANE_LIEN',true);
?>
Avec une constante _FIL_ARIANE_LIEN
définie à true, la balise #FIL_ARIANE
dans une boucle article donnerait le résultat suivant :
Accueil du site > Rubrique > Sous rubrique > Titre de l’article
Les 2 autres paramétrages possibles sont la classe CSS et le caractère séparateur . Par défaut le conteneur du fil porte la classe CSS fil_ariane hierarchie breadcrumb mais celui-ci peut etre changé avec la constante _FIL_ARIANE_STYLE
. Par défaut le séparateur est le code ">" permettant d’afficher le signe « > » mais celui-ci peut etre changé avec la constante _FIL_ARIANE_SEP
.
À l’attention des développeurs
Il est possible de définir un fil d’Ariane particulier pour un objet éditorial SPIP donné. Pour cela il suffit d’écrire une fonction fil_ariane_monobjet_dist(). Le rôle de cette fonction est d’appeler la fonction qui génère le tableau de couples (titre/lien) constituant le fil d’Ariane. Il faut préciser 4 paramètres :
- le nom de l’objet
- la valeur de la clé primaire de l’objet
- le nom du champ contenant le ’titre’ de l’objet
- ainsi que le nom du champ contenant le parent de l’objet.
Voici l’exemple pour les organisations :
function fil_ariane_organisation_dist($id_organisation) {
return fil_ariane_hierarchie_objet('organisation', $id_organisation, 'nom', 'id_parent');
}
À partir de la version 0.1.8 le plugin traite l’objet produit et affiche la hiérarchie des rubriques parentes d’un produit.
Styles
Le fil d’Ariane ainsi construit porte par défaut la class « fil_ariane ». Le plugin ajoute une petite feuille de style fil_ariane.css permettant de styler les éléments. L’intégrateur pourra facilement surchargerr ces styles dans ses propres feuilles de style.
Évolutions
On peut imaginer de pouvoir préciser le « contenant » du fil d’Ariane : par défaut il s’agit d’un bloc div portant la class « fil_ariane », contenant lui même une suite de liens ; mais cela pourrait très bien être un bloc de liste <ul>
avec des éléments de liste <li>
.
On pourrait aussi préciser la classe CSS du contenant : par défaut il s’agit de class=« fil_ariane », mais ça pourrait être aussi class=« hierarchie ».
À partir de la version 0.1.9 le conteneur du fil d’Ariane comporte par défaut les classes CSS « fil_ariane », « hierarchie », et « breadcrub » [5]. Il est possible de modifier ces classes dans la constante _FIL_ARIANE_STYLE
. Par défaut le fil d’Ariane est contenu par un <div class="fil_ariane hierarchie breadcrumb">
On pourrait enfin préciser le caractère de séparation entre les éléments du fil ; par défaut il s’agit du caractère « > » mais ça pourrait aussi très bien être un « | », ou même une imagette.
À partir de la version 0.1.9 on peut préciser le caractère séparateur (par défaut " > ") dans la constante _FIL_ARIANE_SEP
. De plus, ce séparateur est contenu par un élément pourvu des classes CSS « sep » et « divider » ; par défaut le séparateur est <span class="sep divider"> > </span>
.
On pourrait aussi mettre dans les options du site, si l’on souhaite ou non un lien sur le dernier élément du fil (par défaut il y en a un).
fait à partir de la version 0.1.7
Notes
L’objectif de ce plugin est de rendre le plus automatique possible la création d’un fil d’Ariane. Au pire si le plugin n’est capable de rien trouver (pas appelé dans une boucle, aucun paramètre passé, etc.) il affichera quand même a minima la racine du site avec un lien.
Discussions par date d’activité
7 discussions
Bonjour,
Est-ce qu’une mise à jour du Fil d’Ariane est prévue pour Spip 3.2.8 ? Merci, bien cordialement, Thierry
Répondre à ce message
Bonjour
Intéressé par ce plugin, je souhaiterais savoir si il peut répondre à un besoin spécifique :
N’afficher que la rubrique parent de l’article où sera appelé #FIL_ARIANE
Est-ce possible ?
Bonjour
En fait il suffirait de plutot utiliser la balise
#INFO_TITRE{rubrique,#ID_rubrique}
Pas la peine de complexifier ce plugin..
Répondre à ce message
Bonjour
merci pour ce plugin qui facilite l’écriture du fil d’ariane. En revanche, je n’ai pas compris comment appliqué mes class sur les liens... J’aimerais que accueil et les rubriques s’affichent en utilisant la class=« lienmenu ». J’ai essayé de modifier le fichier fil_ariane_fonctions.php... en vain
En revanche, j’ai réussi à mettre la class que je voulais sur le dernier terme de ce fil.
Cordialement
Christophe
Répondre à ce message
Coucou, Cyril et Mathieu
Comment fait on pour intégrer une chaine de langue dans l’array pour les type page speciale.
ce code ne marche pas
Merci
Je me répond au cas où ca puisse servir à d’autres, enfin Kent1 me souffle la réponse :-)
Répondre à ce message
Bonjour,
Un élément de documentation supplémentaire ou du moins un exemple d’utilisation du plugin.
Si vous êtes amenés comme moi à utiliser fil d’ariane avec spipr-dist (ce n’est qu’un exemple) où vous avez un inclure qui gère le fil d’ariane (au sens propre à SPIP), il vous faut passer le nom de l’objet et l’id_objet de cette façon :
#FIL_ARIANE{#GET{objet},#GET{id_objet}}
Soit un code au complet :
Répondre à ce message
Il serait intéressant de bien mettre en valeur dans l’article les avantages par rapport à la boucle hierarchie, déjà prévue pour cela, et implémentée dans la dist.
Bref de vendre le produit :-)
En effet c’est un peu flou et la simplicité présenté au début est contre-balancée par la masse de paramètres à bidouiller dans le fichier « mes fonctions »
Or, un plugin, c’est surtout fait pour ne pas mettre les mains dans le camboui et ajouter/gérer les options de manière graphique.
Bonne journée
Merci pour ce commentaire.
La balise #FIL_ARIANE n’est pas à vendre ! En revanche, elle est donnée de bon coeur.
A l’usage, écrire
#FIL_ARIANE
dans un squelette me semble plus facile que son équivalent en code SPIP :Il n’y a rien d’indispensable à régler dans
mes_options
, seulement des « options » : avec/sans « Accueil » en premier élément (avec par défaut), et avec/sans lien sur le dernier élément (sans par défaut).De plus le plugin est facilement adaptable pour tout nouvel objet éditorial disposant d’une hiérarchie, tel que par exemple l’objet produit. Et là, oui, il faut mettre (un tout petit peu) les mains dans le camboui et ajouter une fonction qui gère le nouvel objet.
Bonne utilisation !
Je ne comprends toujours pas.
Le code SPIP pour le fil d’Ariane est écrit automatiquement, nous n’avons pas à l’écrire manuellement. Alors où est l’intérêt d’installer un plug-in pour « simplifier » quelque chose d’automatique dont nous n’avons déjà pas à nous occuper et qui fonctionne parfaitement bien comme ça ? Autre que pour une question purement esthétique, je ne vois pas.
Je crois que c’est ce dont jfd parle.
Bonjour,
Effectivement, il y a déjà du code SPIP qui génère une hiérarchie, dans les différent squelettes distribués (la « dist »). En revanche pour l’écriture de squelettes sur mesure, j’ai trouvé plus facile (sans parler d’esthétique) d’utiliser une balise automatique, plutôt que de recopier le code de la dist.
Les développeurs de squelettes ont à leur disposition deux solutions (balise #FIL_ARIANE ou recopie de 4 lignes de code qui font la même chose) qu’ils peuvent utiliser librement selon leurs besoins ou leurs envies.
Répondre à ce message
Merci Rastapopoulos pour la relecture, les corrections et les améliorations :-)
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |