SPIP-Contrib

SPIP-Contrib

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

289 Plugins, 197 contribs sur SPIP-Zone, 84 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 ?

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

  • Sauvegarder le répertoire IMG/ avec wget

    20 février 2007 – 10 commentaires

    Voici un système client serveur en deux lignes pour sauvegarder le répertoire des documents.

  • Rôles de documents

    21 février – commentaires

    Ce plugin permet d’attribuer un rôle aux documents liés aux contenus, et cerise sur le gâteau, rend possible la gestion des logos par le biais des documents-joints. Principe Les documents liés aux contenus n’ont pas forcément tous la même (...)

  • COLT : Extension de Firefox utile pour SPIP

    21 septembre 2008 – commentaires

    Une petite extension de Firefox qui permet de copier des liens sous format SPIP

  • Moulinette

    17 juillet 2015 – 46 commentaires

    Un squelette qui monte et qui descend ! Moulinette est un squelette basé sur le thème Grayscale (documentation) pour Bootstrap 3. Le type de site attendu est un site en une seule page : une rubrique avec quelques articles, des titres courts, des (...)

  • Plugin Duplicator

    3 janvier 2010 – 88 commentaires

    Duplication de rubrique et de ses contenus, et duplication d’articles pour SPIP Fonctionnement Ce plugin permet de dupliquer une rubrique et son contenu depuis l’espace privé en ajoutant un bouton dans la navigation de gauche dans l’espace privé (...)