SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 246 visiteurs en ce moment

Accueil > Navigation > Chemin de navigation > Plugin « Fil d’Ariane » > Plugin Fil d’Ariane

Plugin Fil d’Ariane

5 décembre 2012 – par Cyril Marion, Matthieu Marcillaud – 10 commentaires

7 votes

Ce plugin est destiné à faciliter la création du petit menu de navigation, communément appelé « fil d’Ariane » et permettant de situer un objet éditorial dans un site SPIP.

Il s’emploie dans les squelettes et évite de faire des boucles compliquées pour parvenir à créer un fil d’Ariane uniforme pour tout un site. L’idée est de déporter toute la complexité dans le plugin !

L’intégrateur appelle juste une balise #FIL_ARIANE dans son squelette, et le plugin se charge de récupérer le type d’objet et son identifiant, à partir du contexte, et de créer un magnifique fil d’Ariane sans avoir eu à écrire une seule ligne de code !

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] :

  1. <div id="hierarchie"><a href="#URL_SITE_SPIP/"><:accueil_site:></a><BOUCLE_ariane(HIERARCHIE){id_article}> &gt; <a href="#URL_RUBRIQUE">[(#TITRE|couper{80})]</a></BOUCLE_ariane>[ &gt; <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 :

  1. #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 :

  1. [(#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 :

  1. <?php
  2. define('_FIL_ARIANE_ACCUEIL',false);
  3. ?>

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 :

  1. <?php
  2. define('_FIL_ARIANE_LIEN',true);
  3. ?>

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 "&gt;" 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 :

  1. function fil_ariane_organisation_dist($id_organisation) {
  2. return fil_ariane_hierarchie_objet('organisation', $id_organisation, 'nom', 'id_parent');
  3. }

À 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 " &gt ") 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"> &gt; </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.

Voir en ligne : http://plugins.spip.net/fil_ariane

Notes

[1issu de la dist de SPIP 2.1

[2tout en ajoutant des styles complémentaires sur le séparateur et sur le contenant du fil

[3Voir le plugin Contacts & Organisations

[4en date du 19/9/2012

[5pour bootsrtap

Dernière modification de cette page le 25 juin 2015

Retour en haut de la page

Vos commentaires

  • Le 11 février à 17:00, par obiwanriko En réponse à : Plugin Fil d’Ariane

    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 ?

    Répondre à ce message

  • Le 8 août 2014 à 17:58, par Christophe Noisette En réponse à : Plugin Fil d’Ariane

    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

  • Le 9 juillet 2014 à 15:31, par Alexandra En réponse à : Plugin Fil d’Ariane

    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

    [(#FIL_ARIANE{[(#ARRAY{'<:plan_site:>',#URL_PAGE{plan}})]})]

    Merci

    • Le 9 juillet 2014 à 17:46, par Alexandra En réponse à : Plugin Fil d’Ariane

      Je me répond au cas où ca puisse servir à d’autres, enfin Kent1 me souffle la réponse :-)

      [(#FIL_ARIANE{[(#ARRAY{[(#VAL{diplonet:plan_site}|_T)],#URL_PAGE{plan}})]})]

    Répondre à ce message

  • Le 12 mars 2013 à 16:32, par Teddy Payet En réponse à : Plugin « Fil d’Ariane »

    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 :

            #SET{objet,''}#SET{id_objet,''}

            [(#ENV{id_rubrique}|oui)#SET{objet,rubrique}#SET{id_objet,#ENV{id_rubrique}}]
            [(#ENV{id_syndic}|oui)#SET{objet,site}#SET{id_objet,#ENV{id_syndic}}]
            [(#ENV{id_breve}|oui)#SET{objet,breve}#SET{id_objet,#ENV{id_breve}}]
            [(#ENV{id_article}|oui)#SET{objet,article}#SET{id_objet,#ENV{id_article}}]
            [(#ENV{id_objet}|oui)#SET{objet,#ENV{objet}}#SET{id_objet,#ENV{id_objet}}]

            [(#GET{objet}|oui)
       #FIL_ARIANE{#GET{objet},#GET{id_objet}}
            ][(#GET{objet}|non)
            <li><a href="#URL_SITE_SPIP/"><:accueil_site:></a><span class="divider"> &gt; </span></li>
            ]

    Répondre à ce message

  • Le 5 décembre 2012 à 13:27, par jfd En réponse à : Plugin « Fil d’Ariane »

    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

    • Le 5 décembre 2012 à 15:16, par Cyril Marion En réponse à : Plugin « Fil d’Ariane »

      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 :

      <p id="hierarchie"><a href="#URL_SITE_SPIP/"><:accueil_site:></a><BOUCLE_ariane(HIERARCHIE){id_article}> &gt; <a href="#URL_RUBRIQUE">[(#TITRE|couper{80})]</a></BOUCLE_ariane>[ &gt; <strong class="on">(#TITRE|couper{80})</strong>]</p>

      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 !

    • Le 24 décembre 2012 à 16:44, par Hirondelline En réponse à : Plugin « Fil d’Ariane »

      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.

    • Le 2 janvier 2013 à 15:02, par Cyril Marion En réponse à : Plugin « Fil d’Ariane »

      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

  • Le 5 décembre 2012 à 13:12, par Cyril Marion En réponse à : Plugin « Fil d’Ariane »

    Merci Rastapopoulos pour la relecture, les corrections et les améliorations :-)

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Metas +

    3 décembre – commentaires

    Améliorez l’indexation de vos articles dans les moteurs et leur affichage sur les réseaux sociaux grâce aux métadonnées Dublin Core, Open Graph et Twitter Card. Installation Activer le plugin dans le menu dédié. Dans le panel de configuration, (...)

  • Critère {mots}

    6 août 2009 – 316 commentaires

    Permettre de sélectionner facilement des objets SPIP ayant un ou des mots clefs en communs.

  • LinkCheck : vérificateur de liens

    13 février 2015 – 64 commentaires

    Ce plugin permet de chercher et tester l’ensemble des liens présents dans les objets. Vous pourrez donc en quelques clics connaître les liens brisés ou défectueux qui se sont immiscés dans le contenu de votre site SPIP. La vérification s’effectue en (...)

  • Import ICS 2 (agenda distant)

    2 août – 39 commentaires

    La version 2 du plugin « import ICS » en reprend la principale fonctionnalité, à savoir l’ajout automatique d’évènements distants dans la liste des évènements d’un site. À la différence de la première version, elle ne dépend pas du plugin « Séminaire » et est (...)

  • GIS 4

    11 août 2012 – 1286 commentaires

    Présentation et nouveautés La version 4 de GIS abandonne la libraire Mapstraction au profit de Leaflet. Cette librairie permet de s’affranchir des librairies propriétaires tout en gardant les mêmes fonctionnalités, elle propose même de nouvelles (...)