captain_torche Posté 15 Décembre 2006 Posté 15 Décembre 2006 Je suis en train d'essayer de limiter les résultats de boucle aux articles ayant un surtitre différent. Mes surtitres sont de la forme aaaa-mm-jj, et je souhaiterais faire une première boucle affichant quatre jours, tous différents (donc quatre surtitre différents), pour ensuite faire une nouvelle boucle listant tous les articles correspondant à chaque surtitre. Comment pourrais-je le réaliser ? Actuellement, ma boucle est de la forme : <BOUCLE_dates(ARTICLES){par surtitre}{surtitre>=(#DATE|couper{10})}{0,4}> qui fonctionne parfaitement, mais ne me groupe pas les surtitres identiques. J'ai bien essayé les filtres "unique" et "doublons", mais ils ne changent rien. Le filtre "unique", utilisé dans les résultats de la boucle, fonctionne bien mais supprime juste les résultats ayant un titre identique, ce qui fait que je n'ai plus mes 4 résultats. Je précise également, au cas où, que je n'ai pas la main sur la structure des articles : je ne peux rien modifier de ce côté-là. Je précise également que je suis sous SPIP 1.8.3. Merci d'avance !
Loupilo Posté 15 Décembre 2006 Posté 15 Décembre 2006 Je ne comprends pas trop... * Pourquoi mettre la date dans le surtitre ? * "pour ensuite faire une nouvelle boucle listant tous les articles correspondant à chaque surtitre" : comment tu fais correspondre des articles à un surtitre ?
captain_torche Posté 15 Décembre 2006 Auteur Posté 15 Décembre 2006 Le surtitre correspond à la date d'un évènement. Ne me demande pas pourquoi, c'est comme ça (Je travaille sur une base existante, et je ne peux rien modifier de ce côté). Comme le surtitre est une date (ex: 2006-12-15), et qu'il peut y avoir plusieurs articles possédant ce surtitre, il me suffit de faire ensuite une boucle du type <BOUCLE_articles(ARTICLES){surtitre=#SURTITRE}> à l'intérieur de la boucle précédente. Le tout étant d'obtenir quelque chose du genre: 2006-12-15 - Evenement 1 - Evenement 2 2006-12-16 - Evenement 3 - Evenement 4 - Evenement 5
Loupilo Posté 15 Décembre 2006 Posté 15 Décembre 2006 Ben moi je ferai ça, est-ce que c'est ce que tu as fait ? <BOUCLE_dates(ARTICLES){par surtitre}{surtitre>=(#DATE|couper{10})}{0,4}><BOUCLE_articles(ARTICLES){surtitre=#SURTITRE}>[<h2>(#SURTITRE|unique)</h2>]#TITRE</BOUCLE_articles></BOUCLE_dates>
captain_torche Posté 15 Décembre 2006 Auteur Posté 15 Décembre 2006 J'ai essayé, et ça fonctionne à moitié Si je suis dans le cas que j'ai cité, j'ai deux articles avec le surtitre "2006-12-15", et trois avec le surtitre "2006-12-16". La boucle que tu me montres me fait ressortir les deux articles du 15 et deux articles du 16, aucun du 17 ni 18 (ce que j'aimerais pouvoir faire : tous les articles du 15 au 18).
Loupilo Posté 16 Décembre 2006 Posté 16 Décembre 2006 Ok, dont faut virer la limite {0,4}. Ensuite, pour ne récupérer que les articles des 4 derniers jours, c'est assez délicat. Le critère {age} est fait pour ça, mais vu que les dates sont dans les surtitres, ça aide pas. Je ferai donc un peu de PHP, quelque chose comme ça : <?php$quatrejours = time() - 4 * 24 * 3600;$date = date("Y-m-d",$quatrejours);?><BOUCLE_dates(ARTICLES){par surtitre}><?phpif ([(#SURTITRE|textebrut)] >=$date) {?>[<h2>(#SURTITRE|unique)</h2>]#TITRE<?php}?></BOUCLE_dates> Je n'ai pas testé, et je ne sais pas si ça va fonctionner, notamment au niveau du if...
captain_torche Posté 16 Décembre 2006 Auteur Posté 16 Décembre 2006 Je regarde ça lundi, et je te tiens au courant. Merci beaucoup de t'être penché dessus, en tout cas. Et je dois t'avouer que ton petit memento (spip libre) m'est très utile
Loupilo Posté 16 Décembre 2006 Posté 16 Décembre 2006 Je regarde ça lundi, et je te tiens au courant. Merci beaucoup de t'être penché dessus, en tout cas. Et je dois t'avouer que ton petit memento (spip libre) m'est très utile Avec plaisir Tiens nous au courant !
captain_torche Posté 16 Décembre 2006 Auteur Posté 16 Décembre 2006 Je suis en train d'y penser : ne serait-il pas plus facile de créer un filtre spécifique, la fonction "spip_abstract_select" prévoyant déjà le GROUP BY ?
captain_torche Posté 19 Décembre 2006 Auteur Posté 19 Décembre 2006 Bon, bah apparemment ça n'a pas fonctionné. Je cherche encore à regarder au niveau du code, mais je n'arrive pas à rajouter un filtre dans la boucle.
Loupilo Posté 22 Décembre 2006 Posté 22 Décembre 2006 Bon, bah apparemment ça n'a pas fonctionné. Pour quelle raison ? Erreur PHP ? Page blanche ? Pas le résultat escompté ?
captain_torche Posté 22 Décembre 2006 Auteur Posté 22 Décembre 2006 Page blanche Il ne me retournait tout simplement pas le résultat escompté. De toutes façons, on va arrêter de se prendre la tête dessus : l'organisation de la page a changé
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant