Ne pas afficher certains éléments dans les boucles

Une petite astuce sympa qui vous permet de cacher de vos boucles certaines rubriques, articles ou brèves du site.

Introduction

Vous pouvez avoir besoin de cacher une rubrique dans une boucle de rubriques, par exemple pour afficher un menu simplifié en page d’accueil.

Vous pouvez aussi avoir besoin de faire un petite boucle « Vous aimez » qui contient les articles les plus visités (par popularité). Évidemment, si vous avez un article « Nous contacter », ce n’est pas très utile qu’il apparaisse ici !

Vous pouvez aussi gérer une brève de page d’accueil, qui n’a pas besoin d’apparaître ailleurs sur le site.

Ou alors vous avez simplement envie de masquer des résultats de recherche ?

Et bien, vous allez voir, grâce aux mot-clés, c’est... facile !

Les mot-clés

Dans un groupe de votre choix (j’ai fait un groupe « Administratif » qui contient mes mot-clés de gestion du site)

créez un mot clé que vous appellerez « Invisible » :

Associez ce groupe de mot-clés aux article, brèves et rubriques. Enfin là où vous aurez besoin de masquer des informations de vos boucles.

Un menu simplifié

Soit dans votre squelette une boucle qui affiche la liste des rubriques racines de votre site :

<BOUCLE_menu_rubrique (RUBRIQUES) {racine} {par titre}>
  <a href="#URL_RUBRIQUE">#TITRE</a><br>
</BOUCLE_menu_rubrique>

Si vous souhaitez faire disparaître les éléments qui possèdent le mot-clé « Invisible » il faut d’abord les sélectionner, ne rien afficher, puis sélectionner toutes les rubriques qui n’ont pas déjà été sélectionnées, grâce au critère « doublons » à mettre dans les deux boucles.

<BOUCLE_menu_rubrique_invisible(RUBRIQUES) {racine} {titre_mot = Invisible} {doublons}>
</BOUCLE_menu_rubrique_invisible>

<BOUCLE_menu_rubrique(RUBRIQUES) {racine} {par titre} {doublons}>
  <a href="#URL_RUBRIQUE">#TITRE</a><br>
</BOUCLE_menu_rubrique>

Un article masqué d’une rubrique

Imaginez un article « Nous contacter ». Vous ne voulez pas le voir apparaître dans la liste des articles d’une rubrique, puisque vous avez un lien dessus directement dans vos pages HTML

Pour enlever un article d’un boucle d’articles récents d’une rubrique :

<BOUCLE_articles_invisibles (ARTICLES) {id_rubrique} {titre_mot=Invisible} {doublons}>
</BOUCLE_articles_invisibles>

<BOUCLE_articles_recents (ARTICLES) {id_rubrique} {par date} {inverse} {doublons}>
  <a href="#URL_ARTICLE">#TITRE</a>
  [Le (#DATE|nom_jour)] [(#DATE|affdate)] 
  <br>
</BOUCLE_articles_recents>

Un article masqué dans le moteur de recherche

Même chose, commencez par sélectionner les articles avec ce mot-clé sans les afficher, et sélectionnez ensuite les articles différents de ceux déjà sélectionnés auparavant.

<BOUCLE_articles_invisibles(ARTICLES) {recherche} {titre_mot=Invisible} {doublons}>
</BOUCLE_articles_invisibles>

<BOUCLE_articles(ARTICLES) {recherche} {par points} {inverse} {0,10} {doublons}>
  <h2><a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a></h2>
  <div class="detail">
  [(#DATE|nom_jour)] [(#DATE|affdate)]
  <B_auteurs_articles><:par_auteur:> <BOUCLE_auteurs_articles(AUTEURS) {id_article} {", "}>#NOM</BOUCLE_auteurs_articles>
  </div>
  <br>
</BOUCLE_articles>

Un top 5 des articles les plus visités

<BOUCLE_invisible (ARTICLES) {tout} {titre_mot=Invisible} {doublons}>
</BOUCLE_invisible>

<BOUCLE_top5 (ARTICLES) {tout} {par popularite} {inverse} {0,5} {doublons}>
  <A href="#URL_ARTICLE">#TITRE</A><br>
</BOUCLE_top5>

Mise en garde avec les doublons

Le critère doublons est associé au squelette tout entier.

Autrement dit, si vous souhaitez l’utiliser autre part dans votre page, créez des squelettes inclus. Avec cette méthode la portée du critère doublons se contentera du squelette courant uniquement, et pas des squelettes appelants ni des squelettes appelés.

Conclusion

Notez bien que ce mot-clé appelé « Invisible » n’indique pas à SPIP de cacher l’élément. C’est simplement VOUS qui l’écartez dans vos squelettes. Vous pouvez toujours avoir des boucles qui référencent cet élément.

Discussion

9 discussions

  • Bonjour,

    Je suis parvenu à rendre invisible une rubrique mais je n’arrive pas à le faire pour une sous-rubrique. Est-ce lié aux doublons ?
    Quel code dois-je taper ?

    Merci d’avance

    Répondre à ce message

  • Bonjour
    J’utulise la manipe ci dessus pour exclure les articles qui n’en sont pas
    Néanmoins, j’ai une difficulté
    Le squelette que j’utilise distinuque les rurbiques « avec une seul article » (pour faire un lien directement dessus) et les rurbiques a plusieurs articles (pour les lister). Mais les articles « invisibles » sont quand meme comptés, de sorte que je mle retrouve avec des rurbiques a 1 seul article. Comment faire ?
    Merci
    Agnes

    Répondre à ce message

  • Bonjour,
    je suis dans le brouillard, c’est normal, je ne maitrise pas le html, j’utilise le squelette de "minimal-spip, et je voudrais introduire la notion de « cacher » ou « invisible », j’ai bien lu les explications et je ne m’en sort pas, quelqu’un pourrait-il m’expliquer de façon naïve comment procéder (quel fichier ouvrir avec notepad++, et de quelle façon le modifier)
    merci

    Répondre à ce message

  • 2

    oui..mais..comment faire en sorte que le mot-clé excluant certaines rubriques, articles, etc..n’apparaisse pas dans la liste des mot-clés associés à la page ??
    je suis clair ??

    je pourrais dire : le mot-clé xxx sert à exclure la rubrique1, à laquelle sont associés les mot-clés xxx, yyy, zzz, et je voudrais que n’apparaissent comme mot-clés associés QUE les mot-clés yyy et zzz
     ????

    • Exactement sur le même principe !

      Tu as une boucle qui affiche la liste des mot-clés ?

      Du genre :

      <BOUCLE_motcles (MOTS) {id_article}>
        #TITRE<br>
      </BOUCLE_motcles>

      Tu ajoutes une boucle vide qui sélectionne le mot-clé Invisible, puis tu affiches le reste :

      <BOUCLE_invisible (MOTS) {titre_mot=Invisible} {doublons}>
      </BOUCLE_invisible>
      <BOUCLE_motcles (MOTS) {id_article} {doublons}>
        #TITRE<br>
      </BOUCLE_motcles>

      Le tour est joué !

    • Olivier

      bonjour,

      comment peut-on faire pour rendre invisible d’autres mots clés ?

      1) peut-on rajouter d’autres mots clés par ex/ a la suite de Invisible dans titre_mot=Invisible et comment ?

      2) ou faut-il a chaque fois faire une boucle vide par nouveau mot cle ?

      3) et si on cree un groupe de mots, y a t il une possibilité de rendre invisible les mots au niveau du groupe ?

      bref, je cherche a utiliser cette astuce (bien utile) a grande echelle.

      j’suis debutant en info et en spip ;) merci d’av

    Répondre à ce message

  • Lulubel

    Mise en garde avec les doublons : Le critère doublons est associé au squelette tout entier. Autrement dit, si vous souhaitez l’utiliser autre part dans votre page, créez des squelettes inclus. Avec cette méthode la portée du critère doublons se contentera du squelette courant uniquement, et pas des squelettes appelants ni des squelettes appelés.

    Une remarque pour spip 1.8 :

    A partir de [SPIP 1.8], on peut avoir plusieurs critères {doublons} indépendants. les boucles ayant {doublons rouge} n’auront aucune incidence sur les boucles ayant {doublons bleu} comme critère.

    Répondre à ce message

  • 1

    bonjour,
    vous savez, hier je m’acharner à trouver une astuce pour écarter quelques rubriques dans l’affichage. j’ai utilisé un groupe de mot clè, mais je l’ai mal exploité. J’essayais plutôt de mettre une boucle du genre id_groupe !==^(6)$ mais ça ne marchait pas.
    Merci pour l’astuce, c’est basique mais très efficace.
    bonne journée.

    • Lulubel

      J’essayais plutôt de mettre une boucle du genre id_groupe !==^(6)$ mais ça ne marchait pas.

      pour les expressions régulières, ce sont des crochets et pas des parenthèses : id_groupe !==^[6]$

    Répondre à ce message

  • Slt,

    Heu, une petite question : si je souhaite faire disparaître les éléments qui possèdent non pas un seul mais DEUX mots-clés (voir plusieurs) : « Invisible1 » et « Invisible2 » , comment fait-on SVP ?

    MERCI !

    Répondre à ce message

  • merci pour l’astuce, impéccable !!!!
    je bosse sur des variantes...

    Répondre à ce message

  • Fonctionne impeccable et répond à un véritable besoin !

    Merci
    A+

    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 :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

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.

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

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom