Formulaire de participation à un événement

Cet article tente de rassembler des informations au sujet de l’affichage d’un formulaire de participation aux événements gérés par le plugin Agenda développé par Cédric Morin.

La version 2 du plugin Agenda permet d’afficher dans l’espace public des formulaires de participation aux événements. Cette fonctionnalité est incomplète, mais utilisable.

Voici à quoi ressemble le formulaire sur une page de l’espace public en utilisant les squelettes par défaut de SPIP :

Capture d’écran d’un formulaire de participation à un événement

Les utilisateurs [1] ont la possibilité de répondre j’y serai, j’y serai peut-êre ou je n’y vais pas.

Il est possible de limiter le nombre de places disponibles. Dans ce cas, quand l’événement est complet, les utilisateurs en sont tenus informés par un message et le formulaire n’est plus affiché, sauf pour les utilisateurs connectés ayant déjà répondu j’y serai de manière à leur permettre de se désinscrire et de libérer éventuellement une place.

Si l’utilisateur revient au cours de sa visite sur la page du formulaire, sa réponse reste affichée.

Le plugin ne permet pas encore l’affichage des réponses dans l’espace privé, mais elles peuvent être consultées dans la table spip_evenements_participants en base de données.

Par ailleurs, l’inscription est valable sur toute la durée de l’événement, y compris si l’événement se produit avec des répétitions.

Affichage du formulaire

Le formulaire s’affiche dans un squelette grâce à la balise #FORMULAIRE_PARTICIPER_EVENEMENT{#ID_EVENEMENT} [2] à condition qu’elle soit incluse dans une boucle de type EVENEMENTS. Par exemple, dans le squelette article.html, vous pouvez rajouter la boucle suivante pour afficher les événement liés à l’article et les formulaires de participation associés :

<BOUCLE_evenement(EVENEMENTS){id_article}>
	<p>#TITRE</p>
	#FORMULAIRE_PARTICIPER_EVENEMENT{#ID_EVENEMENT}
</BOUCLE_evenement>

Notez que la boucle ne doit pas se trouver dans un INCLURE statique, faute de quoi le formulaire ne sera pas rafraîchi à chaque consultation de la page par l’utilisateur. Autrement dit, si au lieu de placer la boucle directement dans article.html, vous souhaitez la placer dans un squelette nommé formulaire-evenement.html, n’utilisez pas [(#INCLURE{fond=formulaire-evenement})] pour appeller ce squelette depuis article.html, mais <INCLURE{fond=formulaire-evenement}> [3].

Par ailleurs, la balise #FORMULAIRE_PARTICIPER_EVENEMENT étant un formulaire CVT (charger, vérifier, traiter), vous pouvez bénéficier du chargement du formulaire en AJAX en encapsulant la balise dans une div de classe ajax.

<div class='ajax'>
#FORMULAIRE_PARTICIPER_EVENEMENT
</div>

L’insertion de la balise #FORMULAIRE_PARTICIPER_EVENEMENT{#ID_EVENEMENT} dans vos squelettes ne suffit pas. Pour que le formulaire s’affiche, vous devez cocher la case « inscription en ligne » du formulaire de saisie de l’événement. Vous avez également la possibilité de saisir un nombre de places si celui-ci est limité.

Formulaire de saisie d’un événement avec une inscription en ligne

Sauvegarde des réponses dans la base de données

Les réponses sont stockées en base de données dans la table spip_evenements_participants, créée à l’installation du plugin. Elle comporte les champs suivants :

  • id_evenement
  • id_auteur
  • date
  • reponse
La table spip_evenements_participants dans phpMyAdmin

Le champ reponse peut prendre les valeurs suivantes :

  • ’oui’ (si la réponse est « j’y serai »)
  • ’non’ (si la réponse est « je n’y vais pas »)
  •  ?’ (si la réponse est « j’y serai peut-être »)

La seule façon d’identifier l’auteur d’une réponse est donc id_auteur. Il vaut donc mieux inciter les utilisateurs n’ayant pas de compte de rédacteur ou d’administrateur à créer un compte sur votre site et à se connecter avant de répondre. Cette connexion préalable est d’autant plus nécessaire que dans le cas où un utilisateur ne serait pas connecté, sa réponse serait enregistrée sous l’id_auteur zéro et sa réponse perdue par l’enregistrement de la réponse du prochain utilisateur non connecté.

Pour vérifier si l’utilisateur est connecté, vous pouvez essayer de modifier formulaires_participer_evenement_verifier_dist, en rajoutant après $reponse = _request('reponse'); le test suivant :

if ($GLOBALS['visiteur_session']['id_auteur'] == 0)
$erreurs['reponse'] = "Pour signaler votre participation a l'evenement vous devez etre connecte sur le site. Si vous n'avez pas encore de compte, veuillez en creer un.";

et en remplaçant if (!($reponse=_request(’reponse’)) suivant par elseif (!($reponse=_request(’reponse’)).

Si vous hésitez à autoriser des inconnus à se connecter à votre site, notez que SPIP vous donne la possibilité de créer des auteurs nommés « visiteurs », n’ayant pas accès à l’espace privé. Ce type d’auteur est généralement utilisé pour permettre à des utilisateurs de poster des messages dans des forums après abonnement. Pour autoriser l’inscription des visiteurs, allez dans Configuration > Interactivité > Visiteurs puis cochez la case Accepter l’inscription de visiteurs du site public.

Les balises #FORMULAIRE_INSCRIPTION et #LOGIN_PUBLIC vous permettront d’afficher le formulaire d’inscription et le formulaire permettant à vos utilisateurs de s’identifier tout en restant sur le site public [4]. Vous pouvez afficher la liste des visiteurs dans Auteurs puis en cliquant sur Afficher les visiteurs.

Affichage des inscriptions

Le formulaire d’inscription étant une fonctionnalité en cours de développement du plugin Agenda, il n’est pas encore possible de visualiser les inscriptions dans l’espace privé. Vous pouvez toutefois visualiser le contenu de la table spip_evenements_participants avec un outil comme phpMyAdmin si votre hébergeur l’a mis à votre disposition.

Par contre, il est possible d’afficher dans l’espace public la liste des auteurs inscrits à un événement en rajoutant dans le squelette article.html une boucle du type :

<BOUCLE_evenement(EVENEMENTS){id_article}>
<BOUCLE_personnes_inscrites(spip_auteurs spip_evenements_participants){id_evenement}{par nom}> 
#NOM 
</BOUCLE_personnes_inscrites>
</BOUCLE_evenement>

La boucle utilise deux fonctionnalités de SPIP :

  • la possibilité d’interroger une table de la base de donnée pour laquelle aucun alias n’a été déclaré (ce qui est le cas actuellement pour la table spip_evenements_participants). Par exemple, l’alias de la table spip_articles est ARTICLES (en majuscules), ce qui permet d’écrire <BOUCLEx(ARTICLES)> au lieu de <BOUCLEx(spip_articles)>.
  • les jointures : la table spip_evenements_participants ne contient pas le nom des auteurs qui se trouve dans la table spip_auteurs, c’est pourquoi la boucle fait appel à ces deux tables pour créer une jointure [5].

Etude du code du formulaire

Pour revenir à la balise #FORMULAIRE_PARTICIPER_EVENEMENT, celle-ci est un formulaire CVT (charger, vérifier, traiter). Vous trouverez donc dans le dossier formulaires à la racine du plugin, le squelette participer_evenement.html et le script participer_evenement.php contenant les fonctions :

  • formulaires_participer_evenement_charger_dist($id_evenement)
  • formulaires_participer_evenement_verifier_dist($id_evenement)
  • formulaires_participer_evenement_traiter_dist($id_evenement)

La fonction formulaires_participer_evenement_charger_dist est exécutée avant l’affichage du formulaire pour vérifier si l’événement passé en paramètre par #FORMULAIRE_PARTICIPER_EVENEMENT{#ID_EVENEMENT} existe réellement et qu’une inscription en ligne est bien prévue pour cet événement (la case « Inscription en ligne » est bien cochée dans le formulaire de saisie de l’événement). Si ce n’est pas le cas, le formulaire n’est pas affiché. Sinon, la fonction vérifie si un nombre de places a été défini et le cas échéant, calcule si l’événement est complet ou non. Les réponses ’oui’ ont un poids de 1 et les réponses ’peut-être’ un poids de 0,5. La somme des réponses ’peut-être’ est arrondie à l’entier supérieur. Par exemple, si deux personnes ont répondu ’oui’ et trois personnes ’peut-être’, on considère que (2 x 1) + arrondi(3 x 0,5) = 4 places ont été réservées. Si l’événement est complet, le message "evenement complet" est affiché et le formulaire ne s’affiche que si l’utilisateur (identifié par $GLOBALS['visiteur_session']['id_auteur']) a déjà répondu ’oui’ de manière à lui permettre de se désinscrire et de libérer éventuellement une place.

Si le formulaire est affiché et que l’utilisateur clique sur le bouton d’envoi, la fonction formulaires_participer_evenement_verifier_dist prend le relais pour vérifier que l’utilisateur a bien coché une des propositions, faute de quoi le message « Indiquez votre choix » est affiché. Si l’événement est complet et que l’utilisateur qui avait préalablement répondu ’non’ ou ’peut-être’ change sa réponse pour ’oui’, on affiche le message ’Plus de places’.

Si aucun message d’erreur n’est affiché, les réponses sont traitées par formulaires_participer_evenement_traiter_dist qui met à jour ou insère dans la base de donnée la réponse de l’utilisateur puis affiche un message de confirmation de prise en compte de la réponse.

Notes

[1Nous préférons à « visiteur » le terme d’« utilisateur » pour désigner une personne qui consulte votre site. En effet, dans le jargon de SPIP, un visiteur est un auteur qui peut avoir des droits pour participer à des forums, par exemple, mais qui ne peux pas accéder à l’espace privé et modifier le contenu du site.

[2Attention, il est important d’utiliser la balise #ID_EVENEMENT et non pas le critère {id_evenement}, faute de quoi le code ne sera pas valide.

[3Pour connaitre les différences entre les INCLURE statiques et dynamiques, consultez <INCLURE> d’autres squelettes.

[4Pour en savoir plus sur les formulaires, consultez l’article éponyme sur le site officiel.

[5Pour en savoir plus sur les jointures, voir programmer.spip.org.

Discussion

15 discussions

  • 1

    Bonjour,

    je souhaite qu’un email soit envoyé à l’auteur de l’événement lorsqu’un utilisateur s’inscrit. Existe-t-il un plugin ? Une aide quelconque pour cette mise en place ? Merci !

    Répondre à ce message

  • 3
    Spipmalion

    Bonjour,

    <BOUCLE_evenement(EVENEMENTS){id_evenement=2}>
            <p>#TITRE</p>
            #FORMULAIRE_PARTICIPER_EVENEMENT{#ID_EVENEMENT}
    </BOUCLE_evenement>

    N’affiche pas le formulaire de participation à l’événement

    Hors ceci l’affiche (dans une boucle article) :

    <BOUCLE_evenement(EVENEMENTS){id_article}>
            <p>#TITRE</p>
            #FORMULAIRE_PARTICIPER_EVENEMENT{#ID_EVENEMENT}
    </BOUCLE_evenement>

    Ai-je manqué quelque chose ?

    • Spipmalion

      je ne sais pas comment j’avais fait pour afficher quelque chose, maintenant

      #FORMULAIRE_PARTICIPER_EVENEMENT{#ID_EVENEMENT}

      n’affiche plus rien dans aucun des cas.

      Bien situé dans une boucle evenements et bien coché « Inscription en ligne ».

      Quelqu’un utilise cette fonctionnalité ?

    • formatec

      L’insertion de la balise #FORMULAIRE_PARTICIPER_EVENEMENT#ID_EVENEMENT dans vos squelettes ne suffit pas. Pour que le formulaire s’affiche, vous devez cocher la case « inscription en ligne » du formulaire de saisie de l’événement.

    • Le formulaire de participation à un événement ne s’affiche que pour les événements futurs (logique hein ?). Il faut donc s’assurer que l’événement n’est pas passé.

      Sur la balise qui entoure le formulaire sur une page article, on peut donc mettre :

      <BOUCLE_evenement(EVENEMENTS){id_article}{inscription=1}{!evenement_passe}>

    Répondre à ce message

  • 1

    Bonjour,
    j’ai installé ce formulaire de participation sur mon site de gestion des partitions d’un orchestre. Les membres peuvent s’inscrire à une date de prestation. Ca a bien marché pendant plusieurs mois mais là , depuis qq semaines, j’ai un pb d’affichage lors de la mise à jour.
    Quand on valide un choix (j’y serai, j’y serai peut être ou je n’y serai pas) , l’info est bien affichée sur l’écran dans un 1er temps, mais lorsqu’on passe sur une autre page, puis que l’on revient sur l’événement mis à jour, alors là, on n’a plus l’info !
    Je suis allée vérifier dans la table spip_evenement_participant, et il semble que l’info soit bien mise à jour. De fait, quand on clique sur « Recalculer cette page », la participation apparaît correctement.
    Ce qui me fait dire qu’il s’agirait peut être d’un pb de mémoire cache... mais j’avoue que je sèche un peu sur la solution à appliquer pour résoudre ce pb. A part aller dans la partie privée dans « Maintenance » puis « Vider le cache » (ce qui n’a pas résolu le pb), je ne sais pas quoi faire de plus...
    Est-ce que quelqu’un aurait une idée ?
    Merci de votre aide

    • Bonjour,
      pas évident à débusquer sans voir le squelette lui même, mais il y a une notice qui peut expliquer ce problème de non mise à jour, cf vers le début de l’article :
      « Notez que la boucle ne doit pas se trouver dans un INCLURE statique, faute de quoi le formulaire ne sera pas rafraîchi à chaque consultation de la page par l’utilisateur. » et la suite, qui explique comment faire un (dynamique) au lieu d’un #INCLURE (statique).

    Répondre à ce message

  • 3

    Bonjour ,

    Se plugin permet-il de réserver plusieurs places pour un événement (ex le membre du site plus des invités) ?
    si non, en connaissez vous un autre ou comment modifier le plugin actuel ?

    merci

    • C’est étrange ; je travaille à quelque chose du genre actuellement :) Mais ce ne sera pas sur la zone avant janvier prochain... Mais si le coeur vous en dit, vous pouvez alpha-tester (comme c’est en chantier/dev ça bouge pas mal et je n’offre pas de garantie)

    • je suis intéressé, quel est le nom de ce dev ???

    • Frederic Pairot

      Bonjour ce travail a-t-il abouti ? Si oui, le résultat m’intéresse fortement !

      Merci d’avance

    Répondre à ce message

  • Bonjour,

    Je suis sous Zpip, Spip 2.1.12 et tout passe dans la boucle placée dans squelettes/contenu/article.htm, sauf :

    #FORMULAIRE_PARTICIPER_EVENEMENT{#ID_EVENEMENT}

    C’est peut être juste parce c’est pour Spip 2.0 et que la fonction ne fonctionne pas en Spip 2.1.12, mais je tente ma chance ;)

    Bonne journée !

    <B_lesevenements>
    <h3 class="spip">&Eacute;v&egrave;nements associ&eacute;s</h3>
    <BOUCLE_lesevenements(EVENEMENTS) {par date} {id_article}>
      [(#DATE_DEBUT|jour|=={[(#DATE_FIN|jour)]}|?{
     le [(#DATE_DEBUT|nom_jour)] [(#DATE_DEBUT|affdate)]
    [(#HORAIRE|=={oui}|?{
      [(#REM) memes heures ?]
    					[(#DATE_DEBUT|=={#DATE_FIN}|?{&agrave
    [(#DATE_DEBUT|heures)]h[(#DATE_DEBUT|minutes)],''})]
      [(#REM) pas memes heures ?]
    					[(#DATE_DEBUT|!={#DATE_FIN}|?{de
    [(#DATE_DEBUT|heures)]:[(#DATE_DEBUT|minutes)] &agrave;
    [(#DATE_FIN|heures)]:[(#DATE_FIN|minutes)],''})]
    ,''})]
    ,
     du [(#DATE_DEBUT|nom_jour)] [(#DATE_DEBUT|affdate)]
    [(#HORAIRE|=={oui}|?{&agrave; partir de
     [(#DATE_DEBUT|heures)]H[(#DATE_DEBUT|minutes)],''})] au
    [(#DATE_FIN|nom_jour)]
     [(#DATE_FIN|affdate)] [(#HORAIRE|=={oui}|?{jusqu'&agrave;
     [(#DATE_FIN|heures)]H[(#DATE_FIN|minutes)],''})]  })]
    <p> #LIEU </p>
    <p> #ADRESSE </p>
    <p> #DESCRIPTIF </p>
    [(#INSCRIPTION|?{' ',''})<p class="inscrits">#NB_INSCRITS[/(#PLACES) ]<:agenda:inscrits:></p>]
    #FORMULAIRE_PARTICIPER_EVENEMENT{#ID_EVENEMENT}
      </BOUCLE_lesevenements>
    </B_lesevenements>

    Répondre à ce message

  • 6

    Bonjour,

    Le formulaire d’inscription ne semble pas gérer les répétitions à un événement ?

    Comment prendre en charge les répétitions et enregistrer la bonne date pour l’inscription ?

    Merci.
    Florent

    • Bonjour,

      Comment tester si un événement demande une inscription obligatoire ? J’ai essayé différentes solutions avec

      formulaires_participer_evenement_charger_dist 

      ...mais sans succès. ( J’aimerais charger le formulaire de login uniquement sur les événements obligatoire lorsque l’internaute n’est pas logué.)

    • Bonjour,

      Comme indiqué au début de l’article, la fonctionnalité ne gère pas les répétitions. Mais tu peux toujours en faire la suggestion à Cédric qui a développé le plugin.

    • Pour tester si l’utilisateur est connecté, essaye de rajouter dans formulaires_participer_evenement_verifier_dist, après $reponse = _request('reponse'); le test suivant :

      if ($GLOBALS['visiteur_session']['id_auteur'] == 0)
      $erreurs['reponse'] = "Pour signaler votre participation a l'evenement vous devez etre connecte sur le site. Si vous n'avez pas encore de compte, veuillez en creer un.";

      et remplace if (!($reponse=_request(’reponse’)) suivant par elseif (!($reponse=_request(’reponse’)).

    • C’est bien ce petit bout de fonction en plus. On conserve néanmoins un souci ergonomique :

      L’internaute tente de s’inscrire, puis déchu par un message d’erreur, il doit d’une part créer un compte, puis revenir sur la page pour confirmer son inscription à l’événement. Trop tordu pour que celà fonctionne je pense.

      Une forme de surcharge du formulaire d’inscription ne serait-elle pas plus judicieuse ? Le genre « créez un compte et en même temps vous serez inscrit ».

    • C’est sûr que la rustine proposée n’est qu’une piste à améliorer. Cependant, quand on regarde d’autres sites comme celui du Sundance Festival, ils ont plutôt tendance à séparer l’inscription au site de l’utilisation de fonctionnalités comme l’ajout de séances de films à un agenda personnel.

      De toutes façons, cet article n’est qu’une contribution à la documentation du plugin. Si tu as des suggestions, tu peux toujours les soumettre aux développeurs sur le forum du plugin.

    • Je n’avais pas vu que nous avions le même besoinn :) Une mise à jour récente corrige le problème de l’auteur non connecté en invitant gentiment à se connecter pour pouvoir s’inscrire :)
      Je pense aussi que l’inscription doivent rester distinct car servant à des tas d’autre chose. . Par contre, il est tout à fait possible de proposer les champs de connexion/identification (login et mot de passe) lorsque l’auteur n’est pas connecté, mais je pense que c’est une complexité (en gestion comme en affichage) qui n’est pas du ressort du formulaire par défaut (qui doit rester simple et générique et servir de base pour diverses adaptations par mécanisme de surcharge)

      Pour les événements répétés, je pense que ce n’est pas au formulaire de base (qui doit rester générique et simple) de s’en occuper (mais aux surcharges perso ou de plugin). En effet, les répétitions ne forment pas toujours une suite (par exemple une formation sur plusieurs jours) mais souvent bien des répétitions au sens premier (par exemple un spectacle sur plusieurs dates), et on peut choisir de s’inscrire indépendamment pour une date ou une autre :/ (dans le cas du spectacle par exemple, on choisit une —ou plusieurs— date—s— mais on n’est pas contraint à toutes les représentations...)

    Répondre à ce message

  • 2

    Bonjour,

    D’après mes recherches, on ne peut pas limiter l’affichage du formulaire d’inscription à une date limite d’inscription à un évènement. Comment peut on mettre cette solution en place ?
    Est ce prevu pour une version future ?
    merci et bravo pour le travail accompli !

    • Je résous simplement ce problème en indiquant par un texte : Clôture des inscriptions en date du : .... On peut aussi ajouter une boucle qui fait disparaitre le formulaire à date du début -10.

      <BOUCLE_evenements(EVENEMENTS?){id_article}{statut=publie}{par date_fin}{age_debut<=10}> (non testé mais quelque chose dans ce goût.)[(#FORMULAIRE_PARTICIPER_EVENEMENT{#ID_EVENEMENT})]</BOUCLE_evenements>
      Pas d'inscription possible pour cet événement. <//B_evenements>
    • Le formulaire ne s’affichait pas s’il n’y a pas d’inscription en ligne. Avec la dernière mise à jour, elle ne s’affiche pas non plus quand l’événement est passé (avant cela c’était le cas si les inscriptions sont permises et du coup on pouvait s’inscrire à des événements passés....) Pour ce faire, c’est la date de fin qui est testée car sur des événements durant plusieurs jours certains organismes acceptent des inscriptions en cours... (dites à la dernière minute) C’est vrai qu’un paramétrage plus poussé (par exemple 10 jours avant la fin) serait bienvenu :/ En attendant la solution de Artlogic fait l’affaire (sauf le message « Pas d’inscription possible pour cet événement. » qui n’est pas utile à mon avis et en tout cas rompt la cohérence)

    Répondre à ce message

  • 6

    Bonjour

    Je déplace ce message posté par erreur sur la page du plugin Agenda.

    J’utilise le plugin agenda et notamment la fonction qui permet de s’inscrire en ligne. Sur ce point, il y a deux choses qui ne vont pas :
    -  quand on s’est inscrit à un événement, la phrase « votre participation est enregistrée » s’affiche". Mais si on recharge la page plus tard, cette phrase n’apparaît plus, alors que ce serait bien qu’elle s’affiche dès lors que l’auteur identifié est déjà inscrit.
    -  l’ordre d’affichage des événements soumis à inscriptions, quand il y en a plusieurs pour le même article, n’est pas clair : ainsi j’ai cinq événements sur un article, avec cinq dates différentes, et ils apparaissent dans le désordre : le 9:12, le 18/11, le 3/12, le 28/10 et le 25/11. Comment faire pour qu’ils apparaissent dans l’ordre chronologique (le plus ancien d’abord) ?

    Merci d’avance

    • J’ai testé votre solution, à savoir modifier la boucle événement, celle qui se trouve dans le dossier contenu et dans le squelette page-agenda.html (si c’est bien celle-là), comme ceci :

      <BOUCLE_ev(EVENEMENTS){!par date_debut}{!evenement_passe #ENV{date_debut,#ENV{date}}}{!evenement_a_venir #ENV{date_debut,#ENV{date}}|agenda_moisdecal{1,'Y-m-d H:i:00'}}{id_article?}{id_rubrique?}{id_mot?}{id_evenement_source?}>

      En enlevant la balise par date_debut et en la remplaçant par  !par date_debut.

      Je n’ai noté aucun changement. Les dates des événements sont toujours affichées dans le désordre.

      Pourriez-vous me dire si c’est bien cette boucle événement qu’il fallait modifier ?

    • Je ne saurai hélas pas dire comme ça... Si dans le corps de cette boucle il y a #FORMULAIRE_PARTICIPER_EVENEMENT
      Je peux essayer de jeter un coup d’oeil, mais je ne sais pas quelle version du plugin regarder (si ce squelette est bien fourni avec)

    • Je viens d’installer la révision 54757 du 21 novembre d’Agenda 2.0.

      Je n’arrive pas à trouver dans quel squelette le tri des événements se fait. En testant, par défaut ils s’affichent dans l’ordre de création, les dates des événements ne sont pas prises en compte. J’ai essayer de feinter en attribuant un numéro de tri au titre de chaque événement, mais ça ne change rien...

      Dans le dossier formulaires du plugin, j’ai bien trouvé un squelette participer_evenement.html, mais ça ne gère l’affichage que d’un seul événement, pas de plusieurs...

    • J’ai trouvé, enfin !
      C’était tellement simple que je n’y avais pas pensé.
      La boucle à modifier se trouve tout simplement dans le squelette article.html (dans zpip, c’est dans le dossier Contenu) :

      <BOUCLE_evenement(EVENEMENTS){id_article}{par date_debut}>
              <p>#TITRE</p>
              #FORMULAIRE_PARTICIPER_EVENEMENT{#ID_EVENEMENT}
      </BOUCLE_evenement>

      Il faut donc ajouter {par date_debut} pour trier dans l’ordre chronologique ou {! par date_debut} dans l’ordre inverse.

    • ah, il s’agissait d’un squelette zpip (comme je disais, je ne pouvais pas le deviner ; mais le soucis est résolu une fois qu’on a trouvé la bonne boucle..) Content que ce soit résolu :)

    Répondre à ce message

  • 16

    Pour afficher les participants, la boucle suivante semble fonctionner :

    <BOUCLE_personnes_inscrites(spip_auteurs spip_evenements_participants){par nom}>
    	#NOM
    </BOUCLE_personnes_inscrites>
    • Bonjour,

      Je confirme : ça fonctionne très bien aussi avec inscription2 pour les champs supplémentaires :

      <BOUCLE_auteurs(spip_auteurs spip_evenements_participants spip_auteurs_elargis){par nom}{id_evenement}>
            #REPONSE #NOM_FAMILLE #PRENOM #PROFESSION #SOCIETE #TELEPHONE #EMAIL
      </BOUCLE_auteurs>

      dd

    • <BOUCLE_personnes_inscrites(spip_auteurs spip_evenements_participants){par nom}>
              #NOM
      </BOUCLE_personnes_inscrites>

      Cette boucle me retourne tous les auteurs du site sans qu’il y ai besoin d’être inscrit. Il doit y avoir un petit os.

    • Oups, je me suis trompé, il manque le critère {id_evenement} à la boucle personnes_inscrites. Voici la boucle corrigée :

      <BOUCLE_personnes_inscrites(spip_auteurs spip_evenements_participants){par nom}{id_evenement}> #NOM </BOUCLE_personnes_inscrites>
    • Oui, je me suis trompé dans mon exemple, il manque le critère {id_evenement} à la boucle personnes_inscrites. Voici la boucle corrigée :

      <BOUCLE_personnes_inscrites(spip_auteurs spip_evenements_participants){par nom}{id_evenement}>
      #NOM 
      </BOUCLE_personnes_inscrites>
    • Huuuu ça m’affiche ceux qui ont répondu, mais pas particulièrement ceux qui ont répondu par la positive. Les noms de ceux qui ont répondu par la négative sont aussi affichés. Y a t-il un moyen d’afficher les réponses « oui peut-être ou non » à coté du nom ?

    • Heu si j’ajoute #reponse peut être ? Je ne sais pas trop si l’on peut utiliser un morceau d’une table non déclaré de la sorte.

    • Oui, tu peux afficher tous les champs de la table en utilisant des balises de même nom que le champ à condition que la balise soit écrite en majuscules (ton idée d’utiliser #REPONSE est donc la bonne, à la majuscule près).

      Tu peux aussi utiliser les champs comme critère de la boucle. Donc normalement le critère {reponse='oui'} devrait fonctionner.

    • Merci pour cette contribution.

      J’ai ajouté avant <BOUCLE_personnes_inscrites...>

      <B_personnes_inscrites>
      <p>#TOTAL_BOUCLE inscrit(s) (#PLACES places disponibles)</p>

      afin d’afficher la disponibilité restante.

      D’ailleurs (mon code n’est pas encore en prod), quand le nombre de place est atteint, le formulaire sera-t-il automatiquement masqué ?

      Johan

    • Je ne saurais te répondre, ce n’est pas moi qui ai développé le plugin ;-)

    • Je viens de tester et regarder le code :
      Quand le nombre de place est atteint on n’a plus le formulaire sauf si on a dit « J’y serai » (ou « j’y serai peut-être »).

      c’est nickel !

      Je complète mon message précédent pour affiner le message :

      <B_personnes_inscrites>
      #TOTAL_BOUCLE inscrit(s). 
      Soit <strong>[(#PLACES|moins{#TOTAL_BOUCLE})]</strong> place(s) restante(s) sur #PLACES places disponibles.
    • J’ajoute « un peu » de code pour plus de précision encore.

      <BOUCLE_autorise_evenement(EVENEMENTS?){id_evenement}>
      
      <ul class="grande_liste">
      <B_personnes_inscrites><li>
      [(#TOTAL_BOUCLE) [(#TOTAL_BOUCLE|=={1}|?{personne inscrite,personnes inscrites}).]]
      [(#PLACES|moins{#TOTAL_BOUCLE}|=={1}|oui) Dépéchez-vous : Il ne reste plus qu'une derni&egrave;re place !]
      [(#PLACES|moins{#TOTAL_BOUCLE}|<={0}|oui) Pour cette date, les #PLACES places sont pourvues.]
      [(#PLACES|moins{#TOTAL_BOUCLE}|>{1}|oui) Il reste [(#PLACES|moins{#TOTAL_BOUCLE})] possibilit&eacute;s sur un total de #PLACES places.]</li>
      <BOUCLE_personnes_inscrites(spip_auteurs spip_evenements_participants){par nom}{id_evenement}{'/ '}{reponse='oui'}>
      [(#SESSION{statut}|=={0minirezo}|oui)<a href="#URL_ECRIRE{edit_adherent,id=#ID_AUTEUR}">#NOM</a>]
      </BOUCLE_personnes_inscrites>: "J'y serai." [(#AUTORISER{modifier,id_evenement,#ID_EVENEMENT})<a href="#URL_ECRIRE{agenda_inscriptions,id_evenement=#ID_EVENEMENT}">Modifier les inscriptions</a>]</li>
      </B_personnes_inscrites>
      [<li>(#PLACES|>={1}|oui) Les #PLACES places sont encore disponibles. Inscrivez-vous !</li>]
      <//B_personnes_inscrites>
      
      
      <B_personnes_inscrites2><li>
      <BOUCLE_personnes_inscrites2(spip_auteurs spip_evenements_participants){par nom}{id_evenement}{'/ '}{reponse='?'}>
      [(#SESSION{statut}|=={0minirezo}|oui)<a href="#URL_ECRIRE{edit_adherent,id=#ID_AUTEUR}">#NOM</a>]
      </BOUCLE_personnes_inscrites2>: "J'y serai peut-&ecirc;tre." [(#AUTORISER{modifier,id_evenement,#ID_EVENEMENT})<a href="#URL_ECRIRE{agenda_inscriptions,id_evenement=#ID_EVENEMENT}">Modifier les inscriptions</a>]</li>
      </B_personnes_inscrites2>
      
      <B_personnes_inscrites3><li>
      <BOUCLE_personnes_inscrites3(spip_auteurs spip_evenements_participants){par nom}{id_evenement}{'/ '}{reponse='non'}>
      [<li>(#SESSION{statut}|=={0minirezo}|oui)<a href="#URL_ECRIRE{edit_adherent,id=#ID_AUTEUR}">#NOM</a>]
      </BOUCLE_personnes_inscrites3>: "Je n'y serai pas." [(#AUTORISER{modifier,id_evenement,#ID_EVENEMENT})<a href="#URL_ECRIRE{agenda_inscriptions,id_evenement=#ID_EVENEMENT}">Modifier les inscriptions</a>]</li>
      </B_personnes_inscrites3>
      
      [<div class='ajax'>(#SESSION{statut}|match{1comite|0minirezo|6forum}|oui)
      [(#FORMULAIRE_PARTICIPER_EVENEMENT{#ID_EVENEMENT})]</div>]
      </ul>
      </BOUCLE_autorise_evenement>
    • J’ai une petite question : comment adapter ce superbe code pour n’afficher que la réponse effectuée par le visiteur connecté (et non la liste des participants comme ici) ? Exemple : « Bonjour #NOM, vous avez répondu #REPONSE. Vous pouvez modifier votre choix à l’aide du formulaire ci-dessous »

      J’ai essayé avec ceci :

       <B_personnes_inscrites>
        <li>
       [(#TOTAL_BOUCLE) [(#TOTAL_BOUCLE|=={1}|?{personne inscrite,personnes inscrites}).]]<br />
       [(#PLACES|moins{#TOTAL_BOUCLE}|=={1}|oui) Dépéchez-vous : Il ne reste plus qu'une derni&egrave;re place !]
       [(#PLACES|moins{#TOTAL_BOUCLE}|<={0}|oui) Pour cette date, les #PLACES places sont pourvues.]
       [(#PLACES|moins{#TOTAL_BOUCLE}|>{1}|oui) Il reste [(#PLACES|moins{#TOTAL_BOUCLE})] places disponibles sur un total de #PLACES places.]
      
       <BOUCLE_personnes_inscrites(spip_auteurs spip_evenements_participants){id_auteur = #SESSION{id_auteur}}{id_evenement}{'- '}{reponse='oui'}>
       [(#SESSION{statut}|=={0minirezo}|oui)Bonjour <a href="#URL_ECRIRE{edit_adherent,id=#ID_AUTEUR}" class="txtVert">#NOM</a>, vous avez r&eacute;pondu : "J'y serai".<br /> Vous pouvez modifier votre réponse à l'aide du formulaire ci-dessous.]
       </BOUCLE_personnes_inscrites> 
       </li>
       </B_personnes_inscrites>
       <//B_personnes_inscrites>

      Çà marche bien (ma phrase s’affiche bien avec tout ce que je veux dedans), sauf que cela influe sur le total des réponses calculé au début : ainsi, si je ne suis pas connectée, un total de 20 places / 20 dispo est affiché ; si je suis connectée, il n’y a que ma réponse qui est comptabilisée.
      Je tourne en rond... et çà m’énerve. Merci pour votre aide ;-)

    • Bonjour,

      Il faut sans doute faire deux boucles imbriquées. Le calcul des places restantes se faisant sur une boucle (spip_auteurs spip_evenements_participants)id_evenement’- ’reponse=’oui’

      (sans id_auteur = #SESSIONid_auteur)

    • Avec les balise de code c’’est mieux :

      Il faut sans doute faire deux boucles imbriquées. Le calcul des places restantes se faisant sur une boucle (spip_auteurs spip_evenements_participants){id_evenement}{'- '}{reponse='oui'}  

      (sans id_auteur = #SESSION{id_auteur})

    • Ce code a l’air parfait pour ce que je cherche, il me manque juste un petit détail qui a son importance :

      dans quel squelette met-on ce code ? Dans article.html ? Dans un squelette du dossier formulaire d’Agenda 2.0 ? Dans un autre ?

      Merci d’avance.

    • Pour ma part, j’ai une rubrique n°27 consacrée à l’agenda de la commune. Chaque événement étant rattaché à un article, le code est inséré dans le squelette article renommé pour l’occasion article-27.html.

    Répondre à ce message

  • 15

    J’ai réussi à faire ce que je voulais, à savoir :
    -  pour tous les visiteurs, identifiés ou non sur le site : on affiche le nombre de places retenues/dispos
    -  si le visiteur de la page n’est pas connecté, une invitation à se connecter ou à s’inscrire
    -  si le visiteur est connecté, on lui propose le formulaire d’inscription à l’événement + le lien pour se déconnecter.
    (et s’il a déjà répondu au formulaire, on lui rappelle sa réponse pour qu’il la modifie s’il le souhaite)
    -  si le visiteur est en plus l’administrateur, on lui en donne plus : le lien pour gérer les inscriptions dans l’espace privé.

    Je ne voulais pas afficher la liste des inscrits et leur réponse mais comme ces boucles sont indispensables pour le calcul des places, j’ai rusé en laissant leur contenu mais en l’écrivant si petit et en blanc sur blanc pour que cela ne soit pas visible. Mais çà marche aussi parfaitement avec le code d’Artlogic..

    Par contre, comme la balise #REPONSE renvoie des valeurs peu parlantes, j’ai fait une moulinette pour rendre les réponses plus claires.

    Voilà donc ce que çà donne (mais il y a sûrement des maladresses) :

    <BOUCLE_autorise_evenement(EVENEMENTS?){id_article}>
    
    <div id="calendar" class="txtGris">
     <ul class="grande_liste">
     
     <B_personnes_inscrites>
     [(#TOTAL_BOUCLE) [(#TOTAL_BOUCLE|=={1}|?{personne inscrite,personnes inscrites}).]]<br />
     [(#PLACES|moins{#TOTAL_BOUCLE}|=={1}|oui) Dépéchez-vous : Il ne reste plus qu'une derni&egrave;re place !]
     [(#PLACES|moins{#TOTAL_BOUCLE}|<={0}|oui) Pour cette date, les #PLACES places sont pourvues.]
     [(#PLACES|moins{#TOTAL_BOUCLE}|>{1}|oui) Il reste [(#PLACES|moins{#TOTAL_BOUCLE})] places disponibles sur un total de #PLACES places.]
    
    <br /><br clear="all" />
    
     <BOUCLE_personnes_inscrites(spip_auteurs spip_evenements_participants){id_evenement}{reponse='oui'}>
     <li class="invisible">[#NOM]</li>
     </BOUCLE_personnes_inscrites> 
    
      [(#AUTORISER{modifier,id_evenement,#ID_EVENEMENT})<a href="#URL_ECRIRE{agenda_inscriptions,id_evenement=#ID_EVENEMENT}"><span class="txtVert">En tant qu'administrateur</span> : Vous êtes autorisé à modifier les inscriptions</a>]
     </B_personnes_inscrites>
     
      Il n'y a pas d'inscription ouverte pour cet événement.
     <//B_personnes_inscrites>
    
    
     <B_personnes_inscrites2>
     <BOUCLE_personnes_inscrites2(spip_auteurs spip_evenements_participants){id_evenement}{reponse='?'}>
     <li class="invisible">[#NOM]</li>
     </BOUCLE_personnes_inscrites2> 
     </B_personnes_inscrites2>
    
     <B_personnes_inscrites3>
     <BOUCLE_personnes_inscrites3(spip_auteurs spip_evenements_participants){id_evenement}{reponse='non'}>
     <li class="invisible">[#NOM]</li>
     </BOUCLE_personnes_inscrites3> 
     </B_personnes_inscrites3>
    
    <li>
    [(#REM) ***************Si un visiteur est connecté*************** ]
    [(#REM) ****afficher sa réponse s'il a déjà répondu**** ]  
    
    <BOUCLE_reponse(spip_auteurs spip_evenements_participants){id_auteur = #SESSION{id_auteur}}{id_evenement}>
    	Bonjour <a href="#URL_ECRIRE{edit_adherent,id=#ID_AUTEUR}" class="txtVert">#NOM</a>, vous avez r&eacute;pondu : 
    	<span class="txtVert">
    	[(#REPONSE|=={oui}|?{'J&prime;y serai',''})] 
    	[(#REPONSE|=={?}|?{'J&prime;y serai peut-&ecirc;tre',''})]
    	[(#REPONSE|=={non}|?{'Je n&prime;y serai pas',''})]
    	</span><br /> 
    
    	[(#REM) ****Lui dire qu'il peut modifier sa réponse**** ]
    	Vous pouvez modifier votre réponse à l'aide du formulaire ci-dessous.<br /><br clear="all" />
    </BOUCLE_reponse>
    
     [<div class='ajax'>
    (#SESSION{statut}|match{1comite|0minirezo|6forum}|oui)
    [(#REM) ****Afficher le formulaire d'inscription, qu'il ait déjà répondu ou pas**** ]
    [(#FORMULAIRE_PARTICIPER_EVENEMENT{#ID_EVENEMENT})]<br />
    
    [(#REM) ****Lien déconnection**** ]
     [(#SESSION{id_auteur}|?{' '})| <a href="#URL_LOGOUT" rel="nofollow"><:icone_deconnecter:></a>]
     </div>]
     
    [(#REM) ***************Si le visiteur n'est pas connecté*************** ]
     [<div class='ajax'>
    (#SESSION{statut}|match{1comite|0minirezo|6forum}|non)
    
    [(#REM) ****Lui dire qu'il doit s'authentifier ou s'inscrire sur le site**** ]
     Pour vous inscrire à cet événement, vous devez vous connecter ou vous inscrire sur notre site.<br />
     [(#SESSION{id_auteur}|?{'',' '})| <a href="[(#URL_PAGE{login}|parametre_url{url,#SELF})]" rel="nofollow" class='login_modal'><:lien_connecter:></a><br />
     | <a href="[(#URL_PAGE{inscription}|parametre_url{url,#SELF})]" rel="nofollow" class='login_modal'>S'inscrire</a>]
     </div>]
    
    </li> </ul> </div>
    </BOUCLE_autorise_evenement>
    • Merci pour cette contribution.

    • De rien ;-) ... surtout que mon message « Il n’y a pas d’inscription ouverte pour cet événement. » est mal placé : il faudrait peut-être que je le place dans participer_evenement.php (vers la ligne 13), mais mes compétences en php sont trop faibles...

    • Merci pour cette contribution intéressante.

      Je ne voulais pas afficher la liste des inscrits et leur réponse mais comme ces boucles sont indispensables pour le calcul des places, j’ai rusé en laissant leur contenu mais en l’écrivant si petit et en blanc sur blanc pour que cela ne soit pas visible. Mais çà marche aussi parfaitement avec le code d’Artlogic..

      Soit... Mais n’est-il pas plus simple de ne rien afficher du tout alors ?
      Donc remplacer

      <BOUCLE_personnes_inscrites(spip_auteurs spip_evenements_participants){id_evenement}{reponse='oui'}>
      <li class="invisible">[#NOM]</li>
      </BOUCLE_personnes_inscrites> 

      par plutôt

      <BOUCLE_personnes_inscrites(spip_auteurs spip_evenements_participants){id_evenement}{reponse='oui'}>
      </BOUCLE_personnes_inscrites> 

      qui pourrait même s’écrire encore plus facilement (je crois à partir de SPIP 2.0, mais je n’ai pas testé avant de le proposer) : <BOUCLE_personnes_inscrites(spip_auteurs spip_evenements_participants){id_evenement}{reponse='oui'} />

    • J’oubliais... :

      1. Les boucles _personnes_inscrites2 et _personnes_inscrites3 n’étant pas utilisées ici, on peut simplement les virer : ça ne fera pas de différence dans la page, mais allègera le code (fichier moins long et plus facile à relire/maintenir) et le traitement (pas de requêtes pénalisantes car inutiles)
      2. Je ne sais plus où je l’avais vu en regardant les fichiers du plugin, mais il y a la balise calculée #NB_INSCRITS —dans une boucle (EVENEMENTS) et— qui remplace bien [(#PLACES|moins{#TOTAL_BOUCLE})] (et du coup, plus besoin d’une boucle sur la table auxiliaire pour obtenir l’information... Finalement, il se pourrait que la « noisette » d’Artlogic —permettant de lister les réponses/participants— ne serve pas ici...)
      3. Pour ce qui est d’afficher sa réponse s’il a déjà répondu, je pense qu’il faut plutôt modifier le formulaire de réponse pour que sa réponse soit déjà cochée/sélectionnée (et comme on affiche un formulaire modifiable, il peut changer sa réponse et on fait d’une pierre deux coups en étant plus simple au niveau de l’interface)
    • Très juste ! la ligne <li class="invisible">[#NOM]</li> est inutile. J’aurais dû essayer !!
      Par contre, je viens de tester la syntaxe suivante <BOUCLE_personnes_inscrites(spip_auteurs spip_evenements_participants){id_evenement}{reponse='oui'} ></BOUCLE_personnes_inscrites> et elle ne fonctionne pas.

      J’ajoute que pour le message « Il n’y a pas d’inscription ouverte pour cet événement », je l’ai placé en tout début, avant la boucle <B_personnes_inscrites>

      Çà donne :

       <ul class="grande_liste"> 
       <li>
       [(#PLACES|<={0}|oui) Pas d'inscription ouverte pour cet &eacute;v&eacute;nement.]
       </li>
       <li>
       <B_personnes_inscrites>(...)

      Enfin, je conserve pour ma part uniquement les réponses « j’y serai » et « je n’y serai pas », j’ai donc viré tout ce qui concerne le « peut-être » qui m’est inutile.

      Je vais regarder tes autres pistes (notamment la balise #NB_INSCRITS ! ce serait une belle découverte !! Merci à toi ;-)

    • Pour ton point n°3, je me retrouve confrontée à un pb que je mets toujours une plombe à résoudre : comment envoyer au formulaire participer_evenement à la fois #ID_EVENEMENT et #REPONSE...
      Car le formulaire est déjà prêt pour çà :
      <input type='radio' class='radio' name='reponse' id='reponse_oui' value="oui"[ (#ENV{reponse}|=={oui}|oui)checked="checked"] />

      Il est appelé actuellement ainsi :
      (#FORMULAIRE_PARTICIPER_EVENEMENT{#ID_EVENEMENT})
      Est-ce que çà, c’est admis ?
      (#FORMULAIRE_PARTICIPER_EVENEMENT{#ID_EVENEMENT,#REPONSE})

    • Attention à ne pas confondre « l’ouverture des inscriptions en ligne » avec le nombre de places disponibles. Le premier (cela correspond à la case à cocher « Inscription en ligne » juste avant d’indiquer le nombre de places ...si elles sont limitées) est utilisé par le formulaire pour déterminer s’il doit s’afficher ou pas (on peut bien renseigner le nombre de places sans pour autant que le formulaire ne s’affiche parce-qu’on n’a pas autorisé/activé les inscriptions en ligne)
      Si on tient à répéter/préciser cette information, le test devra #INSCRIPTION à la place de #PLACES|<={0}. Et dans ce cas, ceci est affiché quand le formulaire ne s’affiche pas (déplacer donc ces lignes en conséquence)

      Pour l’appel du formulaire, on peut lui passer des paramètres : la syntaxte est la même que pour les modèles (section : « Un emploi possible dans les squelettes »)... ; donc : [(#FORMULAIRE_PARTICIPER_EVENEMENT{id_evenement=#ID_EVENEMENT}{reponse=#REPONSE})] ou [(#FORMULAIRE_PARTICIPER_EVENEMENT{id_evenement=#ID_EVENEMENT,reponse=#REPONSE})] devrait fonctionner (à condition de le placer dans la boucle « _reponse(spip_evenements_participants) » (sinon on ne peut pas lui passer la valeur de #RETOUR...)
      Mais, cela ne fonctionne hélas pas car le formulaire ne prend pas en compte les autres paramètres (d’ailleurs, il devrait récupérer la réponse sans intervention dans sa fonction Charger, mais ce n’est pas le cas...) Pire, lorsqu’on valide une réponse, on a bien le message qu’elle a été prise en compte, mais elle n’est pas sélectionnée dans le formulaire... ce qui montre qu’il y a un problème intrinsèque —ou un bogue ?)

    • Oui, il doit y avoir un pb : quelle que soit la syntaxe que j’utilise dans tes propositions pour appeler le formulaire (et en ayant effectivement déplacé l’appel du formulaire dans la boucle _reponse), le formulaire disparait totalement. Et la valeur de réponse ne passe pas au formulaire.

      [(#FORMULAIRE_PARTICIPER_EVENEMENT{id_evenement=#ID_EVENEMENT}{reponse=#REPONSE})]
      [(#FORMULAIRE_PARTICIPER_EVENEMENT{id_evenement=#ID_EVENEMENT,reponse=#REPONSE})]

      ne marchent pas.

      Par contre, avec cette syntaxe, le formulaire reste affiché :
      [(#FORMULAIRE_PARTICIPER_EVENEMENT{#ID_EVENEMENT,#REPONSE})]

      Bien vu pour mon test sur les places !! c’est effectivement sur #INSCRIPTION que çà doit se jouer ! Pff...

    • En regardant le <tt-..php associé, je constate que le paramètre s’appelle id et non id_evenement ; mais ni [(#FORMULAIRE_PARTICIPER_EVENEMENT{id=#ID_EVENEMENT}{reponse=#REPONSE})] ni [(#FORMULAIRE_PARTICIPER_EVENEMENT{id=#ID_EVENEMENT,reponse=#REPONSE})] ne fonctionnent non plus... Quant à [(#FORMULAIRE_PARTICIPER_EVENEMENT{#ID_EVENEMENT,#REPONSE})] c’est exactement pareil que [(#FORMULAIRE_PARTICIPER_EVENEMENT{#ID_EVENEMENT})] : seul le premier argument (id_evenement) est pris en compte (à juste titre car le forulaire n’a pas à être chargé avec une réponse prédéterminée...), ce qui confirme la non prise en compte des autres paramètres...

      le formulaire ne prend pas en compte les autres paramètres (d’ailleurs, il devrait récupérer la réponse sans intervention dans sa fonction Charger, mais ce n’est pas le cas...) Pire, lorsqu’on valide une réponse, on a bien le message qu’elle a été prise en compte, mais elle n’est pas sélectionnée dans le formulaire... ce qui montre qu’il y a un problème intrinsèque —ou un bogue ?)

      J’ai regardé de plus près (ou plutôt avec l’esprit plus clair) la fonction de chargement ce matin. Verdict : il n’y a pas de bogue (dans le sens où ce n’est pas une erreur de programmation et que ça fait bien ce qui est prévu) mais il y a quand même un bogue (dans le sens d’un problème de logique de conception) : la réponse est récupérée seulement dans le cas de traitement des places limitées....
      Correction en route...

    • Voui... et bien, après moultes essais, je n’arrive pas non plus à passer le paramètre Réponse. Et pourtant, j’ai déjà été confrontée à çà dernièrement. J’avoue que je ne vois pas de piste, je te laisse donc parcourir ta route ;-) Merci... au fait...

    • Comme je le disais, il ne devrait pas être nécessaire de passer la réponse au formulaire (qui n’a besoin que de la valeur de l’id_evenement) ; et le souci est maintenant corrigé (dans le dernier zip)

    • Merveilleux !! Je teste ce soir ! Youpi !

    • Juste un petit mot, gilcot, pour confirmer que ta modif dans participer_evenement.php a fonctionné ! Plus besoin d’un long discours pour indiquer la réponse pré-enregistrée.
      Merciiii !!

    • Cerise sur le gâteau en modifiant le HTML ainsi : <input type="submit" class="submit" value="[(#ENV{reponse}|?{<:bouton_modifier:>,<:bouton_enregistrer:>})]" />
      (je ne commite pas cela parce-que je n’ai pas testé encore tous les cas particulierrs)

    • Çà marche pour moi, merci pour cet ajout !

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom