Créer un tableau (table) d'événements

Bonsoir à tous,
Je me heurte à un problème a priori trivial, mais pour lequel je ne trouve pas de solution simple depuis quelques heures maintenant…

J’ai une liste d’événements organisé chronologiquement, sans répétition = Je n’ai jamais 2 événements au même moment (à la même heure).
Je souhaite les ranger dans un tableau (un bon vieux table).

Je parviens à faire l’affichage ci-dessous, à plat (sans cellules de tableau)

mercredi 19 avril 14:30
jeudi 20 avril 14:30
vendredi 21 avril 17:00 20:00
samedi 22 avril 14:30
lundi 24 avril 14:30 17:00
mardi 25 avril 14:30
jeudi 27 avril 14:30 20:30

Tableau à 4 colonnes :

  • 1ère colonne, la date du jour (en affichage unique) / Ca, j’y arrive
  • 2ème colonne, l’événement du jour entre 13.00 et 15.59, s’il y en a un, sinon, cellule vide.
  • 3ème colonne, l’événement du jour entre 16.00 et 18.59, s’il y en a un, sinon, cellule vide.
  • 4ème colonne, l’événement du jour entre 19.00 et 21.59, s’il y en a un, sinon, cellule vide.

Le hic, c’est que lorsque j’effectue mes contrôles conditionnels sur la balise #DATE, j’effectue les 3 contrôles sur les colonnes 2, 3 et 4 à chaque tour de boucle EVT => J’écris une nouvelle ligne pour chaque evt, or je souhaiterais rester dans la même ligne…

Bref, je cherche quelque chose du type « case » en php.
J’ai bien vu qu’un plugin SPIP existait pour simuler la fonction php CASE, mais je suis sûr qu’il y a moyen de faire plus simple, non ?

2ème question, existe-t-il un filtre de test permettant de comparer une balise à plusieurs valeurs ?
Pour l’instant, j’utilise [(#DATE|affdate{H}|=={14}|?{« oui »,« non »})]
Mais j’aimerais quelque chose du style [(#DATE|affdate{H}|=={13,14,15}|?{« oui »,« non »})]
J’ai bien vu le filtre in_any, mais cela ne semble pas approprié…
Merci !

Bonsoir,

Pour le dernier point, [(#DATE|affdate{H}|in_array{#LISTE{13,14,15}}|?{« oui »,« non »})] devrait le faire je pense.

Merci, je vais me tester ça !

En fait, je me rends compte que mon problème est bien moins trivial qu’il n’y paraissait.
L’idée, c’est que je souhaite obtenir des alignements parfaits de mes horaires d’evts : 1 colonne pour 14h30, 1 pour 17h00, 1 pour 20h, mais que je me heurte à un problème de tableau source incomplet (certaines cellules sont vides, car certains evts n’ont pas lieu sur certaines tranches horaires, certains jours).
Bref, pour pouvoir organiser les 3 evts possibles d’une ligne, il faut que cette ligne ait « conscience » de ces cellules vides.
Un remplissage au fur et à mesure n’est pas possible…

Une idée serait peut-être de ne pas passer par un tableau mais de donner un class ccs différente selon la tranche horaire et d’avoir 3 divs avec des marges différentes.

Merci pour l’idée CSS.
Je vais me simplifier la vie et partir là-dessus, en décalant, légèrement vers la gauche mes evts qui démarrent avant 17h et vers la droite mes evts qui démarrent après 17h, le tout avec un margin CSS (class CSS dérivée de l’heure de l’evt).
Les evts pile à 17h restent en place.
Visuellement, ça suffira à différencier mes 3 tranches horaires possibles.
Merci !