[Résolu] Lister tous les événements d'un article dans une rubrique

Bonjour, je souhaiterais faire apparaître tous les événements d’un article dans une liste.
Je m’explique : j’ai une liste d’ateliers auxquels j’ai attribué des événements à venir.
Je souhaiterais que dans la rubrique atelier la page affiche la liste des ateliers avec en dessous toutes les dates correspondantes.

Je suis piètrement arrivée à lister les événements, mais c’est bien tout. La page est par ici Ateliers - Café Associatif "Baba Yaga"

Et voici mes boucles.


                            	<BOUCLE_atelier(EVENEMENTS){evenement_a_venir}{par date}{statut=publie} {id_rubrique==7}>
                                   <div  style="float:left; width:200px; height:150px; margin-right:20px; overflow:auto;">#LOGO_ARTICLE</div>
                                    
                                
                                    <div  style="padding-bottom:20px;">
                                        <h4 style="text-align:left"><a href="#URL_ARTICLE" style="font-weight:700;">#TITRE</a></h4>
                                        [<strong>(#DATE_DEBUT|Agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE})</strong>]
                                        <BR />
                                        #INTRODUCTION
                                    </div>
                                    
								</BOUCLE_atelier>

Autre question, j’aimerais qu’une fois l’événement passé, la date ne soit plus affichée (idéalement) ou au moins que l’article ne soit plus listé lorsque tous les événements qui le concernent sont passés.

Merci beaucoup pour votre aide et votre temps. J’avoue être bien perdue, alors que la solution est probablement évidente.

Je pense qu’il te faut une boucle ARTICLES avec {id_rubrique} dans laquelle tu mets une boucle EVENEMENTS avec {id_article}

Le critère {evenement_a_venir} que tu utilises est justement là pour ne pas afficher les évènements passés.

Alors, j’ai modifé ma boucle, mais le résultat n’est pas le bon. J’ai probablement fait une erreur.

<BOUCLE_article2(ARTICLES) {id_rubrique}>
                   			 
                  
                            	<BOUCLE_atelier(EVENEMENTS){evenement_a_venir}{par date}{statut=publie} {id_article}>
                                   <div  style="float:left; width:200px; height:150px; margin-right:20px; overflow:auto;">#LOGO_ARTICLE</div>
                                    
                                
                                    <div  style="padding-bottom:20px;">
                                        <h4 style="text-align:left"><a href="#URL_ARTICLE" style="font-weight:700;">#TITRE</a></h4>
                                        [<strong>(#DATE_DEBUT|Agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE})</strong>]
                                        <BR />
                                        #INTRODUCTION
                                    </div>
                                    
								</BOUCLE_atelier>
                         	
                    		</BOUCLE_article2>

Et voici ce qu’on obtient :

Bonsoir,

Cela affiche bien des évènements à venir donc quel est le problème ? Cela affiche des événements non lier à cet article ?

Le problème est que je veux que dans la rubrique ateliers apparaissent les différents ateliers avec sous le titre de l’atelier les différents événements et non pas que chaque événement apparaîsse de façon distincte.

En clair, que l’on obtienne :

Handpan

Samedi 27 septembre de 16h30 à 18h00
Samedi 25 octobre de 16h30 à 18h00
À partir de 10 ans. 10 euros.

Et si tu fais quelque chose comme

<BOUCLE_article2(ARTICLES) {id_rubrique}>
 <div  style="float:left; width:200px; height:150px; margin-right:20px; overflow:auto;">#LOGO_ARTICLE</div>
<h4 style="text-align:left"><a href="#URL_ARTICLE" style="font-weight:700;">#TITRE</a></h4>   			 
     <BOUCLE_atelier(EVENEMENTS){evenement_a_venir}{par date}{statut=publie} {id_article}>
      <div  style="padding-bottom:20px;">
[<strong>(#DATE_DEBUT|Agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE})</strong>]
     </div>
</BOUCLE_atelier>
#INTRODUCTION
</BOUCLE_article2>
1 « J'aime »

Alors, il y a du mieux, mais également du moins bien.

Les événements multiples apparaissent bien sous le titre de l’article, mais les ateliers qui n’ont pas d’événements apparaissent aussi, ce que je ne souhaite pas. Le but, c’est que l’utilisateur voie ce qui est possible à l’instant T.

Ah là ça va être plus compliqué. Je pense qu’il faut jouer avec les jointures de table mais ce n’est pas ma spécialité. Faut que je fasse des tests.
Ou alors un plus féru que moi aura la solution.

1 « J'aime »

Simplement ajouter les balises <B_ et </B_ de la boucle EVENEMENTS pour conditionner tous les affichages à la présence d’un événement.

En reprenant le code cité plus haut :

<BOUCLE_article2(ARTICLES) {id_rubrique}>
<B_atelier>
<div  style="float:left; width:200px; height:150px; margin-right:20px; overflow:auto;">#LOGO_ARTICLE</div>
<h4 style="text-align:left"><a href="#URL_ARTICLE" style="font-weight:700;">#TITRE</a></h4>   			 
     <BOUCLE_atelier(EVENEMENTS){evenement_a_venir}{par date}{statut=publie} {id_article}>
      <div  style="padding-bottom:20px;">
[<strong>(#DATE_DEBUT|Agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE})</strong>]
     </div>
</BOUCLE_atelier>
#INTRODUCTION
</B_atelier>
</BOUCLE_article2>
1 « J'aime »

Super, ça a résolu mon problème.
Merci beaucoup pour votre aide. J’ai pu résoudre d’autres problèmes grâce à vos réponses.

1 « J'aime »

Arf, bien sûr, tout simplement.
Bien vu JLuc

Salut,

tu peux faire une jointure entre les tables ARTICLES et EVENEMENTS pour afficher la liste des articles dans l’ordre chronologique des leurs événements :

#SET{date,#DATE}
<ul class="liste-items">
<BOUCLE_agenda(ARTICLES)
				{id_rubrique}
				{evenements.statut=publie}
				{par evenements.date_debut}
				{evenements.date_fin > #GET{date}}>
    <li class="item">ce que tu veux afficher</li>
</BOUCLE_agenda>
</ul>
  • #SET{date,#DATE} : rentrer la date du jour dans une variable pour l’utiliser dans la boucle ARTICLES (sinon, ça sera la date de création de l’article qui sera prise en compte)
  • {evenements.statut=publie} : n’afficher que les événements publiés et faire la jointure avec la table evenements.
  • {par evenements.date_debut} : trier par date de début des événements
  • {evenements.date_fin > #GET{date}}> : n’afficher que les articles dont au moins un événement n’est pas encore terminé (date/heure de fin > à date/heure actuelle)

Ensuite, tu peux faire une boucle EVENEMENTS dans le <li> pour afficher la liste des événements liés à l’article.