Aller au contenu

Sujets conseillés

Posté

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 !

Posté

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 ?

Posté

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

Posté

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>

Posté

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).

Posté

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}>
<?php
if ([(#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...

Posté

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 ;)

Posté
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 !

Posté
Bon, bah apparemment ça n'a pas fonctionné.

Pour quelle raison ? Erreur PHP ? Page blanche ? Pas le résultat escompté ?

Posté

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é ;)

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...