Ah, le mélange de plusieurs objets éditoriaux dans une même boucle c’est un peu particulier.
C’est faisable dans une certaine mesure en passant par une boucle DATA.
Le principe c’est de mettre en amont les données dans un tableau associatif, puis ensuite de faire une boucle DATA pour les afficher dans l’ordre souhaité.
Donc dans un 1er temps on fait une boucle pour chaque objet éditorial en complétant le tableau au moyen de #SET.
Dans cet exemple je prends des articles et des brèves, à adapter avec des articles syndiqués dans ton cas.
En clés du tableau on met la date sous la forme d’un entier avec strtotime, ce qui permettra de faire le tri dessus après. Et comme valeurs c’est une sous-tableau avec toutes les balises nécessaires (j’y remets #DATE aussi pour simplifier plus tard).
Nb : édité pour une indentation plus lisible
Donc là si tu fais un [(#GET{listing}|var_dump)]
tu obtiens un tableau de la sorte :
Et pour afficher tout ça, il suffit de faire une boucle DATA en triant selon les clés :
Quand je disais « dans une certaine mesure », c’est qu’il y a des limites :
- Impossible d’avoir 2 contenus différents publiés exactement au même moment (à la seconde près) : le dernier va écraser la clé dans le tableau. Cas rare mais pas impossible.
- strtotime ne fait pas de différence avec les dates antérieures au 1er janvier 1970. Là pour des articles syndiqués ou des brèves le cas ne devrait pas se présenter, mais pour d’autres objets éditoriaux ça pourrait : des livres pour lesquels #DATE serait la date de parution par exemple.
- Dans l’exemple ci-dessus on triche un peu car articles et brèves ont des balises identiques, mais d’un objet à l’autre ça peut fortement varier. Cela dit, la balise
#VALEUR{truc}
ne produit pas d’erreur si la clé « truc » n’existe pas, donc ça devrait aller.