SPIP - Contrib

SPIP - Contrib

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

219 visiteurs en ce moment

fontsizeup fontsizedown
Accueil du site > Contribs > Navigation > Tris conditionnels > Exclure selon un mot-clé
[32 commentaires]

Exclure selon un mot-clé

dimanche 16 mai 2004, par Olivier GENDRIN

Toutes les versions de cet article : [English] [français]

  • Digg
  • Del.icio.us
  • Facebook
  • Google
  • Technorati
0 vote

Cette boucle permet d’exclure de l’affichage une liste d’articles, de rubriques, de brèves ou de sites en fonction d’un mot-clé.

Cette boucle fait suite à celle proposé dans l’article 563 : Afficher selon un mot clé


<BOUCLE_exclure (ARTICLES) {titre_mot=exclu} {doublons}>
</BOUCLE_exclure>

<BOUCLE_afficher_non_exclus (ARTICLES) {tout} {doublons} >
<a href="#URL_ARTICLE">#TITRE</a>
</BOUCLE_afficher_non_exclus>

Remarques :

- Toute l’astuce de cette boucle réside dans l’usage du critère doublons. En effet, la première boucle (BOUCLE_exclure) sélectionne parmis les ARTICLES ceux qui sont dotés du mot clé exclu (titre_mot=exclu).
La seconde boucle (BOUCLE_afficher_non_exclus) affiche tous (tout) les ARTICLES, à l’exception de ceux qui on déjà été sélectionnés par une boucle précédente dotée elle aussi d’un critère doublons.

- On pourra remplacer ARTICLES par RUBRIQUES, BREVES ou SITES selon ce que l’on veut afficher.

Il faudra bien évidement adapter le contenu de href (#URL_RUBRIQUE, #URL_BREVE et #URL_SITE).

- Ici, le mot clè est ’exclu’. On pourra le remplacer bien évidemment par n’importe quel autre mot clé. Attention toutes fois de s’assurer qu’on a pas deux mots clès avec le même ’titre’ dans deux groupes différents, c’est à dire deux mots clés au nom identique ; sauf bien évidemment si c’est un effet recherché.

Retour en haut de la page

32 Messages de forum

Voir toute la discussion

Pages 1 | 2 | 3 | 4

  • Répondre à ce message

    1er octobre 12:00 , par sloanapy

    Bonjour,

    en utilisant les conseils de cette contrib, voici un petit exemple concret :

    1 - des articles sont sélectionnées en haut de page selon des mots clés qui appartiennent à un groupe (10) de mots clé. Les mots clés peuvent être attribués à des articles de toutes les rubriques

    2 - sous ces articles sélectionnés, il faut afficher la liste de tous les articles qui n’appartiennent qu’à 2 rubriques précises sans répéter ceux qui pourraient avoir un des mot clé du groupe 10 et sont donc déjà affichés en haut de page.

    Spip 1.9.2e

    Voici le résultat

    <BOUCLE_exclure (ARTICLES) {id_groupe=10} {doublons}>
    </BOUCLE_exclure>                       

    <B_liste>
    <div class="liste-articles">
    [(#ANCRE_PAGINATION)]
    [(#ENV{debut_articles}|?{'',' '})]
            <BOUCLE_liste(ARTICLES) {id_rubrique=17;3}{par date}{inverse} {doublons} {pagination}>
            <h3 class="titre"><a href="#URL_ARTICLE">#TITRE</a></h3>
            [<font class="texteliste">(#SOUSTITRE)]<small>[ - (#DATE|affdate_jourcourt)]</small>[<br />(#CHAPO)]</font>
            </BOUCLE_liste>
    [<p class="pagination">(#PAGINATION)</p>]
    </div>
    </B_liste>

    La première boucle traite tous les articles qui ont un des mots clés du groupe 10.

    Je ne prends ensuite que les articles des rubriques 17 et 3 avec {id_rubrique=17;3} ce qui me permet d’exclure toutes les autres rubriques sans avoir à utiliser de mots clés.

  • Répondre à ce message

    9 mai 12:27 , par a

    merci pour cette solution !

    j’avais exactement le même problème : j’avais mis la boule exclure à l’intérieur du "B_articles" de la boucle articles non exclus. pb résolu en mettant la boucle exclure au dessus du "B_articles"...

  • Répondre à ce message

    4 mars 09:38 , par cc

    Oui, j’avais deja essaye cette syntaxe, ca ne marche pas non plus. En fait, je faisais allusion a cette contrib qui l’utilise : http://www.weblog.eliaz.fr/article3...

  • Répondre à ce message

    3 mars 18:41 , par Loiseau2nuit

    Normal !

     !id_mot=5 ne marche toujours pas.

    Essaie avec id_mot !=5 et ca devrait mieux fonctionner déjà ;)

  • Répondre à ce message

    3 mars 15:43 , par cc

    Merci mille fois pour cette contrib !!!! j’avais commence a desesperer. J’utilise 1.92d et la syntaxe  !id_mot=5 ne marche toujours pas.

  • Répondre à ce message

    10 janvier 17:25 , par Loiseau2nuit

    EUREKA !!!!

    En fait, ce sont les déclaration <B_rubrique> et </B_rubrique> qui posaient problème.

    En les supprimant, j’arrive à faire ce que je voulais faire.

    Merci à la liste Spip-user en tout cas pour les pistes proposées ;)

    Pour info, la boucle finalement opérationnelle :

  • Répondre à ce message

    23 décembre 2007 01:38 , par Loiseau2nuit

    Bonsoir,

    Plusieurs mois après la bataille, je reviens avec le même problème. En janvier dernier j’avais finis par contourner le problème en plaçant des {id_rubrique != XYZ} pour exclure les 2 rubriques que je voulais shunter mais là je suis sur un autre projet en 192c et je ne peux pas me permettre d’utiliser cette soluce parce que au final je ne sais pas combien de rubrique invisible mon client va vouloir me créer.

    Du coup je sèche gravement là. Et comparé à la dernière fois, ce coup-ci, la boucle, même isolée dans un fichier à part ne fonctionne pas. Je ne sais plus quoi faire là.

    ma boucle du jour, toujours dans dist/inc/rubriques.html :

    Si quelqu’un a une idée, je lui paie une bière à la prochaine Party où je me pointe et où je le croise.

    Bonne nuit à tous.

    EDIT : Bon... on en parle aussi ici si ca peut servir à quelqu’un...

  • Répondre à ce message

    23 janvier 2007 23:00 , par Loiseau2nuit

    Yep, ben quand tu sais que même mes fichiers rubriques, articles et les autres posent problème, je vais commencer maintenant alors parce que j’ai du "Spipain" sur la planche...

    En tout cas, merci à vous 2 pour vos coups de pattes ;)

  • Répondre à ce message

    23 janvier 2007 13:19 , par kayou

    Bonjour Zzz,

    le fichier inc_rubriques.html est appelé à l’intérieur d’un autre fichier (sommaire.html) qui a lui-même des boucles.

    Ce sont peut-être celle-ci qui sont en conflit.

    Pour vérifier, d’où provient l’origine du conflit, tu peux essayer de mettre en commentaire toutes les autres boucles précédent celle de inc_rubriques.html, et les réactiver 1 par 1 jusqu’à trouver la coupable....

    Bon courage

  • Répondre à ce message

    23 janvier 2007 05:32 , par Loiseau2nuit

    Là ca marche. Et la boucle no_rub me renvoit bien l’id de la rubrique que je cherche à shunter.

    Ce que je ne comprends pas, c’est que cette boucle se situe DEJA toute seule dans un fichier dédié. En l’occurence le inc_rubriques.html de la distrib de base. Et hormis pour tenter d’exclure cette rubrique, je n’ai pas modifier la boucle d’origine. A une ou deux puces graphiques près, et les (doublons) de ta contrib, le fichier est quasi identique à celui de la dist.

Pages 1 | 2 | 3 | 4

Répondre à cet article

Retour en haut de la page

Ça discute par ici

SPIP | Squelette | | Plan du site | Suivre la vie du site RSS 2.0