boucle trier sur critère calculé (#DATE_REDAC ou #DATE)

Bonjour,

Je souhaite filtrer les articles d’une rubrique selon une date qui serait la date de rédaction antérieure ou si elle n’existe pas la date de publication

avec ce critière
<BOUCLE_articles(ARTICLES) {id_rubrique} {par date_redac} {inverse} {pagination}>
les articles sans date de rédaction sont relégués en bas du classement

Comment puis-je intégrer le test sur l’existence de la date de rédaction dans le critère ? ou comment trier sur un critère calculé ?

Ou bien comme assigner automatiquement une date de rédaction antérieure au moment de la création de l’article ?

Un truc comme {par date, date_redac} devrait faire le job cf {par ...} - SPIP

1 « J'aime »

Meri pour la réponse, mais si je comprends bien (d’après la page d’explications) et mes tests avec {par date, date_redac} on applique d’abord le premier critère puis le second.

Or je voudrais classer les articles selon la date de rédaction #DATE_REDAC sauf dans le cas où elle n’est pas valorisée et dans ce cas considérer la date de publication #DATE.

Bonjour
J’avais eu un peu un besoin similaire avec « date de modification manuelle » (plugin du même nom).
Je l’avais résolu par le critère de tri suivant :

{!par LEAST(date_modif_manuelle, date_modif)}

Ce qui pour ton cas devrait être :

{!par LEAST(date_redac, date)}

À essayer ?

1 « J'aime »

L’utilisation du critère nécessite l’installation du plugin ?

Non, non dans ton cas « date_redac » et « date » sont d’origine dans spip.

1 « J'aime »

Est-ce que LEAST existe par défaut sur SPIP sans installation de plugin?

Oui, je l’aurais précisé sinon. Son contraire est GREATEST.

Je pensais qu’il s’agissait d’un mot clé SPIP alors qu’il s’agit d’un mot-clé MySQL.

L’expression ne fonctionne pas : à mon avis parce que pour certains articles, il n’existe pas de date_redac n’existe pas.

J’ai essayé ces deux variantes en vain

<BOUCLE_articles(ARTICLES) {id_rubrique} {!par LEAST(COALESCE(date_redac, ‹ 0000-00-00 ›),date)}{pagination}>

<BOUCLE_articles(ARTICLES) {id_rubrique} {!par LEAST(COALESCE(date_redac,0),date)}{pagination}>