[ar] [ca] [cpf] [de] [en] [es] [fr] [it]

Ce forum d’entraide est recommandé pour les utilisateurs et utilisatrices occasionnels de SPIP (Système de publication pour l’Internet). Avant de poser une question, faites une recherche sur ce site, consultez les liens utiles. Si vous ne trouvez pas de réponse, postez votre message dans la rubrique appropriée, avec un titre explicite.

Sujets : 23973 Sujets résolus :  39 %

74 visiteurs en ce moment


cumul de critères Résolu

par Nass - 9 mars 11:35 - Réponse(s) : 9

Bonjour,
je voudrais afficher les articles contenus dans la rubrique 4, ainsi que les articles possédant un certain mot-clé, sachant que ces derniers articles peuvent appartenir à n’importe quelle rubrique.

J’ai donc une boucle de type ARTICLES sur laquelle :
pour la première condition id_rubrique IN 4 ça marche
pour la deuxième titre_mot=xxx ça marche aussi
mais le cumul des deux ne marche pas...


  • #1 > cumul de critères ˆ
    par erational - 10 mars 10:57

    J’ai donc une boucle de type ARTICLES sur laquelle :
    pour la première condition id_rubrique IN 4 ça marche
    pour la deuxième titre_mot=xxx ça marche aussi
    mais le cumul des deux ne marche pas...

    Je ne comprends pas ... tu veux dire quoi par cumul ?

    Peux tu nous donner ton code complet en utilisant le tag<cadre class="spip">....</cadre> ?

    La solution classique est :

    • faire un tableau
    • remplir le tableau avec les id_article avec ta 1er boucle
    • remplir le tableau avec les id_article avec ta 2eme boucle
    • boucler sur ce tableau avec le critère de tri que tu veux

    en savoir plus sur les tableaux :
    http://www.spip.net/fr_article4009.html


  • < #2 > cumul de critères ˆ
    par Nass - 16 mars 22:28
    1. <BOUCLE_ligne (ARTICLES) {titre_mot=france}{par date}{inverse}{doublons}{pagination 20}>
    2. [(#COMPTEUR_BOUCLE|alterner{'<tr>',''})]
    3. <td width="50%">
    4. <h3 class="entry-title"><a href="#URL_ARTICLE" rel="bookmark">#TITRE</a></h3>
    5. <abbr class="published"[ title="(#DATE|date_iso)"]>[(#DATE|affdate{'d/m/Y'})]</abbr>
    6. [<div class="logo_col">(#LOGO_ARTICLE|#URL_ARTICLE|image_reduire{145,145})</div>]
    7. [<div class="#EDIT{intro} introduction entry-content">
    8. <a href="#URL_ARTICLE" rel="bookmark">(#INTRODUCTION|couper{300})</a></div>]
    9. </td>
    10. [(#COMPTEUR_BOUCLE|alterner{'','</tr>'})]
    11. </BOUCLE_ligne>

    Télécharger

    tel que c’est ça affiche les articles - toutes rubriques confondues - qui contiennent le mot-clé "france". Et je veux en plus, dans la même boucle classée par date inverse, afficher tous les articles d’une certaine rubrique (4), qu’ils aient le mot-clé ou non.
    Ce que je disais c’est que j’avais essayé

    1. {titre_mot=france}{id_rubrique IN 4}{par date}{inverse}{doublons}{pagination 20}

    ce qui ne marche pas


  • < #3 > cumul de critères ˆ
    par Nass - 16 mars 22:39

    Oh le boulet j’ai mon exemple pil poil illustré dans la page de tableaux dont tu as donné le lien. A moins que ce soit toi qui l’ait mis à jour ? :)

    Merci !


  • < #4 > cumul de critères ˆ
    par Nass - 16 mars 22:59

    ... eh ben non ça marche pas ^^ il n’affiche plus aucun article.

    1. #SET{articlesfrance,#ARRAY}
    2. <BOUCLE_articles_rubriquefr(ARTICLES){id_rubrique IN 4}>
    3. #SET{articlesfrance,#GET{articlesfrance}|push{#ID_ARTICLE}}
    4. </BOUCLE_articles_rubriquefr>
    5. <BOUCLE_articles_mot(ARTICLES){titre_mot=france}>
    6. #SET{articlesfrance,#GET{articlesfrance}|push{#ID_ARTICLE}}
    7. </BOUCLE_articles_mot>
    8.  
    9. <BOUCLE_ligne (ARTICLES) {id_article IN #GET{articlesfrance}}{par date}{inverse}{doublons}{pagination 20}>
    10. [(#COMPTEUR_BOUCLE|alterner{'<tr>',''})]
    11. <td width="50%">
    12. <h3 class="entry-title"><a href="#URL_ARTICLE" rel="bookmark">#TITRE</a></h3>
    13. <abbr class="published"[ title="(#DATE|date_iso)"]>[(#DATE|affdate{'d/m/Y'})]</abbr>
    14. [<div class="logo_col">(#LOGO_ARTICLE|#URL_ARTICLE|image_reduire{145,145})</div>]
    15. [<div class="#EDIT{intro} introduction entry-content">
    16. <a href="#URL_ARTICLE" rel="bookmark">(#INTRODUCTION|couper{300})</a></div>]
    17. </td>
    18. [(#COMPTEUR_BOUCLE|alterner{'','</tr>'})]
    19. </BOUCLE_ligne>

    Télécharger


  • < #5 > cumul de critères ˆ
    par erational - 17 mars 09:05

    Globalement le code semble bon
    Après des 2 #SET fais un [(#GET{articlesfrance}|foreach)] pour vérifier si ton tableau n’est pas vide.

    Ensuite tu as a un critère {doublons} qui peut poser problème. Peux tu le supprimer pour voir ?


  • < #6 > cumul de critères ˆ
    par Nass - 20 mars 09:18

    Bon, ce n’est pas doublons, par contre j’avance.
    En ajoutant la ligne GET foreach , donc après les SET et juste avant la BOUCLE LIGNE, l’écran reste vide. J’ai même ajouté un texte aaaaa bbbbb tout bête mais rien ne s’affiche.
    Par contre, à partir du moment où j’enlève la condition de tri principale id_article IN #GETarticlesfrance, le reste s’affiche (le foreach etc.)
    Je crois que mon problème peut venir du fait qu’il y a un tableau par-dessus tout ça.

    Le code actuel, qui n’affiche strictement rien à l’écran :

    1. <table class="colonne colrubr">
    2.  
    3. #SET{articlesfrance,#ARRAY}
    4. <BOUCLE_articles_rubriquefr(ARTICLES){id_rubrique IN 4}>
    5. #SET{articlesfrance,#GET{articlesfrance}|push{#ID_ARTICLE}}
    6. </BOUCLE_articles_rubriquefr>
    7. <BOUCLE_articles_mot(ARTICLES){titre_mot=france}>
    8. #SET{articlesfrance,#GET{articlesfrance}|push{#ID_ARTICLE}}
    9. </BOUCLE_articles_mot>
    10. aaaaa</br>
    11. [(#GET{articlesfrance}|foreach)]
    12. bbbbb</br>
    13. <BOUCLE_ligne (ARTICLES){id_article IN #GET{articlesfrance}}{par date}{inverse}{doublons}{pagination 20}>
    14. [(#COMPTEUR_BOUCLE|alterner{'<tr>',''})]
    15. <td width="50%">
    16. <h3 class="entry-title"><a href="#URL_ARTICLE" rel="bookmark">#TITRE</a></h3>
    17. <abbr class="published"[ title="(#DATE|date_iso)"]>[(#DATE|affdate{'d/m/Y'})]</abbr>
    18. [<div class="logo_col">(#LOGO_ARTICLE|#URL_ARTICLE|image_reduire{145,145})</div>]
    19. [<div class="#EDIT{intro} introduction entry-content">
    20. <a href="#URL_ARTICLE" rel="bookmark">(#INTRODUCTION|couper{300})</a></div>]
    21. </td>
    22. [(#COMPTEUR_BOUCLE|alterner{'','</tr>'})]
    23. </BOUCLE_ligne>
    24. [(#TOTAL_BOUCLE|alterner{'<td></td></tr>',''})]
    25. </table>

    Télécharger

    Si à ce code j’enlève {id_article IN #GET{articlesfrance}} tout s’affiche :

    aaaaa
    - 0=> 51
    - 1=> 96
    (etc.)
    bbbbb

    puis en-dessous tous les articles avec le bon formatage en tableau de deux colonnes à 50/50 - mais du coup pas les bons articles ^^


  • < #7 > cumul de critères ˆ
    par erational - 21 mars 09:18

    le code est bon ... tu es sur d’avoir des articles publiés dans la rubrique 4 ou avec le mot-clé "france" ?


  • < #8 > cumul de critères ˆ
    par Nass - 21 mars 09:45

    Oui, j’ai vérifié.
    Autre piste, je fais ces essais hors réseau avec ZMWS (le meilleur et le plus portable des serveurs que je connaisse), mais je sais que ce n’est plus maintenu depuis un moment voire des années, est-ce que les SET et GET font appel à des fonctions PHP qui ne sont pas prises en charge ?


  • < #9 cumul de critères ˆ
    par Nass - 21 mars 09:46

    ... pourtant la commande GET avec foreach fonctionne




Répondre à la question

« cumul de critères »

Mots-clés

Vous pouvez étiqueter cette page de forum avec les mots-clés qui vous semblent les plus appropriés ; ils permettront aux prochains visiteurs du site de mieux se repérer :


Installation, mise à jour

Utilisation de l’espace privé

Administration, gestion, configuration du site

Créer ses squelettes

Qui êtes-vous ?