SPIP - Contrib

[ar] [en] [es] [fr] [it]



Accueil du site > Documentation > Archives documentation > FAQ - Les questions fréquentes

Comment exclure des articles ?

jeudi 8 mai 2003, par Filifab, Richie. Dernier ajout jeudi 8 mai 2003



Vous pouvez souhaiter, pour quelque raison que ce soit, ne pas présenter certains articles dans votre page d’accueil ou vos entêtes de rubrique.

Deux moyens vous permettront d’y parvenir :
- En plaçant l’ensemble des articles à exclure dans une rubrique ou un secteur ;
- En affectant un mot-clé à chaque article à exclure.

Avantages & Inconvénients

- En regroupant les articles à exclure dans une même rubrique ou dans un même secteur, vous simplifierez la structure de vos boucles SPIP, mais vous devrez vous limiter à une seule rubrique ou un seul secteur pour y placer vos articles à exclure ;

- Le recours au mot-clé/groupe de mots-clés apporte une plus grande souplesse puisque les articles à exclure peuvent côtoyer les articles standards dans les différentes rubriques du site. En contrepartie, la construction des boucles SPIP sera plus délicate ; les exemples ci-dessous vous aideront à mieux comprendre les conditions de (bon) fonctionnement.

Exemples s’appuyant sur rubrique/secteur

Tous les articles, sauf ceux de la rubrique n°15
<B_rubout>
<h3>Tous les articles, sauf ceux de la rubrique '15'</h3>
<ol>
<BOUCLE_rubout(articles){id_rubrique!=15}{par id_rubrique}>
<li><b>#ID_ARTICLE</b> - #TITRE (secteur n°#ID_SECTEUR, rubrique n°#ID_RUBRIQUE)</li>
</BOUCLE_rubout>
</ol><hr>
</B_rubout>

Tous les articles, sauf ceux du secteur n°3
<B_sectout>
<h3>Tous les articles, sauf ceux du secteur '3'</h3>
<ol>
<BOUCLE_sectout(articles){id_secteur!=3}{par id_secteur}>
<li><b>#ID_ARTICLE</b> - #TITRE (secteur n°#ID_SECTEUR, rubrique n°#ID_RUBRIQUE)</li>
</BOUCLE_sectout>
</ol><hr>
</B_sectout>

Exemples s’appuyant sur mot-clé/groupe de mots-clés

On supposera que les articles à exclure sont tous associés au mot-clé ’invisible’, lequel mot-clé appartient au groupe de mots-clés ’Exclure’.

Si l’on se contente d’écrire :

Tous les articles, sauf ceux associés au mot-clé ’invisible’
<B_exclus>
<h3>Tous les articles, sauf ceux 'invisibles'</h3>
<ol>
<BOUCLE_exclus(articles){titre_mot=!invisible}{par id_article}>
<li><b>#ID_ARTICLE</b> - #TITRE (secteur n°#ID_SECTEUR, rubrique n°#ID_RUBRIQUE)</li>
</BOUCLE_exclus>
</ol><hr>
</B_exclus>

On n’obtiendra que les articles associés à un mot-clé différent de ’invisible’, et les articles sans mot-clé ne seront donc pas affichés !

Pour effectivement parvenir au résultat souhaité, il faut combiner deux boucles SPIP et s’appuyer sur le filtre {doublons} (merci, Fil) comme dans l’exemple ci-dessous.

Une première boucle liste les articles associés au mot-clé. Ce faisant, ils ne seront plus éligibles dans la seconde boucle grâce au filtre {doublons}... Et le tour est joué !

Tous les articles, sauf ceux associés au mot-clé ’invisible’
<B_exclus>
<!-- <h3>Les articles associés au mot-clé 'invisible'</h3>
<ol> -->
<BOUCLE_exclus(articles){titre_mot=invisible}{doublons}{par id_article}>
<!-- <li><b>#ID_ARTICLE</b> - #TITRE (secteur n°#ID_SECTEUR, rubrique n°#ID_RUBRIQUE)</li> -->
</BOUCLE_exclus>
<!-- </ol><hr> -->
</B_exclus>

<B_show>
<h3>Tous les articles, sauf 'invisibles'</h3>
<ul>
<BOUCLE_show(articles){tout}{doublons}{par id_article}>
<li><b>#ID_ARTICLE</b> - #TITRE (secteur n°#ID_SECTEUR, rubrique n°#ID_RUBRIQUE)</li>
</BOUCLE_show>
</ul><hr>
</B_show>

NOTA BENE : pour exclure les articles associés au groupe de mots-clés ’Exclure’, il vous suffit de reprendre l’exemple ci-dessus et remplacer le filtre {titre_mot=invisible} par {type_mot=Exclure}


Répondre à cet article

  • Comment exclure des articles ?

    23 mai 2007 17:40, par bob

    perso, je ne souhaiterais virer qu’un article d’une boucle, le plus récent, et de manière récurrente. Existe-t-il un moyen de le faire ?

    Répondre à ce message

    • Comment exclure des articles ? 24 mai 2007 11:15, par bb

      Bonjour,

      Avec ces boucles tu peux afficher les articles de ton site sauf le plus récent :

      <BOUCLE_articles_exclure_dernier(ARTICLES) {par date}{inverse} {0,1} {doublons}></BOUCLE_articles_exclure_dernier>
      <BOUCLE_articles_recents_sauf_le_dernier(ARTICLES) {par date}{inverse} {doublons}>
      tes balise pour afficher les autres articles
      </BOUCLE_articles_recents_sauf_le_dernier>

      La première boucle va sélectionner l’article le plus récent pour l’exclure de la deuxième boucle. La deuxième boucle va afficher les autres articles. Pour adapter ça à une rubrique il suffit d’ajouter le critère id_rubrique.

      Voir le lien pour comprendre le principe de la boucle "exclure".

      Bon courage ++

      Voir en ligne : SPIP : édito et boucle exclure

      Répondre à ce message

    Retour au début des forums

  • Comment exclure des articles ?

    13 mars 2007 18:59, par eric

    Moi je suis nouveau de chez nouveau, et je comprend pas ou mettre les boucles. La boucle pour permettre d’exclure des articles de la page d’accueil, je dois la mettre dans le fichier articles.html non ? le probleme c’est que j’en ai plusieurs des fichiers articles.html et ce dans les dossier suivant :

    dans le dossier dist dans le dossier plugin/squelette egt dans le dossier themes/alternative dans le dossier plugins habillage/alternative

    et si jamais c’est dans le fichier sommaire que je dois le mettre et bien j’en ai aussi plusieurs aux mêmes endroit.

    Bref je nage un 400 metres 4 nages

    help me please

    Répondre à ce message

    • Comment exclure des articles ? 18 mars 2007 16:19, par Richie

      Salut Éric,

      Avant de se lancer dans un 400 m 4 nages, tu conviendras qu’il faut d’abord apprendre la brasse, le crawl, le dos et la nage papillon... Avec SPIP, c’est pareil : je te recommande de potasser la documentation en ligne décrivant les boucles et leur mode de fonctionnement avant de t’attaquer à un sujet un peu "pointu" comme celui-ci. N’essaie pas de bruler trop d’étapes, l’acquisition des bases est impérative. Si tu es à l’aise avec la programmation Web, tu comprendras assez vite la mécanique de SPIP.

      Quant à cet article, il est assez ancien et était valide jusqu’à la version 1.7.x : je ne suis pas passé à une version plus récente, faute de disponibilité suffisante. Jusqu’en v1.7.x, la modification de la page d’accueil se faisait via le fichier "sommaire.html" placé dans la racine du site ; je suppose que tu es dans une version beaucoup plus récente car les dossiers "plugin/" et "themes/" me sont inconnus.

      A toute fin utile, je te joins l’adresse du site expliquant les boucles de SPIP.

      Bon courage,

      Richie

      Voir en ligne : SPIP : Des boucles et des balises

      Répondre à ce message

    • Comment exclure des articles ? 18 mars 2007 20:52, par Franck

      le probleme c’est que j’en ai plusieurs des fichiers articles.html et ce dans les dossier suivant : dans le dossier dist dans le dossier plugin/squelette egt dans le dossier themes/alternative dans le dossier plugins habillage/alternative et si jamais c’est dans le fichier sommaire que je dois le mettre et bien j’en ai aussi plusieurs aux mêmes endroit.

      Tu peux citer exactement la hiérarchie de dossiers que tu as ? Quels plugins tu as activés ?

      "plugin/squelette egt", "themes/alternative" et "plugins habillage/alternative" ne me semblent pas être des citations orthodoxes (soit plus rigoureux si tu veux une réponse rigoureuse stp).

      Répondre à ce message

    Retour au début des forums

  • > Comment exclure des articles ?

    25 mars 2005 22:12

    Je dois être nul !

    Je voudrais sur ma page sommaire afficher les 5 derniers articles du site mais en excluant ceux de la rubrique 17.

    J’ai donc fait cette boucle :

    <BOUCLE_dernier_article (ARTICLES){id_rubrique!=17}{0,5}{par date}{inverse}{doublons}>

    et ça m’affiche les 5 derniers articles de TOUTES les rubriques !

    Si quelqu’un peut me dire où j’ai fait l’erreur, merci !

    Répondre à ce message

    • > Comment exclure des articles ? 26 mars 2005 10:22, par Tof

      C’est encore moi, désolé de pas avoir mis de nom.

      Bon, j’ai essayé avec les mots clés et j’ai testé ça

      <BOUCLE_exclure_rubriques(RUBRIQUES){titre_mot=invisible}>
              <BOUCLE_exclure_articles (ARTICLES){doublons}>
              </BOUCLE_exclure_articles>
      </BOUCLE_exclure_rubriques>

      <BOUCLE_dernier_article (ARTICLES){0,5}{par date}{inverse}{doublons}>

      et le reste de ma boucle dernier_article ensuite

      et je n’obtiens ... rien !

      J’ai donc essayé de mettre id-rubrique après (ARTICLES) de la boucle exclure_articles et là j’ai ... les articles de toutes les rubriques.

      Grrr, au secours !

      Répondre à ce message

    • > Comment exclure des articles ? 23 avril 2005 15:43, par Richie

      Le plus simple est d’exploiter le mot-clé "unique" (ou doublon, c’est la même chose) pour obtenir tous les articles de la rubrique 17 sans les montrer, puis de faire une seconde boucle listant les 5 articles les plus récents du site. Comme ceux de la rubrique 17 ont déjà été affichés, ils n’apparaîtront pas dans la seconde boucle.

      Exemple :

      <BOUCLE_rub17(articles) {id_rubrique=17} {unique}>
      <!-- article caché : #ID_ARTICLE -->
      </BOUCLE_rub17>
      <BOUCLE_top5(articles) {tout} {unique} {par date} {0,5}>
      Article présenté : #ID_ARTICLE
      </BOUCLE_top5>

      Cela répond-il à ton besoin ?

      Richie

      Répondre à ce message

    Retour au début des forums

  • > Comment exclure des articles ?

    12 juillet 2004 05:29, par verdecejo

    Comment afficher des articles qui apartien a une rubrique different a cella del article present ?

    j’essaié ecrire dans article.html :

    <B_articulos_autor> <BOUCLE_articulos_autor(ARTICLES) id_rubrique !=#ID_RUBRIQUE par date tout> <a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>#TITRE</a>

    </BOUCLE_articulos_autor> </B_articulos_autor>

    mais il ne marche pas.

    Répondre à ce message

    • > Comment exclure des articles ? 23 avril 2005 15:58, par Richie

      Personnellement, je traite ce besoin en passant par un autre squelette SPIP que je charge par commande <INCLURE> pour construire un menu de navigation avec toutes les rubriques du site, par exemple.

      En procédant ainsi, on sort le squelette du contexte initial. Revers de la médaille : il faut transmettre l’ID de la rubrique ou de l’article si l’on veut maintenir ce contexte.

      Voir en ligne : INCLURE d’autres squelettes

      Répondre à ce message

    Retour au début des forums

  • > Comment exclure des articles ?

    22 avril 2005 15:47, par francois

    Bonjour à tous, pour mon moteur de recherche j’utilise la boucle suivante :

    je voudrais modifier cette boucle pour qu’en passant un argument par l’url je puisse limiter la recherche aux articles d’une ou plusieurs rubriques. mes tentattives avec l’ajout d’un critere id_rubrique ne marchent pas.quelqu’un a til une idée ? ps:j’utilise spip 1.7.2

    Répondre à ce message

    Retour au début des forums

  • Comment inclure des articles

    21 mai 2004 16:17, par yakari

    Et ce qui a été très pratique pour moi : Utiliser une expression régulière pour inclure des articles specifiques

    BOUCLE_mes_articles_choisis(articles)id_article==^(1|4|9|12|15)$

    pour n’inclure que les articles 1, 4, 9, 12 et 15

    Répondre à ce message

    • > Comment inclure des articles 2 mars 2005 10:28, par buzz

      Salut !

      La question étant "comment exclure des articles" ta solution la contourne par l’inverse ... Moi je cherche le moyen de faire disparaître UN article (l’édito) de la liste qui apparaît dans la rubrique ainsi que sur le plan.

      Mais comme je ne sais pas combien d’article il y aura dans la rubrique je trouve ça un peu chaud de devoir écrire tous les articles à inclure plutôt qu’un seul à exclure ...

      Répondre à ce message

    Retour au début des forums

  • > Comment inclure des articles spécifiques ?

    8 mars 2004 18:20, par ynys

    Je ne sais pas si je suis au bon endroit mais je cherche à faire quelque chose de précis et je n’y arrive pas.
    J’explique :
    J’ai sur ma page article.html 2 tableaux.
    - Le 1er contient les documents joints en mode document
    - Le 2ème contient les documents joints en mode image

    Je voudrais que le 2ème tableau ne s’affiche que si la rubrique de l’article correspondant soit une rubrique spécifique.

    LA boucle de mon 2eme tableau :

    BOUCLE_portfolio(DOCUMENTS)id_articlemode=imagedoublons

    J’ai testé de faire une boucle supplémentaire à l’intérieur de la première et ça : (DOCUMENTS) id_article id_rubrique==43 mais je n’arrive à rien.
     :( Please help ....

    Répondre à ce message

    Retour au début des forums

  • Euh oui mais dans le détail il y a quand même un truc qui cloche, c’est que si je dois afficher une balise (#titre, sous titre ou autre) des articles liés au mot clef excluant pour ne pas les selectionner par la suite ca peut etre génant si on veut qu’il y ait aucune trace des articles à éliminer !! Dans l’exemple la première boucle excluante, affiche le titre et j’ai l’impression que le doublon ne marche que si une balise est affichée , non ?

    Répondre à ce message

    Retour au début des forums

  • Salut les Spipeurs géniaux ;))

    question complémentaire (à celle de ne pas faire paraitre les articles "parasites" dans les pages), ... celle de ne pas envoyer l’annonce d’un article dans les Nouveautés par mail = nous avons activé cette fonction d’annonce, nous publions les articles "gris" dans une rubrique cachée MAIS patatras les articles partent par mail quand même Arggghhh ... une soluce ?? Merci B-)

    Voir en ligne : JFB Admin

    Répondre à ce message

    • C’est tout frais et sans garantie immédiate de bon fonctionnement parce que je n’ai pas pu le vérifier, mais voici la boucle ajoutée dans le fichier "nouveautes.html" :

      <BOUCLE_nv1excl(ARTICLES){type_mot=Exclure}{unique}{age_relatif<=0}{par date}{inverse}{0,30}>
      </BOUCLE_nv1excl>
      <BOUCLE_nv1(ARTICLES){unique}{age_relatif<=0}{par date}{inverse}{0,30}>
      (...)

      La 1ère boucle est supposée identifier les articles ’gris’, la seconde ne les reprend pas grâce à l’argument "unique" présent dans les deux boucles.

      Même principe pour les brèves...

      Amicalement,

      Richard

      Répondre à ce message

    • Un petit complément d’information : la boucle "<BOUCLE_nv1excl(ARTICLES)..." doit être placée à l’EXTERIEUR de "<BOUCLE_nv1...", plus précisément AVANT la balise "<B_nv1>", sans quoi plus aucun mail ne sera diffusé.

      Aucun message d’erreur n’est affiché en cas de problème lors de la génération du mail des nouveautés.

      Richie

      Répondre à ce message

    Retour au début des forums

  • > Comment exclure des articles ?

    4 juillet 2003 15:28, par Christophe

    Plus simplement, on peut jouer sur les dates de publication des articles.
    Les articles non désirés sont publiés et ensuite on change la date de publication, en l’année 2000 par exemple.
    Pour faire apparaître les articles standards, on met la condition que les articles doivent être publiés depuis 2001 par exemple.

    Répondre à ce message

    • > Comment exclure des articles ? 14 juillet 2003 16:02, par chris

      cest une bonne idee

      Répondre à ce message

    • > Comment exclure des articles ? 31 juillet 2003 11:14, par Richie

      Le besoin que je cherchais à satisfaire était de ne pas afficher en page d’accueil des articles sans intérêt général (activity reports) créés chaque semaine en telle quantité qu’il n’y avait plus de place pour les articles ’de fond’.

      Avec la méthode proposée, la page d’accueil n’est plus phagocytée par les ’activity reports’ et ces derniers sont visibles dans leur rubrique dédiée.

      Répondre à ce message

    Retour au début des forums

  • > problème... résolu !

    17 mai 2003 21:42, par Thierry Gagnon

    Si ça ne marche pas (comme il m’est arrivé), essayez titre_mot !=invisible au lieu de titre_mot= !invisible.

    L’astuce serait de mettre le point d’exclamation AVANT le signe égal... :P

    Répondre à ce message

    • > problème... résolu ! 31 juillet 2003 11:06, par Richie

      Hélas, comme je l’indiquais dans l’article, l’expression que tu proposes ne retournera que les articles AYANT un mot-clé DIFFERENT du critère de sélection. Autrement dit, les articles sans mot-clé associé ne seront PAS sélectionnés par la boucle SPIP.

      Quant au critère "titre_mot= !invisible", il s’agit d’une erreur de saisie : les tests ont bien été faits avec "titre_mot !=invisible". Toutes mes excuses :-p

      Répondre à ce message

    Retour au début des forums



Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | Charte et vie SPIP-Contrib | SPIP | L'autre.net