SPIP-Contrib

SPIP-Contrib

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

273 Plugins, 191 contribs sur SPIP-Zone, 57 visiteurs en ce moment

Accueil du site > Squelettes > Outils pour squelettes > Squelettes selon contexte > Afficher les articles en entier ou en résumé selon leur nombre dans une (...)

Afficher les articles en entier ou en résumé selon leur nombre dans une rubrique

22 octobre 2006 – <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

3 votes

Selon le contenu de rubrique, afficher les articles dans leurs intégralités (si 1 seul article dans la rubrique) ou leurs résumés (si plusieurs articles).

Cette boucle peut être donc pratique pour réaliser le squelette d’un site contenant beaucoup de sous-rubriques pas forcément très fournies.

SPIP n’affiche que les rubriques qui contiennent au moins un élément publié (soit un article, un site référencé ou une brève). Sur certains sites, il existe beaucoup de rubriques avec seul article. Cela ajoute beaucoup de clics à la navigation car il faut selectionner la rubrique puis l’article pour le visionner.

Une solution est de faire un affichage « alternatif » :
-  la rubrique ne contient qu’un seul article, on l’affiche en entier
-  la rubrique contient plus d’un article, on affiche une introduction avec le lien

Ce qui donne en code

Page rubrique.html

A l’intérieur de la boucle générale

<!-- rubrique: lister articles -->[(#REM)
 a t'on plus d'un article ds rubrique ?
 - si oui, on affiche l'article en entier
 - si non, on affiche les resumes
]<BOUCLE_plusUnArtDsRub(ARTICLES){id_rubrique}{par date}{1,n}>  </BOUCLE_plusUnArtDsRub>
    <BOUCLE_art_rub(ARTICLES){id_rubrique}{par date}{inverse}>
          <INCLURE{fond=inc/inc_article_resume}{id_article}>            
    </BOUCLE_art_rub>
</B_plusUnArtDsRub>
    <BOUCLE_artSeul(ARTICLES){id_rubrique}>
           <INCLURE{fond=inc/inc_article_entier}{id_article}>            
    </BOUCLE_artSeul>
<//B_plusUnArtDsRub>

Page inc/inc_article_resume.html

Code pour afficher les articles en « résumé » : on utilise #INTRODUCTION et on fait lien sur l’article complet avec #URL_ARTICLE

<BOUCLE_trouveArt(ARTICLES){id_article}>[<div class="surtitre">(#SURTITRE)</div>][
            <h2><a href="#URL_ARTICLE">(#TITRE|supprimer_numero)</a> </h2>][
             <div class="soustitre">(#SOUSTITRE)</div>]
             [(#INTRODUCTION)]              
             <a href="#URL_ARTICLE" class="suite"><:lire_article_seul:></a>              
</BOUCLE_trouveArt>

Page inc/inc_article_entier.html

Code pour afficher l’article en entier (pour simplifier il n’y a pas les documents, forums, pétitions liés à cet article)

<BOUCLE_trouveArt(ARTICLES){id_article}>        [<div class="surtitre">(#SURTITRE)</div>]      
       [<h1>(#TITRE|supprimer_numero)</h1>][
       <div class="soustitre">(#SOUSTITRE)</div>]
     
        [(#LOGO_ARTICLE|left||reduire_image{120,120})][
        <div class="chapo">(#CHAPO)</div>]        
        [(#TEXTE|opendocblank)][
        <div class="hypertxt"><strong>Lien hypertexte:</strong> <a href="#URL_SITE" class="spip_out">(#NOM_SITE)</a></div>]
        [<div class="ps">(#PS)</div>][
        <div class="note">(#NOTES)</div>]</BOUCLE_trouveArt>

Explication

-  la boucle <BOUCLE_plusUnArtDsRub> utilise le paramètre 1,n est une boucle test. Elle ne renvoie rien et sert uniquement à savoir si on posséde plus de 1 article dans la rubrique

on peut la résumer par :

<BOUCLE_plusUnArtDsRub(ARTICLES){id_rubrique}{par date}{1,n}>  </BOUCLE_plusUnArtDsRub>
1 article</B_plusUnArtDsRub>
Plus de 1 article<//B_plusUnArtDsRub>

Référence : Syntaxe des boucles

-  Ensuite dans chacune des branches, on va injecter le code pour afficher le prévisulisation de l’article ou l’article en entier en utilisant le INCLURE. Avec cette balise, il faut passer le chemin (l’endroit où l’on veut cherche le squelette) et les variables que l’on veut passer (ici la variable id_article

Ce qui donne : <INCLURE{fond=inc/inc_article_entier}{id_article}>

Référence : INCLURE d’autres squelettes

Compléments

A vous de compléter et de modifier les fichiers appelés par les INCLURE selon vos besoins avec les boucles documents, forums, pétitions, la pagination, ...

Alternative - Boucles similaires

Dans le même esprit et dans le cas de la réalisation d’un menu voir aussi Afficher directement l’article si la rubrique n’en a qu’un

Retour en haut de la page

Vos commentaires

  • Le 19 mai 2010 à 09:07, par thierry66ch En réponse à : Afficher les articles en entier ou en résumé selon leur nombre dans une rubrique

    Voici une adaptation qui gère la présence de sous-rubriques, et qui fonctionne également sous Spip 2.1 (curieusement le filtre 0,n génère une erreur de compilation) et adaptable aux squelettes Zpip.

    Le fichier du squelette normal des rubriques (rubrique.html) est à renommer en rubrique-normal.html. Ensuite recopiez le code ci-dessous dans le fichier rubrique.html. (Pour Zpip, il faut renommer le fichier contenu/rubrique.html en rubrique-normal.html, et placer le code ci-dessous dans contenu/rubrique.html).

    Fichier rubrique.html :

    1. <BOUCLE_contenu_rubrique(RUBRIQUES){id_rubrique}>
    2. [(#REM)
    3.  a-t-on des sous-rubriques ?
    4.  - si oui, affichage standard de la rubrique
    5.  - si non, on teste si il y a un seul article
    6. ]      
    7. <BOUCLE_testSousRub(RUBRIQUES) {id_parent}{0,1}> </BOUCLE_testSousRub>
    8. [(#REM) sous-rubriques existantes]
    9. #INCLURE{fond=contenu/rubrique-normal,id_rubrique}
    10. </B_testSousRub>
    11. [(#REM) pas de sous-rubriques
    12.  a t'on plus d'un article ds rubrique ?
    13.  - si oui, affichage standard de la rubrique
    14.  - si non, on affiche directement l'article unique avec son squelette standard
    15. ]
    16. <BOUCLE_plusUnArtDsRub(ARTICLES){id_rubrique}{par date}{1,1}>  </BOUCLE_plusUnArtDsRub>
    17. [(#REM) plusieurs articles]
    18. #INCLURE{fond=contenu/rubrique-normal,id_rubrique}
    19. </B_plusUnArtDsRub>
    20. [(#REM) article unique]
    21.     <BOUCLE_artSeul(ARTICLES){id_rubrique}>
    22.            <INCLURE{fond=contenu/article}{id_article}>            
    23.     </BOUCLE_artSeul>
    24. <//B_plusUnArtDsRub>
    25. <//B_testSousRub>
    26.        
    27. </BOUCLE_contenu_rubrique>

    Répondre à ce message

  • Le 11 mai 2009 à 22:05, par Cedric Morin En réponse à : Afficher les articles en entier ou en résumé selon leur nombre dans une rubrique

    Le Plugin Compositions pour SPIP 2.0 permet maintenant de gérer très facilement les variantes de squelettes en fonction des articles, rubriques etc ...

    Répondre à ce message

  • Le 11 novembre 2008 à 13:43, par ? En réponse à : Afficher les articles en entier (simplement s’il vous plaît)

    Bonjour à toutes et à tous,

    Excusez-moi de poser une question toute bête, mais je souhaiterais savoir comment faire pour afficher systématiquement tous les articles EN ENTIER (de façon à ce que l’on ne voit plus « suite »).
    C’est certainement plus simple qu’un affichage conditionnel, mais je suis très embêté, et je ne comprends pas grand chose aux boucles.

    Merci à toutes et à tous pour votre / vos réponse(s)

    Répondre à ce message

  • Le 6 juillet 2007 à 04:27, par ? En réponse à : Afficher les articles en entier ou en résumé selon leur nombre dans une rubrique

    Bonjour,

    Je suis pas une pro de SPIP encore... Je veux afficher en entier mes articles, je vois tout vos codes et je ne sais pas dans quel fichier les insérer ? Je travaille avec les squelettes d’alternative.

    Merci de votre aide,

    Catherine

    Répondre à ce message

  • Le 23 avril 2008 à 10:26, par thibault En réponse à : Afficher les articles en entier ou en résumé selon leur nombre dans une rubrique

    bonjour,
    je souhaite un affichage conditionnel de mon article, en état normal afficher la balise #INTRODUCTION et au survol de la souris la balise #TEXTE .
    existe-t-il une solution ?
    merci par avance

    Répondre à ce message

  • Le 2 novembre 2007 à 16:09, par stef En réponse à : Afficher les articles en entier ou en résumé selon leur nombre dans une rubrique

    cela ne marche que s’il n’y a pas de sous rubriques ....

    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

  • Zpip-dist en HTML5

    15 juin 2010 – 10 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Une surcharge des squelettes Zpip-dist qui tire parti des nouvelles balises offertes par la spécification HTML5. Attention, ce plugin n’est plus compatible avec les nouvelles versions de Zpip, qui a connu plusieurs incompatibilités de nomenclature (...)

  • Une licence pour un article

    18 avril 2007 – 25 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Sur une idée originale de erational, voici un plugin permettant de lier une licence à un article.

  • Plugin Parrainage

    6 novembre 2011 – <blink style='color:red;'>public|spip|ecrire:commentaire</blink>

    Permettre aux utilisateurs d’inviter leurs contacts à s’inscrire sur le site. Description Vous connaissez le web moderne et son cortège d’applis toujours en version « beta » et de buzz sur le dernier réseau à la mode ? Vous voulez vous aussi vous y (...)

  • Formulaire de contact libre

    27 avril 2011 – 36 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Dans SPIP il n’y a pas un formulaire de contact, mais autant de formulaires de contact que d’auteurs. Cette phrase de Romy, dans son article Une page de contact dans mon SPIP, pointe un petit manque de SPIP. La possibilité d’insérer rapidement un (...)

  • Plugin Mot de Passe Compliqué

    2 novembre 2007 – 16 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Ce plugin ajoute un testeur de complexité de mot de passes dans les formulaires de choix de mot de passe de SPIP.