Aide sur un critère pour une boucle svp

Bonjour,

J'ai une boucle qui contient une variable d'environnement qui me permet donc de sélectionner les X derniers articles de ma base. Jusque la, pas de soucis, elle fonctionne correctement.
Hors, j'ai voulu y rajouter un critère qui me permet d'écarter les articles dont le mot-clé appartient a un groupe de mots-clés mais cela ne fonctionne pas.

Voici la syntaxe :

<BOUCLE_article(ARTICLES){par date}{inverse}{0,#ENV{nbarticles,5}}{type_mot!=articles_particuliers}>
     Traitement....
</BOUCLE_article>

Cdt,

Mickael Bertainchant

Bonjour,

Je n’ai qu’une chose à dire: « Vive les doublons! »
Grâce au critère doublons, tu peux faire ceci:

<BOUCLE_articles_particuliers(ARTICLES)
{type_mot=articles_particuliers}{doublons articles_particuliers}>
Vide
</BOUCLE_articles_particuliers>
<BOUCLE_article(ARTICLES){par date}{inverse}{0,#ENV{nbarticles,5}}{!doublons articles_particuliers}>
Traitement…
</BOUCLE_article>

à tester… :slight_smile:

Le 11 septembre 2008 09:46, Mickael Bertainchant <mickael.bertainchant@ac-lille.fr> a écrit :

Bonjour,

J’ai une boucle qui contient une variable d’environnement qui me permet donc de sélectionner les X derniers articles de ma base. Jusque la, pas de soucis, elle fonctionne correctement.
Hors, j’ai voulu y rajouter un critère qui me permet d’écarter les articles dont le mot-clé appartient a un groupe de mots-clés mais cela ne fonctionne pas.

Voici la syntaxe :

<BOUCLE_article(ARTICLES){par date}{inverse}{0,#ENV{nbarticles,5}}{type_mot!=articles_particuliers}>
Traitement…
</BOUCLE_article>

Cdt,

Mickael Bertainchant


liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

irc://irc.freenode.net/spip ou http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip

Je n'ai pas essayé cette boucle car cela me semble un peu lourd (Utilisation d'une seconde boucle) alors que si j'ai bien lu les critères de sélections lié aux articles; je devrais théoriquement grâce a {type_mot!=articles_particuliers} y parvenir.

J'ai plus ou moins résolu mon soucis car par chance, je classe ces articles dont les mots clé appartenants a ce groupe dans une rubrique "Articles Particuliers" ayant un id_rubrique = 359

donc j'ai écrit ceci et cela fonctionne :

<BOUCLE_article(ARTICLES){par date}{inverse}{0,#ENV{nbarticles,5}}{id_rubrique!=359}>
   Traitement...
</BOUCLE_article>

Cela n'est pas très propre car je dois écrire de manière non dynamique le n° de la rubrique dans mon squelette, d'autant plus gênant car je ne pourrais pas assurer l'administration dans le futur de ce site et cette tâche sera effectuée par des gens qui n'auront pas forcement les compétences ni les connaissances en SPIP/HTML pour le faire.

Teddy Payet a écrit :

Bonjour,

Je n'ai qu'une chose à dire: "Vive les doublons!"
Grâce au critère doublons, tu peux faire ceci:

<BOUCLE_articles_particuliers(ARTICLES)
{type_mot=articles_particuliers}{doublons articles_particuliers}>
Vide
</BOUCLE_articles_particuliers>
<BOUCLE_article(ARTICLES){par date}{inverse}{0,#ENV{
nbarticles,5}}{!doublons articles_particuliers}>
   Traitement....
</BOUCLE_article>

à tester... :slight_smile:

Le 11 septembre 2008 09:46, Mickael Bertainchant <mickael.bertainchant@ac-lille.fr <mailto:mickael.bertainchant@ac-lille.fr>> a écrit :

    Bonjour,

    J'ai une boucle qui contient une variable d'environnement qui me
    permet donc de sélectionner les X derniers articles de ma base.
    Jusque la, pas de soucis, elle fonctionne correctement.
    Hors, j'ai voulu y rajouter un critère qui me permet d'écarter les
    articles dont le mot-clé appartient a un groupe de mots-clés mais
    cela ne fonctionne pas.

    Voici la syntaxe :

    <BOUCLE_article(ARTICLES){par
    date}{inverse}{0,#ENV{nbarticles,5}}{type_mot!=articles_particuliers}>
       Traitement....
    </BOUCLE_article>

    Cdt,

    Mickael Bertainchant
    _______________________________________________
    liste spip
    spip@rezo.net <mailto:spip@rezo.net> - désabonnement :
    spip-off@rezo.net <mailto:spip-off@rezo.net>

    Infos et archives : http://listes.rezo.net/mailman/listinfo/spip

    Documentation de SPIP : http://www.spip.net/

    irc://irc.freenode.net/spip <http://irc.freenode.net/spip&gt; ou
    http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip
    <http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip&gt;

------------------------------------------------------------------------

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

irc://irc.freenode.net/spip ou http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip
  

Mickael Bertainchant <mickael.bertainchant@ac-lille.fr> a ecrit:

Je n'ai pas essayé cette boucle car cela me semble un peu lourd (Utilisation d'une seconde boucle) alors que si j'ai bien lu les critères de sélections lié aux articles; je devrais théoriquement grâce a {type_mot!=articles_particuliers} y parvenir.

Attention : je ne suis plus très sûr du coup, mais si mes souvenirs sont bons, {type_mot!=articles_particuliers} signifie "qui est associé à un mot clé dont le groupe n'est pas articles particuliers" et pas "qui n'est pas associé à un mot-clé dont le groupe est articles particuliers". La nuance est de taille... La boucle renvoie donc les articles qui ONT un mot-clé hors du groupe articles_particuliers, mais ignore ceux qui n'ont pas de mot-clé associé.

Dites moi si je me trompe.

DoM

J'ai plus ou moins résolu mon soucis car par chance, je classe ces articles dont les mots clé appartenants a ce groupe dans une rubrique "Articles Particuliers" ayant un id_rubrique = 359

donc j'ai écrit ceci et cela fonctionne :

<BOUCLE_article(ARTICLES){par
date}{inverse}{0,#ENV{nbarticles,5}}{id_rubrique!=359}>
  Traitement...
</BOUCLE_article>

Cela n'est pas très propre car je dois écrire de manière non dynamique le n° de la rubrique dans mon squelette, d'autant plus gênant car je ne pourrais pas assurer l'administration dans le futur de ce site et cette tâche sera effectuée par des gens qui n'auront pas forcement les compétences ni les connaissances en SPIP/HTML pour le faire.

Teddy Payet a écrit :

Bonjour,

Je n'ai qu'une chose à dire: "Vive les doublons!"
Grâce au critère doublons, tu peux faire ceci:

<BOUCLE_articles_particuliers(ARTICLES)
{type_mot=articles_particuliers}{doublons articles_particuliers}>
Vide
</BOUCLE_articles_particuliers>
<BOUCLE_article(ARTICLES){par date}{inverse}{0,#ENV{
nbarticles,5}}{!doublons articles_particuliers}>
  Traitement....
</BOUCLE_article>

à tester... :slight_smile:

Le 11 septembre 2008 09:46, Mickael Bertainchant <mickael.bertainchant@ac-lille.fr <mailto:mickael.bertainchant@ac-lille.fr>> a écrit :

   Bonjour,

   J'ai une boucle qui contient une variable d'environnement qui me
   permet donc de sélectionner les X derniers articles de ma base.
   Jusque la, pas de soucis, elle fonctionne correctement.
   Hors, j'ai voulu y rajouter un critère qui me permet d'écarter les
   articles dont le mot-clé appartient a un groupe de mots-clés mais
   cela ne fonctionne pas.

   Voici la syntaxe :

   <BOUCLE_article(ARTICLES){par
   date}{inverse}{0,#ENV{nbarticles,5}}{type_mot!=articles_particuliers}>
      Traitement....
   </BOUCLE_article>

   Cdt,

   Mickael Bertainchant
   _______________________________________________
   liste spip
   spip@rezo.net <mailto:spip@rezo.net> - désabonnement :
   spip-off@rezo.net <mailto:spip-off@rezo.net>

   Infos et archives : http://listes.rezo.net/mailman/listinfo/spip

   Documentation de SPIP : http://www.spip.net/

   irc://irc.freenode.net/spip <http://irc.freenode.net/spip&gt; ou
   http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip
   <http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip&gt;

------------------------------------------------------------------------

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

irc://irc.freenode.net/spip ou http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

irc://irc.freenode.net/spip ou
http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip

Lepaisant Dominique a écrit :

Mickael Bertainchant <mickael.bertainchant@ac-lille.fr> a ecrit:

Je n'ai pas essayé cette boucle car cela me semble un peu lourd (Utilisation d'une seconde boucle) alors que si j'ai bien lu les critères de sélections lié aux articles; je devrais théoriquement grâce a {type_mot!=articles_particuliers} y parvenir.

Attention : je ne suis plus très sûr du coup, mais si mes souvenirs sont bons, {type_mot!=articles_particuliers} signifie "qui est associé à un mot clé dont le groupe n'est pas articles particuliers" et pas "qui n'est pas associé à un mot-clé dont le groupe est articles particuliers". La nuance est de taille... La boucle renvoie donc les articles qui ONT un mot-clé hors du groupe articles_particuliers, mais ignore ceux qui n'ont pas de mot-clé associé.

Dites moi si je me trompe.

DoM

J'ai plus ou moins résolu mon soucis car par chance, je classe ces articles dont les mots clé appartenants a ce groupe dans une rubrique "Articles Particuliers" ayant un id_rubrique = 359

donc j'ai écrit ceci et cela fonctionne :

<BOUCLE_article(ARTICLES){par
date}{inverse}{0,#ENV{nbarticles,5}}{id_rubrique!=359}>
  Traitement...
</BOUCLE_article>

Cela n'est pas très propre car je dois écrire de manière non dynamique le n° de la rubrique dans mon squelette, d'autant plus gênant car je ne pourrais pas assurer l'administration dans le futur de ce site et cette tâche sera effectuée par des gens qui n'auront pas forcement les compétences ni les connaissances en SPIP/HTML pour le faire.

Teddy Payet a écrit :

Bonjour,

Je n'ai qu'une chose à dire: "Vive les doublons!"
Grâce au critère doublons, tu peux faire ceci:

<BOUCLE_articles_particuliers(ARTICLES)
{type_mot=articles_particuliers}{doublons articles_particuliers}>
Vide
</BOUCLE_articles_particuliers>
<BOUCLE_article(ARTICLES){par date}{inverse}{0,#ENV{
nbarticles,5}}{!doublons articles_particuliers}>
  Traitement....
</BOUCLE_article>

à tester... :slight_smile:

Le 11 septembre 2008 09:46, Mickael Bertainchant <mickael.bertainchant@ac-lille.fr <mailto:mickael.bertainchant@ac-lille.fr>> a écrit :

   Bonjour,

   J'ai une boucle qui contient une variable d'environnement qui me
   permet donc de sélectionner les X derniers articles de ma base.
   Jusque la, pas de soucis, elle fonctionne correctement.
   Hors, j'ai voulu y rajouter un critère qui me permet d'écarter les
   articles dont le mot-clé appartient a un groupe de mots-clés mais
   cela ne fonctionne pas.

   Voici la syntaxe :

   <BOUCLE_article(ARTICLES){par
   date}{inverse}{0,#ENV{nbarticles,5}}{type_mot!=articles_particuliers}>
      Traitement....
   </BOUCLE_article>

   Cdt,

   Mickael Bertainchant

Il me semble que Dom a raison d'où l'utilisation de 2 boucles comme le préconise Teddy qui marche très bien
Sauf que je pense qu'il faut le même critère doublons, donc sans le point d'exclamation dans la seconde boucle

<BOUCLE_articles_particuliers(ARTICLES) {type_mot=articles_particuliers}{doublons articles_particuliers}>
Vide
</BOUCLE_articles_particuliers>
<BOUCLE_article(ARTICLES){par date}{inverse}{0,#ENV{nbarticles,5}}{doublons articles_particuliers}>
  Traitement....
</BOUCLE_article>

Bonjour,

Avec la version 1.97 du plugin, j’essaie de faire une liste de tous les
courriers envoyés en utilisant le code suivant

<BOUCLE_liste_newsletters(COURRIERS)>
<a href="spip.php?page=courrier&id_courrier=#ID_COURRIER">#TITRE -
(#DATE)</a>
</BOUCLE_liste_newsletters>

mais je n’obtiens que les courriers envoyés manuellements (type nl) et
pas les automatiques (type auto). Est-ce qu’il s’agit d’un bug ou qc.
m’échappe ?

Merci Rainer

Oui j'ai bel et bien l'impression que dom a raison, l'explication de la notice de SPIP serait donc a revoir. J'ai un autre chantier d'urgence ce matin , je ne pourrait pas tester ta boucle dans l'immédiat JC.

++

Jean-Christophe Villeneuve a écrit :

Lepaisant Dominique a écrit :

Mickael Bertainchant <mickael.bertainchant@ac-lille.fr> a ecrit:

Je n'ai pas essayé cette boucle car cela me semble un peu lourd (Utilisation d'une seconde boucle) alors que si j'ai bien lu les critères de sélections lié aux articles; je devrais théoriquement grâce a {type_mot!=articles_particuliers} y parvenir.

Attention : je ne suis plus très sûr du coup, mais si mes souvenirs sont bons, {type_mot!=articles_particuliers} signifie "qui est associé à un mot clé dont le groupe n'est pas articles particuliers" et pas "qui n'est pas associé à un mot-clé dont le groupe est articles particuliers". La nuance est de taille... La boucle renvoie donc les articles qui ONT un mot-clé hors du groupe articles_particuliers, mais ignore ceux qui n'ont pas de mot-clé associé.

Dites moi si je me trompe.

DoM

J'ai plus ou moins résolu mon soucis car par chance, je classe ces articles dont les mots clé appartenants a ce groupe dans une rubrique "Articles Particuliers" ayant un id_rubrique = 359

donc j'ai écrit ceci et cela fonctionne :

<BOUCLE_article(ARTICLES){par
date}{inverse}{0,#ENV{nbarticles,5}}{id_rubrique!=359}>
  Traitement...
</BOUCLE_article>

Cela n'est pas très propre car je dois écrire de manière non dynamique le n° de la rubrique dans mon squelette, d'autant plus gênant car je ne pourrais pas assurer l'administration dans le futur de ce site et cette tâche sera effectuée par des gens qui n'auront pas forcement les compétences ni les connaissances en SPIP/HTML pour le faire.

Teddy Payet a écrit :

Bonjour,

Je n'ai qu'une chose à dire: "Vive les doublons!"
Grâce au critère doublons, tu peux faire ceci:

<BOUCLE_articles_particuliers(ARTICLES)
{type_mot=articles_particuliers}{doublons articles_particuliers}>
Vide
</BOUCLE_articles_particuliers>
<BOUCLE_article(ARTICLES){par date}{inverse}{0,#ENV{
nbarticles,5}}{!doublons articles_particuliers}>
  Traitement....
</BOUCLE_article>

à tester... :slight_smile:

Le 11 septembre 2008 09:46, Mickael Bertainchant <mickael.bertainchant@ac-lille.fr <mailto:mickael.bertainchant@ac-lille.fr>> a écrit :

   Bonjour,

   J'ai une boucle qui contient une variable d'environnement qui me
   permet donc de sélectionner les X derniers articles de ma base.
   Jusque la, pas de soucis, elle fonctionne correctement.
   Hors, j'ai voulu y rajouter un critère qui me permet d'écarter les
   articles dont le mot-clé appartient a un groupe de mots-clés mais
   cela ne fonctionne pas.

   Voici la syntaxe :

   <BOUCLE_article(ARTICLES){par
   date}{inverse}{0,#ENV{nbarticles,5}}{type_mot!=articles_particuliers}>
      Traitement....
   </BOUCLE_article>

   Cdt,

   Mickael Bertainchant

Il me semble que Dom a raison d'où l'utilisation de 2 boucles comme le préconise Teddy qui marche très bien
Sauf que je pense qu'il faut le même critère doublons, donc sans le point d'exclamation dans la seconde boucle

<BOUCLE_articles_particuliers(ARTICLES) {type_mot=articles_particuliers}{doublons articles_particuliers}>
Vide
</BOUCLE_articles_particuliers>
<BOUCLE_article(ARTICLES){par date}{inverse}{0,#ENV{nbarticles,5}}{doublons articles_particuliers}>
Traitement....
</BOUCLE_article>

Ajoute un critere ? {type IN nl,auto} ?

Rainer Müller wrote:

Bonjour,

Avec la version 1.97 du plugin, j’essaie de faire une liste de tous les
courriers envoyés en utilisant le code suivant

<BOUCLE_liste_newsletters(COURRIERS)>
<a href="spip.php?page=courrier&id_courrier=#ID_COURRIER">#TITRE -
(#DATE)</a>
</BOUCLE_liste_newsletters>

mais je n’obtiens que les courriers envoyés manuellements (type nl) et
pas les automatiques (type auto). Est-ce qu’il s’agit d’un bug ou qc.
m’échappe ?

Merci Rainer

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

irc://irc.freenode.net/spip ou http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip

Pour préciser le plugin est installé sur un spip 1.9.2d [12150] et je viens de le réinstaller plusieurs fois en dés installant chaque fois les tables concernées. J’ai égalment desinstallé tous les plugins et vidé le cache.

Si je mets avec le critère {typ=nl} les courriers manuels s’affichent, {typ=auto} n’affiche rien et {type IN nl,auto} seulement les manuels

BoOz said the following on 12/09/08 12:26:

je viens de changer le bout de code suivant dans
spiplistes_mes_fonctions.php

//
// <BOUCLE(COURRIERS)>
//
function boucle_COURRIERS($id_boucle, &$boucles) {
        $boucle = &$boucles[$id_boucle];
        $id_table = $boucle->id_table;
        $boucle->from = "spip_courriers AS $id_table";
        $boucle->where = array("'='","'type'","'\"nl\"'");
        return calculer_boucle($id_boucle, $boucles);
}

par

//
// <BOUCLE(COURRIERS)>
//
function boucle_COURRIERS($id_boucle, &$boucles) {
        $boucle = &$boucles[$id_boucle];
        $id_table = $boucle->id_table;
        $boucle->from = "spip_courriers AS $id_table";
        return calculer_boucle($id_boucle, $boucles);
}

Et ça a l'air de fonctionner

Mais je n'ai aucune idée si c'est une solution valable

Rai

BoOz said the following on 12/09/08 12:26:

Ajoute un critere ? {type IN nl,auto} ?

Rainer Müller wrote:

Bonjour,

Avec la version 1.97 du plugin, j’essaie de faire une liste de tous les
courriers envoyés en utilisant le code suivant

<BOUCLE_liste_newsletters(COURRIERS)>
<a href="spip.php?page=courrier&id_courrier=#ID_COURRIER">#TITRE -
(#DATE)</a>
</BOUCLE_liste_newsletters>

mais je n’obtiens que les courriers envoyés manuellements (type nl) et
pas les automatiques (type auto). Est-ce qu’il s’agit d’un bug ou qc.
m’échappe ?

Merci Rainer

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

irc://irc.freenode.net/spip ou
http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip