SPIP-Contrib

SPIP-Contrib

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

290 Plugins, 198 contribs sur SPIP-Zone, 62 visiteurs en ce moment

Accueil > Navigation > Chemin de navigation > Chemin de navigation en fichier à INCLURE

Chemin de navigation en fichier à INCLURE

23 janvier 2006 – par cy_altern – commentaires

4 votes

Basée sur les contribs Chemin de navigation et Afficher le Chemin de navigation, cette contrib propose une solution sous forme d’un fichier à INCLURE dans les pages articles, breves ou rubriques pour avoir un chemin de navigation du style Sommaire >> Partie >> sous-partie >> ...

Remarque : cette contrib est le produit d’un stage de formation à la création de boucles et plus précisément à leur intégration en fichier externe. Les explications sont reproduites ’in-extenso’ même si cela alourdit l’article, l’idée c’est qu’elle puisse aussi servir de tutoriel (?).
(Pour les lecteurs pressés, voir la fin de la partie 2 pour récupérer le zip contenant inc-chemin.php3 et inc-chemin.html)

1) La synthèse de l’existant :

En mélangeant les différentes boucles proposées dans les commentaires on pourrait synthétiser le tout avec cette boucle :

La subtilité c’est d’adapter la définition de BOUCLE_rubrique_hierarchie en fonction du type de page qui contient cette boucle :
-  si c’est un article le paramètre sera id_article
-  si c’est une rubrique, ce sera id_rubrique
-  pour les brèves, on triche un peu (puisque HIERARCHIE ne peut utiliser id_breve) mais ça fonctionne en utilisant id_article (j’imagine que <BOUCLE_chemin(HIERARCHIE){id_article} sort un chemin correspondant à un article stocké dans la rubrique explorée ???)

Quoiqu'il en soit, ces 2 boucles appliquées aux pages rubriques, brèves et articles permettent d'avoir le résultat suivant (on suppose par exemple l'arborescence suivante /partie1/partie1.1/partie1.1.1/ pour l'article id=25) :
- sur la page de la rubrique de la partie1.1.1 (rubrique.php3?id_rubrique=7) on obtient :

Nom_site_SPIP >> partie1 >> partie1.1

-  sur la page de l’article 25 (article.php3 ?id_article=25) on obtient :

Nom_site_SPIP >> partie1 >> partie1.1 >> partie1.1.1

La logique de l’affichage est donc respectée : le chemin indiqué correspond bien toujours exactement au chemin de la rubrique parent de la page affichée :)

Mais si l’on souhaite au contraire que sur la page de la rubrique1.1.1 il soit affiché :
Nom_site_SPIP >> partie1 >> partie1.1 >> partie1.1.1
(même si ce n’est pas la logique courante au niveau du chemin affiché, chacun fait ce qu’il lui plait :) alors on utilise id_article dans les pages rubriques (on profite donc du même genre « d’effet de bord » que pour les brèves)

2) L’optimisation proposée : une seule boucle valide pour les 3 types de pages (articles, rubriques, breves)

la démo de cette version est visible ici :
http://www.aix-mrs.iufm.fr/formatio...

L’idée c’est, bien-sûr, d’arriver à fabriquer la paire de fichiers inc-chemin.html + inc-chemin.php3 que l’on pourrait INCLURE dans le squelette des pages article.html, rubrique.html et breve.html ce qui facilitera grandement la maintenance, l’habillage et les évolutions du code de cette boucle

Il suffit donc de créer 3 boucles sur le modèle de la boucle élémentaire vue dans le 1) et de les imbriquer selon le schéma suivant :

On obtient donc un résultat valide quelque soit le type de page dans laquelle va « tourner » cette boucle :
-  si c’est une breve (breve.php3 ?id_breve=2) la boucle [code boucle elementaire 1]id_article retourne le chemin du secteur qui contient la breve, les 2 autres boucles ne s’éxecutent pas donc résultat du style :

Nom_site_SPIP >> partie1

-  si c’est un article (article.php3 ?id_article=25) la boucle BREVES initiale échoue, la boucle ARTICLES qui suit est éxécutée, la boucle RUBRIQUES n’est pas appellée ; on récupère donc le chemin de la rubrique qui stocke l’article :

Nom_site_SPIP >> partie1 >> partie1.1 >> partie1.1.1

-  si c’est une rubrique (rubrique.php3 ?id_rubrique=7), les 2 premières boucles échouent, la boucle RUBRIQUES retourne alors le chemin de sa rubrique parent, ce qui donne :

Nom_site_SPIP >> partie1 >> partie1.1

Pour rendre le truc encore plus facilement configurable on va le doter d’une feuille de style simple mais efficace (qui pourra/devra être intégrée à la feuille de style du squelette), ce qui peut donner un code total du style :

chemin_site.zip
fichiers inc-chemin.php3 et inc-chemin.html pour INCLURE dans vos squelettes

Utilisation :

A priori, dans les pages article.html, rubrique.html et breve.html, le plus simple est d’afficher le chemin juste avant le contenu principal de la page. Ce qui sur une 1.8.2 standard donne :


-  remarquez que le fait de passer les 3 paramètres id_article id_breve id_rubrique à INCLURE permet de le rendre fonctionnel quelque soit le type de page de squelette dans laquelle il est appellé.

3) To do :

-  modification de la boucle élémentaire pour que le dernier élément (la rubrique qui contient la page en cours) puisse avoir un style particulier

4) Prospective : « Mortimérisation » de cette contrib : utilisation d’une balise #POSE

Cette contrib est également proposée comme un exemple de mise en pratique des concepts développés dans la contrib de Mortimer et noé de naama (numéro 817)

Vu le caractère expérimental de cette partie, vous la trouverez sur le spikini de spip-contrib : http://www.spip-contrib.net/spikini... [1]

Le fichier xml correspondant à cet exemple

Notes

[1note spip contrib : déplacé depuis ici

Dernière modification de cette page le 21 mai 2007

Retour en haut de la page

Vos commentaires

  • Le 8 août 2006 à 16:46, par fulvio En réponse à : Chemin de navigation en fichier à INCLURE

    merci et avec les modifs de roland sur la 1.9 ca fonctionne parfaitement.
    J’indique juste que sur les rubriques qui ne contiennent pas d’articles, le chemin ne s’affiche pas, il suffit d’ajouter tout aux boucles principales

    Répondre à ce message

  • Le 9 juillet 2006 à 18:44, par Roland En réponse à : Chemin de navigation en fichier à INCLURE

    J’ai adapté la contrib ’Chemin de navigation en fichier à INCLURE’ pour spip 1.9 sans aucune difficulté malgré mon faible niveau en programmation.

    la ligne d’appel est maintenant
    <INCLURE{fond=inc/inc-chemin} {id_article} {id_breve} {id_rubrique}>
    (Note : mes fichiers à inclure sont dans le sous-dossier inc/ du dossier des squelettes)

    Les lignes de définition des boucles sont maintenant :

    Pour les brèves :

            <BOUCLE_rubrique_hierarchie_breve(BREVES){id_breve=#ENV{id_breve}}>

    Pour les articles :

                    <BOUCLE_rubrique_hierarchie_article(ARTICLES){id_article=#ENV{id_article}}>

    Pour les rubriques :

                            <BOUCLE_rubrique_hierarchie(RUBRIQUES){id_rubrique=#ENV{id_rubrique}}>

    Je signale aussi un petit oubli dans la définition de style .chemin a:visited : il manque le ; final.

    Répondre à ce message

  • Le 18 mai 2006 à 11:04, par lio En réponse à : Chemin de navigation en fichier à INCLURE

    Ca marche niquel merci

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?
  • [Se connecter]

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

  • Convertir un site SPIP 3 en utf-8 avec le plugin Grenier

    8 janvier 2014 – 23 commentaires

    SPIP 3 fonctionne nativement avec l’encodage universel unicode utf-8. Sur certains sites (par exemple sur une mise à jour), on peut avoir un site qui est resté en iso-latin ce qui n’est pas conseillé (source de bugs, d’incompatibilité, ...) . (...)

  • ScolaSPIP 4

    19 janvier 2016 – 360 commentaires

    ScolaSPIP est plugin-squelette responsive personnalisable pour sites Web d’établissements scolaires basé sur SPIPr Présentation de ScolaSPIP Ce plugin pour SPIP 3 est développé par la Dane de l’académie de Versailles pour les webmestres de cette (...)

  • SPIP 3.2, Agenda et FullCalendar

    6 juin – 10 commentaires

    Nous avions publié un article sur la manière d’utiliser FullCalendar avec SPIP 3.0 afin d’afficher des évènements sous forme d’Agenda. La version de FullCalendar a changé avec SPIP 3.2. Le présent article est donc un tutoriel adapté à SPIP 3.2. Pour (...)

  • Mailsubscribers

    16 janvier 2013 – 408 commentaires

    Ce plugin permet de gérer les inscriptions (ou abonnements) à la diffusion de contenu par email. Mailsubscribers permet de gérer les inscriptions par Opt-in simple ou double et la désinscription par URL. Ce plugin gère également plusieurs listes de (...)

  • Nouvelle version - Modération de modifications

    29 janvier 2012 – 49 commentaires

    Suite à une migration depuis SPIP-Agora, j’ai développé ce plugin permettant de reprendre la fonctionnalité « Nouvelle version » inexistente sur SPIP2 ni sur SPIP3 Ce plugin permet d’étendre le work-flow de -rédaction-publication d’un article au cas d’un (...)