Plugin séances

Dans la gestion d’événements, il arrive d’avoir à mettre en rapport un spectacle (film, concert ou autre), un lieu et une date. Il est alors possible d’envisager plusieurs modes de présentation : pour un spectacle donné, les dates et lieux de celui-ci, de même à partir d’une date donnée, ou d’un lieu déterminé.
Ce plugin s’adresse plutôt aux sites de programmation culturelle ou événementielle (festival ou autre) pour la tenue de leur agenda de spectacles, films,…

Pour ce plugin, un spectacle (film, concert, conférence,…) est défini par un article. Le plugin rajoute la possibilité de définir les endroits (lieux, salles, scènes,…) eux-mêmes rattachables en option à un article. Les séances sont définies par un article de rattachement, un endroit et une date (avec éventuellement une remarque supplémentaire). Seule la date de début est définie. Une rubrique est alors comparable à une section, une thématique, ou à l’ensemble de la programmation.

Installation

Comme tout plugin. Celui-ci installe deux nouvelles tables spip_seances et spip_seances_endroits. Il ajoute également un champ “seance” sur la table spip_rubrique.

Fonctionne à partir de spip-2.0.10 inclus.
Compatible Champs Extra 2.

Désinstallation - désactivation

On peut soit désactiver (dans ce cas décocher simplement l’activation du plugin), les tables sont alors conservées, soit désinstaller en cliquant sur le lien correspondant (les tables sont alors supprimées).

Utilisation

Définir un endroit (obligatoire).
Il est obligatoire de définir au moins un endroit.
Dans “Édition” > “Séances / endroits”
Un endroit est défini au minimum par son titre. On peut lui adjoindre un descriptif ou le rattacher à un article. Les noms des endroits peuvent être numérotés “x.” pour définir des priorités dans l’affichage (voir plus loin).

Définir les endroits
Définir les endroits
Liste des endroits des séances
Liste des endroits des séances
Formulaire de saisie pour les endroits
Formulaire de saisie pour les endroits


Définir des séances
Il est nécessaire pour cela d’activer le mode “séances” pour la rubrique.
Ceci étant fait, pour chaque article de celle-ci on pourra alors définir des séances.

Activer les séances
Activer les séances
(dans la colonne de gauche)
Désactiver les séances
Désactiver les séances


Remarque : la désactivation du mode séances pour une rubrique supprime les séances enregistrées pour tous les articles de celle-ci. Cette action est immédiate, elle constitue donc un moyen de supprimer toutes les séances d’une rubrique.
Le mode séance n’est pas hérité par les rubriques filles. Il faudra donc l’activer pour chaque rubrique d’une branche éventuellement.

Pour chaque article de la rubrique il est alors possible de définir des séances.

Listes des séances définies
Listes des séances définies
Formulaire de définition d'une séance
Formulaire de définition d’une séance


Les séances peuvent être dupliquées (pratique lorsque seul un élément est modifié, jour, lieu par exemple)
Il est possible de supprimer une séance ou toutes les séances d’un article.

Remise à zéro
En fin de saison il peut être utile de supprimer toutes les séances de tous les articles. Pour cela dans “configuration” choisir “Configuration plugin séances” et supprimer toutes les séances enregistrées. cela ne désactive pas le mode séance pour les rubriques où il est activé.

Réinitialiser les séances
Réinitialiser les séances


Dans les squelettes

La boucle SEANCES
<BOUCLEn(SEANCES){critères...}>

les critères de la boucle SEANCES

  • id_seance sélectionne la séance dont l’identifiant est id_seance. Comme l’identifiant de chaque séance est unique, ce critère ne retourne qu’une ou zéro réponse.
  • id_article sélectionne toutes les séances associées à un article.
  • date_seance ou age_seance sélectionne toutes les séances d’une date donnée ou d’un age donné (positif ou négatif) age_seance = 0 pour aujourd’hui par exemple ou age_seance <= 0 pour l’avenir.
  • id_endroit sélectionne toutes les séances se déroulant dans un endroit donné (ou dans une sélection d’endroits avec le critère IN)

par extension
id_rubrique sélectionne toutes les séances de tous les articles contenus dans une rubrique. (utile si une rubrique représente un genre, une section d’un festival,…).

statut restreint l’affichage des séances à celles rattaché à un article publié.

<BOUCLEn(SEANCES){id_rubrique}{age_seance <= 0}{statut = publie}{par date_seance}>

les balises de la boucle SEANCES

  • #ID_SEANCE
  • #ID_ARTICLE : id de l’article de rattachement de la séance
  • #ID_ENDROIT : id de l’endroit rattaché à la séance
  • #DATE_SEANCE tous les filtres de date sont applicables à #DATE_SEANCE
  • #REMARQUE_SEANCE : remarque éventuelle sur la séance (“en présence du réalisateur”, “Attention, exceptionnellement…”.

Exemple : affichage des dates d’un spectacle donné (donc des séances rattachées à un article donné). Dans une boucle englobante de type ARTICLES :

<B_dates><ul>
<BOUCLE_dates (SEANCES) {id_article}{par date_seance}>
[<li>(#DATE_SEANCE|affdate) - [(#DATE_SEANCE|heures)]h [(#DATE_SEANCE|minutes)]</li>]
</BOUCLE_dates>
</ul></B_dates>

La boucle SEANCES_ENDROITS
<BOUCLEn(SEANCES_ENDROITS){critères...}>

Les critères

  • id_endroit id de l’endroit
  • id_article id de l’article éventuellement rattaché à un endroit
  • nom_endroit nom de l’endroit

Les balises

  • #NOM_ENDROIT : nom de l’endroit
  • #ID_ENDROIT : son id
  • #ID_ARTICLE : id de l’article décrivant plus précisément l’endroit éventuellement
  • #DESCRIPTIF_ENDROIT : descriptif de l’endroit.

Filtres du plugin séances

|heure_seance [(#DATE_SEANCE|heure_seance)] est équivalent à [(#DATE_SEANCE|heures)]h[(#DATE_SEANCE|minutes)], avec un format d’affichage plus convivial (20h au lieu de 20h00).

|heure_fin_seance le nom de ce filtre n’est pas forcément le plus approprié, mais il détermine la date de fin d’une séance à partir de sa date de début et de sa durée. Cette dernière peut être stockée dans un champ de l’article correspondant au film, au concert ou autre. Cette donnée peut être passée sous la forme 1h30, 1.30, 1,30, 1:30 (pour 1 heure 30).
[(#DATE_SEANCE|heure_fin_seance{#SUR_TITRE})] si la durée est stockée dans le sur-titre de l’article.

Les dates et les âges

les critères age et age_relatif sont applicables aux séances avec age_seance et age_relatif_seance. Ainsi on pourra utiliser {age_seance < 0} pour obtenir les séances à venir.

À partir de spip 3.0.8, les requêtes sql ont été modifiées et simplifiées. Le critère {age = 0} retourne les séances ayant lieux dans les 24 heures avant et après la requête.
Pour avoir les séances du jour, il est possible d’utiliser une expression du type

en dehors d'une boucle 
[(#SET{aujourdhui,[(#DATE|affdate{'Y-m-d'})]})]

puis dans une boucle sur la table SEANCES avec ou sans jointure
<BOUCLE_a (SEANCES)....{date_seance like #GET{aujourdhui}%}....>

Les jointures.

Il est possible de faire des jointures principalement sur la table spip_articles.

Exemple afficher les 5 prochains spectacles par ordre de date avec leur titre et les endroits de celles-ci. La jointure sur la table seances_endroits se fera automatiquement dans ce cas.

<B_prochains><ul>
<BOUCLE_prochains (SEANCES articles){age_seance <= 0}{par date_seance}{0,5}{statut=publie}>
<li>[(#TITRE)] [(#DATE_SEANCE|affdate)] - [(#DATE_SEANCE|heure_seance)] - [(#NOM_ENDROIT)]</li>
</BOUCLE_prochains>
</ul></B_prochains>

Afficher les dates et lieux d’un spectacle donné

<B_lesseances><ul>
<BOUCLE_lesseances (SEANCES seances_endroits){id_article}{par date_seance}{statut=publie}>
	<li>[(#DATE_SEANCE|affdate)] - #NOM_ENDROIT - #REMARQUE_SEANCE*</li>
</BOUCLE_lesseances>
</ul></B_lesseances>

Afficher les séances des spectacles d’une rubrique donnée.

<BOUCLE_lesseances (SEANCES seances_endroits){id_rubrique}{par date_seance}{statut=publie}>
	<li>[(#TITRE)] - [(#DATE_SEANCE|affdate)] - #NOM_ENDROIT - #REMARQUE_SEANCE*</li>
</BOUCLE_lesseances>

Voir dans le dossier tests du plugins pour d’autres exemples de boucles.

Squelettes définis par le plugin

flux rss
rss_seances_article, rss_seances_rubrique, rss_seances fournissent respectivement les flux rss pour un article, une rubrique ou tout le site. (On pourra les modifier pour qu’ils affichent les séances à venir ou toutes les séances passées et à venir).

l’appel se fait classiquement par #URL_PAGE dans le contexte d’un article ou d’une rubrique pour les deux premiers.

// dans le contexte d'un article
[(#URL_PAGE{rss_seances_article,id_article=#ID_ARTICLE})]
// dans celui d'une rubrique
[(#URL_PAGE{rss_seances_rubrique,id_rubrique=#ID_RUBRIQUE})]
// pour tout les séances du site
[(#URL_PAGE{rss_seances})]

agenda ical
De même ical_seances_article, ical_seances_rubrique, ical_seances fournissent respectivement les agenda au format iCalendar auxquels on peut s’abonner via le client ou le service en ligne adéquat (ical, lithning, netvibes,…) pour un article, une rubrique ou tout le site.
En outre un squelette ics_seance (sans S) permet de télécharger un fichier au format .ics, que l’on peut importer ou ajouter à la volée dans son agenda favori.

Les méthodes d’appel sont semblables à celles des fluxx rss.

Dans les deux cas (flux rss et ical) si aucune séance n’est définie, les squelettes ne retournent rien et produisent donc une erreur 404.

À faire

Gestion plus fine des autorisations (avec cfg ?).
Compatibilité Champs Extra 2 À partir de la version 1.1

Plugin disponible sur la zone

Merci à Matthieu pour ses chats et programmer spip
Merci à Cédric pour la partie activation des séances sur une rubrique inspirée du plugin agenda.

updated on 31 July 2020

Discussion

31 discussions

  • 10

    bonjour
    je galere avec une boucle

    je souhaite afficher
    la date J
    -  séance 1
    -  séance 2
    -  séance 3
    -  séance 4

    date j+1
    -  séance 1
    -  séance 5
    -  séance 2
    -  séance 3

    merci de votre aide

    • Bonjour

      Date J = aujourd’hui ?
      si c’est en spip2, le critère {age_seance = 0} fonctionne, sinon la méthode pour spip 3 est donnée au dessus, pour j+1 en spip2 (et en spip 3, pas testé) {age_seance=-1} (on est dans l’avenir). (donc faut deux boucles peut-être).

      Mais le mieux serait de proposer ton code pour proposer des corrections.

    • bonjour
      mon code c’est


      [(#DATE_SEANCE|affdatenom_jour)] (#DATE_SEANCE

      [(#INFO_TITRErubrique, #ID_SECTEUR)] [(#TITRE)] de (#DATE_SEANCE à #DATE_FIN2

      désolé j’ai pas fait le ménage
      oui jour J c’est aujourd’hui

    • <ul>
      <BOUCLE_date(SEANCES){par date_seance}>
      <li>[(#DATE_SEANCE|affdate{nom_jour})] [(#DATE_SEANCE|affdate)]</li>
      <li><BOUCLE_articlesommaire(SEANCES articles){date_seance}><li><div[ style="background:#(#LOGO_RUBRIQUE||couleur_extraire{0, 0});display:block;float:left;width:20px;height:20px;margin:2px"]></div>
      <h10>[(#INFO_TITRE{rubrique, #ID_SECTEUR})]</h10>  [(#TITRE)] de [(#DATE_SEANCE|heure_seance)] &agrave;  #DATE_FIN2</li>
      </BOUCLE_articlesommaire></li><br>
      </BOUCLE_date>
      <ul>
    • Il faut utiliser le critère {age_seance} comme indiqué dans ma première réponse.
      Dans le plugin tu as un dossier “tests-exemples” et dedans le fichier “seances-test.html” où tu trouveras des exemples de boucle utilisant ce critère (pour fournir les prochaines séances par titre ou les 5 prochaines).

    • dans la boucle date ou articlesommaire?

    • ça me met ça!!!
      j’aimerai regroupé niveau date et pas repété, piou je galere

      lundi 4 août 2014
      Espace scientifique technique & découverte Web radio de 10h à 20h

      samedi 16 août 2014
      Espace sport & santé Gym d’entretien de 10h à 12h

      samedi 16 août 2014
      Espace scientifique technique & découverte Web radio de 12h15 à 17h

      samedi 16 août 2014
      Espace sport & santé Cyber cuisine de 15h45 à 18h
      Village du jeu Livre et jeux de 15h45 à 18h

      samedi 16 août 2014
      Espace sport & santé Cyber cuisine de 15h45 à 18h
      Village du jeu Livre et jeux de 15h45 à 18h

      samedi 16 août 2014
      Espace lecture & détente Atelier petite enfance de 15h50 à 20h

      lundi 18 août 2014
      Espace sport & santé Gym d’entretien de 1h à 12h

      lundi 18 août 2014
      Espace sport & santé Cyber cuisine de 1h45 à 18h

      lundi 18 août 2014
      Espace lecture & détente Atelier petite enfance de 3h50 à 20h

      lundi 18 août 2014
      Village du jeu Livre et jeux de 15h45 à 18h

      lundi 18 août 2014
      Espace lecture & détente Atelier petite enfance de 15h50 à 20h

      mardi 19 août 2014
      Espace sport & santé Cyber cuisine de 13h45 à 14h

    • Avec un filtre [(#DATE_SEANCE|unique)], ça devrait le faire. Tu n’auras plus la répétition des jours quand c’est le même.

    • bonjour merci beaucoup c’est presqe parfait

      maintenant car j’aime bien me compliquer la vie
      comment faire pour que le nom du jour ne se répete pas dans mon listing [(#DATE_SEANCE|nom_jour|unique)] [(#DATE_SEANCE|affdate_jourcourt|unique)] mais soit quand même visible pour la suite du mois?
      peut etre fusionner les deux codes?

      merci beaucoup

    • Peut-être mais attention avec |unique. Il faudra peut-être les différencier avec |unique{date1} et |unique{date2}.
      Voir tous les détails dans la doc sur le filtre unique

    • bonjour ça me met pareil

      jeudi 21 août
      Espace scientifique technique & découverte Web radio de 12h15 à 17h
      Espace scientifique technique & découverte Web radio de 16h15 à 17h
      vendredi 22 août
      Espace scientifique technique & découverte Web radio de 12h15 à 17h
      lundi 20 juillet 2015
      Espace sport & santé Gym d’entretien de 10h à 12h
      mardi 21 juillet 2015
      Espace sport & santé Gym d’entretien de 10h à 12h
      mercredi 22 juillet 2015
      Espace sport & santé Gym d’entretien de 10h à 12h
      besoin du jour 23 juillet 2015
      Espace sport & santé Gym d’entretien de 10h à 12h
      besoin du jour 4 août 2015
      Espace sport & santé Gym d’entretien de 10h à 12h
      besoin du jour 5 août 2015
      Espace scientifique technique & découverte Web radio de 10h à 20h

    Reply to this message

  • bonjour merci mr domiw bah j’ai creér un nouveau dossier squelletes et j’ai copier le dossier squellettes_dist dans le dossier nouveau (squellette) quand j’actualise le site il m’affiche bcp des erreurs ex :
    Warning: include_once(C:\wamp\www\spip/mes_fonctions.php) [function.include-once]: failed to open stream: No such file or directory in C:\wamp\www\spip\ecrire\inc\autoriser.php on line 45

    Warning: include_once(C:\wamp\www\spip/mes_fonctions.php) [function.include-once]: failed to open stream: No such file or directory in C:\wamp\www\spip\ecrire\public\parametrer.php on line 21

    Warning: include_once(C:\wamp\www\spip/squelettes-dist/formulaires/recherche.php) [function.include-once]: failed to open stream: No such file or directory in C:\wamp\www\spip\ecrire\inc\utils.php on line 943

    aidez moi svpp c urgentt !!

    Reply to this message

  • 1

    salut a tous le plugin est activé tres bien mais il s’affiche pas au site principale les séances et les dates ne sont pas afichés dans les articles au site principale svp comment faire pour les afficher et merci d’avances

    Reply to this message

  • Le Jaseur Boreal

    Bonjour,

    Est-ce que quelqu’un a utilisé ce Plugin “séances” en utilisant conjointement les points géolocalisés définis par GIS4 - http://contrib.spip.net/GIS-4 ?

    Un point géolocalisé de GIS4 étant attaché à un article pour signifier un lieu sur une carte avec sa description et les coordonnées..

    Or les séances sont définies par un article de rattachement, un endroit et une date.

    Merci de vos conseils.

    Reply to this message

  • 2

    Bonjour et bravo pour ce plugin,
    je recherche un compromis entre celui là et ORR

    Je fais de l’animation soirée et je loue également mon matériel, la mise en place de Séance me donne cela indiquant les dates où le matériel n’est pas dispo pour éviter de le choisir (la boucle disparait si le matériel n’est pas réservé, bien sur).

    ORR ne permet pas de faire une liaison avec les articles alors que Séances oui mais Séance ne permets pas d’indiquer une date de début et une date de fin. Ce que j’aimerais vraiment ...

    Est-il possible lorsqu’une séance est crée de la voir sur les autres articles afin de ne pas recréer autant de séances que d’article?

    Je m’explique, je souhaiterais créer une séance (dans mon cas une résa) et pouvoir pour les autres articles de la rubrique l’avoir en choix.

    Enfin c’est déjà beaucoup et je n’ai fais que critiquer, mais je souhaite courage aux Spipiens qui n’ont pas les pieds dans le sable!

    Cordialement, Alain

    • Bonjour
      On touche là un débat sur l’utilisation des plugins. Pour ton besoin ORR est tout indiqué, séances étant construit pour un autre type d’utilisation. Pour lier une ressource à un article (ce qui n’est pas prévu par ORR) à priori j’utiliserais champs extra, en créant un champ id_article. Champs extra est justement construit pour cela, compléter spip ou un plugin.

      A priori pour les plugins pour spip3, si ils sont correctement déclarés au niveau des tables utilisées, champs extra est utilisable sans autre forme. Du coup tu aurais tes dates début et fin et ton lien avec les articles. C’est à tester (et si ça fonctionne à indiquer dans la doc de ORR).

    • Bonjour et merci pour cette réponse, elle s’ajoute à ma réflexion sur mes besoins réels.

      Cela me gêne de recréer un champ pour l’id_article!

      Pour les dates début et fin, c’est plus la disponibilité du matériel en interne (dates d’enlèvement et de retour), qui ne concerne pas les visiteurs (idée en cours d’abandon)

      J’ai actuellement un système de résa en php qui permet, après sélection des articles, d’estimer le coût de la location du matériel pour ensuite réserver en précisant une date et les coordonnées du demandeur. (dans une table créée pour ces besoins)

      Il faut que je travaille sur l’affichage de ces dates pour les matériels concernés (articles spip)

      Bonne continuation.

    Reply to this message

  • Cinéma LUX

    Bonjour,
    je rencontre un souci avec la gestion des dates. Apparemment cela vient de la gestion des dates de spip. Afficher une séance d’une journée devient impossible avec le critère age_séance=0. Les séances renvoyées sont celles de deux journées chevauchées.

    Cela pose également souci lorsque on travaille sur une semaine de cinéma du mercredi au mardi. Les mardis et mercredis sont “fusionnées”.

    Ce bug de gestion du temps avec les versions > spip 3 est assez problématique....

    Quelqu’un aurait t’il une idée ?

    merci d’avance !

    Reply to this message

  • 5
    Mestoph

    Super plugin, mais à quand une migration sur SPIP3... j’ai bien essayé, mais cela dépasse largement mes compétences de bidouilleur...

    Merci d’avance pour les pros de la prog’ qui arriveront à faire migrer ce plugin !

    • Cinéma LUX

      J’essaye d’adapter ce plugins à SPIP3 et je rencontre quelques soucis.
      -  J’ai crée le fichier paquet.xml via plugonet pour que le plugins soit visible par spip3, ça marche.
      -  quand j’active le plugins, souci... les tables sql spip_seances, spip_seances_endroits et la modif de tables spip_rubriques ne s’écrivent pas dans la base.
      -  en bidouillant la base et en créant les tables à la main, le bug se corrige en partie mais impossible de faire une quelconque action depuis l’espace privé... activation du plugins sur une rubrique impossible, création d’une séance impossible...

      Quelqu’un aurait-il avancé sur l’adaptation de ce plugins sur SPIP3 ? ....

    • Comme je l’avais dit plus bas (enfin avant) je comptais m’attaquer à la migration pour spip 3 ce printemps (mais l’hivers dure encore :-(( ).

      Pour la déclaration des tables la procédure a changé entre spip2 et spip3 (avec le paquet xml ce sont certaines choses qui ont été changées). Pour écrire ce plugin j’avais suivi le pas à pas de Marcimat sur son plugin chat. Comme il en a fait une mise à jour pour spip3, tu peux regarder de ce côté pour les exemples . Plugin chat pour spip3

    • Cinéma LUX

      Merci pour la réponse.
      J’ai essayé de faire comme tu me l’as proposé avec le plugins fabrique, malheureusement, avec le spip 3.0.8 le tutorial “chat” ne marche pas chez moi... il me sort des erreurs à foison...

      Je continue à creuser la question quand même, le plugins séances pourrait être d’une grande utilité pour notre futur site !

    • Finalement j’ai bossé hier soir :-)) même si le printemps n’est pas encore là.
      J’ai une version test à commiter, mais j’ai un pb d’identification sur la zone pour faire les manips.
      Cela m’a l’air fonctionnel même si il y a des choses à affiner dans la présentation et à tester. (le plugin s’installe, on active les séances sur les rubriques et on les crées).

      Soit tu patientes que j’ai résolu mes problèmes soit je t’envoies un zip en privé (dans ce cas tu peux me constacter en privé). Ce serait bien d’avoir des retour de tests.

    • Cinéma LUX

      Super ! il me tarde de tester cela !

    Reply to this message

  • 1
    MCyrille

    Bonjour tout le monde.
    Je découvre Spip depuis quelques temps, et j’avoue que j’ai un peu de mal à m’en servir comme je le voudrais.
    Et il se trouve que je n’arrive pas à faire fonctionner le plugin séances...
    Je crée bien la salle de cinéma, j’active les séances sur la rubrique. Ensuite je crée un article et je lui attribut des séances.
    Maintenant comment je peux faire pour que cela s’affiche ?
    Petite précision, j’ai juste installé le plugin, je n’ai pas fais d’autre modification.

    En tout cas merci beaucoup d’avance.

    Cordialement,

    MCyrille

    • Si il fonctionne donc bien, mais pour afficher les données du côté public il faut écrire quelques boucles et modifier par exemple le squelettes article (dans la logique spip on ne modifie pas les fichiers de squelettes-dist, on le duplique dans un dossier squelettes et on le modifie).

      Des exemples sont donnés dans le présent article ci-dessus (voir par exemple la partie sur les balises de la boucles séances).

      Après, cela dépend de tes besoins, pas forcément nécessité de modifier le squelette article.html, tu peux créer un modèle que tu déposes dans /squelettes/modeles/. Par exemple le modèle seances.html avec le code du premier exemple de boucle donné ci-dessus.
      Tu pourras ensuite appeler au coup par coup sur chaque article le modèle par la balise <seances|id_article=xxx> où xxx est l’id de l’article ou tu colles ce code (car les modèles de spip 2.1 ne récupèrent pas l’environnement à ce niveau, il faut leur passer explicitement) ou de l’article dont tu veux afficher les séances.

    Reply to this message

  • bonjour,

    j’ai commencé à adapter le plugin pour spip3, mais je n’arrive pas à faire apparaitre le bouton “activer les seances pour cette rubrique” sur les pages rubrique de l’interface privée.

    Quelqu’un-e aurait une piste ?

    merci

    Reply to this message

  • 4
    eyeless

    Bonjour

    Je tenais à remercier l’auteur de ce module qui m’a bien servi pour créer le site du ciné-club dont je fait parti.

    Ici l’adresse du site http://culture-et-cinema.com

    Merci encore

    • Bonjour,

      Comment faîtes-vous pour afficher l’agenda du mercredi au samedi seulement ?
      Horaires de la semaine en cours & Horaires des prochaines séances ?

      Merci.

    • Bonjour

      On doit pouvoir travailler avec les âges le critère age_seance devant fonctionner.

      // numéro du jour courant dans la semaine (0 pour le dimanche, 1 le lundi,…
      [(#SET{lejour,[(#VAL{w}|date{})]})]
      // age de debut pour la plage
      [(#SET{age_debut,[(#VAL{3}|moins{#GET{lejour})]})]
      // age de fin pour la plage
      [(#SET{age_fin,[(#VAL{7}|moins{#GET{lejour})]})]
      
      et pour les boucles on a alors
      
      <BOUCLE_a (SEANCES){age_seance <= #GET{age_debut}}{age_seance > #GET{age_fin}}{...}>

      On prend la fin au dimanche pour avoir le samedi en entier avec une inégalité stricte sur l’age de fin.
      Pour la semaine suivante il suffit de remplacer 3 par 10 et 7 par 14.

      Une autre solution est de définir une fonction qui donne les dates des jours de la semaine courante en fonction du numéro du jour.

      Dans mes_fonctions.php définir

      function jour_semaine($lejour = 0){
      	// jour = numero du jour de la semaine
      	// dimanche= 0, lundi = 1, mardi = 2, mercredi = 3,...
      	$jour = date('d');
      	$mois = date('m');
      	$an = date('Y');
      	// numero du jour en cours
      	$num_jour = date('w');
      	
      	$date = mktime(0, 0, 0, $mois, $jour-$num_jour+$lejour, $an);
      	return date('Y-m-d H:i:s',$date);
      }

      On peut alors l’utiliser avec

      [(#SET{date_debut,[(#VAL{3}|jour_semaine)]})]
      [(#SET{date_debut,[(#VAL{7}|jour_semaine)]})]
      et
      <BOUCLE_a (SEANCES) {date_seance >= #GET{date_debut}} {date_seance < #GET{date_fin}} {...}>

      On travaille alors directement avec les dates des séances. Avantage on peut même utiliser
      [(#VAL{3}|jour_semaine|affdate)] pour afficher la date du mercredi par exemple. De même on décale de 7 jours pour la plage suivante.

      Dis-nous si cela fonctionne.

    • Merci j’essaye ça.

    • Du coup comment créer un calendrier avec les séances ?

    Reply to this message

Ajouter un commentaire

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom