La présente doc est actualisée à la version 5.0.0 du plugin.
Installation
Ce plugin nécessite le plugin Formidable et s’installe comme tous les plugins de SPIP, voir http://www.spip.net/fr_article3396.html. Il utilise également le plugin Agenda.
Fonctionnalités
- Lors de la réponse à un formulaire, il est possible de créer une participation à un évènement. Cette participation peut être
- automatique, quelque soit la réponse apportée
- ou bien dépendre d’un champ du formulaire
- L’évènement auquel une participation est ajouté sera :
- Fixe, lorsqu’il n’y a qu’un seul évènement proposé
- Ou variable, avec un “Sélecteur d’événements”.
Utilisation
1. Création de l’évènement
Créer un évènement (ecrire/?exec=evenements), cocher la case ’Inscription en ligne’ et relever son identifiant
2. Création du formulaire et de ses champs
Créer un formulaire Formidable (ecrire/?exec=formulaires) avec au moins un champ email.
- Si la participation n’est pas automatisée, mais dépend de la réponse à un champ, créer le champ en question. Typiquement, il peut s’agir d’un champ de type « Bouton radios » ayant
deux valeurs possibles : l’une pour la participation, l’autre pour la
non participation ou la désinscription.
- Si l’évènement n’est pas fixe, il faut ajouter une saisie de type “Sélecteur d’événements”. Vous pouvez configurer pour afficher cette saisie sous forme de cases à cocher: dans ce cas il est possible de s’inscrire à plusieurs évènements d’un seul coup.
3. Configuration du traitement
Dans le formulaire, en colonne de gauche, choisir “Configurer les traitements” (/ecrire/?exec=formulaire_edit&id_formulaire=1&configurer=traitements).
Cocher l’option “Inscrire à un évènement”. Le formulaire de configuration de ce traitement se déplie.
Voici le détail des différents réglages.
Évènement
Sous cet onglet, on répond à la question «à quel évènement faut-il ajouter une participation ? » où il y a deux possibilités:
a. L’évènement proposé est fixe, dans ce cas, préciser l’identifiant (numéro) de l’évènement
b. L’évènement varie d’une réponse à l’autre, dans ce cas, préciser le champ renvoyant l’évènement.
Participation
Cet onglet permet de répondre à la question « La participation est-elle automatique ou dépend-t-elle de la valeur d’un champ du formulaire ? »
Dans le second cas indiquez le champ permettant de participer et la valeur qui enclenchera la participation à un évènement.
Participante
Cet onglet permet de savoir où l’on va chercher l’identité du / de la participante.
Inscription multiple
Il est possible, depuis la version 1.4.0, de faire que la soumission d’un formulaire inscrive plusieurs fois la personne à un évènement. Par exemple, si la personne s’inscrit avec sa famille, elle peut indiquer dans un champ le nombre total de personnes. Il y aura donc plusieurs inscriptions à l’évènement sous le nom de la même personne, associé à la même réponse.
4. Insertion du formulaire sur le site
Dans le formulaire formidable, relever le N° identifiant (18) et l’insérer à la rédaction d’un article ou d’un évènement comme ceci <formulaire|formidable|id_formulaire=18> pour l’activer.
5. Utilisation côté publique
Vos visiteureuses peuvent s’inscrire ou se désinscrire (si le même email est entré) sur la page dans lequel le formulaire a été inséré.
Export des réponses
Pour gérer/exporter la liste des personnes inscrites à un évènement, utiliser les réponses du formulaire formidable.
Désinscription d’un évènement
Depuis la version 1.2.0, lorsqu’une réponse d’un formulaire Formidable est dépubliée, l’inscription à l’évènement est annulée (basculement en non), et réciproquement. Mais attention, cela ne fonctionne que pour les réponses enregistrées après la mise à jour du plugin vers la version 1.2.0.
Pour aller plus loin
Actualisation du champ maj de la table spip_evenements
Dans quelque cas très spécifique, on peut considérer que l’ajout / la suppression d’une inscription à un évènement est un type de modification de l’évènement.
Si la constante PHP _FORMIDABLE_PARTICIPATION_ACTUALISE_MAJ est égale à true, alors l’ajout/la suppresion d’une inscription via formidable actualise le champ ’MAJ’ de l’évènement.
Cela peut être utile par exemple lorsqu’on veut synchroniser entre plusieurs sites des évènements avec le plugin Import ICS.
Pipeline
Ce plugin propose de créer un pipeline qui renvoie les champs qui sont intéressants à récupérer dans un formulaire de participation: Nom, Prénom, Email, Réponse etc.
Le pipeline se nomme traiter_formidableparticipation et est visible sur https://git.spip.net/spip-contrib-extensions/formidable_participation/src/branch/master/traiter/participation.php#L96
Il est donc utilisable par tout autre plugin pour d’autres types de traitements récupérant ces résultats.
Liste d’attente
Voir le tutoriel “Tutoriel : utiliser Agenda, Formidable et Formulaire de participation pour gérer des inscriptions et des listes d’attente”.










Discussions by date of activity
19 discussions
Bonjour,
Sur un SPIP 4.4.2/PHP Version 8.2.27 sur un serveur local de test.
Formulaire de participation Formidable 6.1.0
J’obtiens l’erreur suivante au moment de la validation de mon formulaire :
Erreur SQL 1054
Unknown column ’spip_formulaires.id_formulaire’ in ’WHERE’
SELECT spip_formulaires.*, spip_formulaires_reponses.id_formulaires_reponse FROM spip_formulaires JOIN spip_formulaires_reponses WHERE id_formulaires_reponse = 3 AND spip_formulaires.id_formulaire = spip_formulaires_reponses.id_formulaire
Squelette :
/var/www/html/coordoLBG/plugins/auto/formidableparticipation/v6.1.0/formidableparticipation_pipelines.php
Boucle :
formidableparticipation_post_edition() sql_fetsel();
Ligne :
84
Mes tables SQL sont préfixées ’colbg_’ et non pas ’spip_’
C’est sans doute lié ?
Merci pour votre travail,
Rudu
Bonjour,
je ne pense pas que le prefixe joue : SPIP est censé faire automatiquement la conversation, et le module est bien codé normalement de ce point de vue (mais je n’exclut rien).
Est-il possible d’avoir un export YAML du formulaire ?
Bonjour Maiëul et merci.
Un lien vers l’export YAML :
https://drop.underworld.fr/r/ff6MoHzUQb#TLdFco/BMhWAR3vUgLUloqtFgH7xPRe0uii7lvQDyyQ=
Rudu
Reply to this message
Bonjour,
Sur un SPIP 4.3.6 avec Formidable 7.0.3, je n’arrive pas à activer le plugin et la page de gestion des plugins est “plantée” (il faut alors supprimer le dossier pour la retrouver).
Lors du plantage, j’ai le message d’erreur suivant :
MAJ 1.1.0 . Erreur... Fichier tenter_unserialize introuvable.Ça a l’air d’être ici : https://git.spip.net/spip-contrib-extensions/formidable_participation/-/blob/master/formidableparticipation_administrations.php?ref_type=heads#L47 avec la fonction tenter_unserialize qui serait obsolète ?
Merci.
Arf oui... mais normalement il n^’y a pas de raison que cela passe ici si c’est une première installation...
Au départ, j’avais des traces de formidable installé il y a des années (il ne l’était plus). Mais rien à faire même en le désinstallant.
formidableparticipation n’avait jamais été installé.
J’ai réussi à activer le plugin en commentant le contenu de la fonction formidableparticipation_upgrade_1_1_0
J’ai pu testé la fonctionnalité que je recherche (inscription pour plusieurs places à un événement parmi une liste) et ça fonctionne. Merci.
Bonjour. J’ai rencontré le même problème en voulant installer FormidableParticipation 6.0.1 sous SPIP 4.4.0, avec Formidable 7.0.4 et Agenda 5.1.0 déjà installés et à jour, et deux Formulaires et leurs traitements existants et plusieurs dizaines de réponses.
L’interface de gestion des Plugins s’était complètement plantée comme décrit par Johan. J’ai suivi la solution de Johan, qui consiste à commenter chaque ligne de la function formidableparticipation_upgrade_1_1_0() dans le fichier formidableparticipation_administrations.php sous plugins/auto/formidableparticipation/v6.0.1, qui causait le problème.
Dès que cela a été fait, j’ai rechargé la page de gestion des plugins et ai vu les autres mises à jour de la base de données s’exécuter normalement. L’interface de gestion des plugins est à nouveau accessible et le plugin Formulaire de participation Formidable 6.0.1 est visible et activé. Je ne l’ai pas encore testé. Je n’ai pas vérifié que la structure de la base de données est conforme à l’attendu.
Dans mon cas comme dans celui de Johan, je n’avais aucun événement de participation existant. Je me demande si le problème ne provient pas de ce fait ?
En tout cas, merci pour le problème/solution et pour la future correction (par Maïeul ?) de ce bug dans FormidableParticipation 6.0.1.
Si tu a eu le problème, c’est que tu avais du avoir dans la passé une ancienne version de formidable participation installé une fois, même si les fichiers ont été supprimés entre temps. Le fait d’avoir aucun évènement de participation (je ne suis pas sur d’ailleur de ocmprendre ce terme) n’y change rien.
Je pense sortir ce week-end une version corrective de cela (mais aussi d’autres bugs, autrement plus graves).
Merci Maïeul pour ta super-réactivité et bon courage !
P.S. Correction : je suis sous SPIP 4.4.2 (j’ai mis à jour le 20/02/2025).
P.S.2 En effet, tu as bien raison : j’ai retrouvé la trace d’une version antérieure dans la base de données, mais qui ne figurait plus parmi les plugins auto. Cela doit être dû à la migration/upgrade entre la version de SPIP 3.x.y et la version 4, dont j’ai dû recharger les plugins un à un de manière manuelle. Il est vrai que je n’avais pas utilisé cette extension de Formidable jusqu’alors.
Extrait de la base SQLite AVANT l’installation de FormidableParticipation 6.0.1:
s:23:“formidableparticipation”;a:2:s:3:“nom”;s:23:“formidableparticipation”;s:13:“compatibilite”;s:8:“[2.0.0;[”;s:6:“agenda”;a:2:s:3:“nom”;s:6:“agenda”;s:13:“compatibilite”;s:9:“[3.39.0;[”;s:7:“cextras”;a:2:s:3:“nom”;s:7:“cextras”;s:13:“compatibilite”;s:9:“[3.12.4;[”;
s:9:“librairie”;a:0:{}s:7:“utilise”;a:0:2024-06-09 19:25:202024-06-09 19:25:20spip-contrib-extensions/formidable_participation_destinataires_supplementaires-9c116-formidable_participation_destinataires_supplementaires-v3.0.4.zipVö2024-06-09 19:25:20https://git.spip.net/spip-contrib-extensions/formidable_participation_destinataires_supplementaires.gita:2:{s:29:“formidable_participation_dest”;a:3:s:9:“reference”;s:2:“fr”;s:12:“gestionnaire”;s:9:“salvatore”;s:7:“langues”;a:2:s:2:“fr”;a:0:{}s:2:“it”;a:1:i:0;a:2:s:3:“nom”;s:7:“Alberto”;s:4:“lien”;s:36:"https://trad.spip.net/auteur/alberto";
Reply to this message
Bonsoir,
Je teste ce plugin Formulaire de participation Formidable 5.0.0 sur un site en SPIP 4.3.2
Jusque là tout fonctionne. J’ai du changer le type de champ pour le nombre de participants car la valeur issue d’un menu déroulant n’est ps prise en compte.
Voici ce qui est récupéré dans la base de données :
Merci
Pour ce plugin comme pour tout ce qui concerne formdable, ce qui est testé au niveau du traitement lorsqu’on a des champs de type “radio” ou “selection”, c’est la clé informatique, et non pas la valeure humaine.
Donc ce qui est avant le
|. Tu peux très bien nommer cela autrement quechoix1,choix2etc, mais par ex1,2.Reply to this message
Bonjour,
Nous avons la version SPIP 4.2.11
Plugin qui nous pose problème : Formulaire de participation Formidable 4.1.1
Nous souhaitons proposer un formulaire d’inscription à un évènement avec un nombre de places limitées.
Nous avons configuré le formulaire. Le problème est que les internautes peuvent s’inscrire autant de fois qu’ils le veulent tant que nous n’avons pas vidé le cache. Une fois que le cache est vidé apparait la mention “aucune place” et il n’est plus possible de s’inscrire à l’évènement.
Nous avons par ailleurs coché la case “rafraichir le cache” dans la partie “configurer les traitements/enregistrer les résultats” en pensant que le vide de cache se ferait alors automatiquement.
Y-a-t-il une possibilité d’automatiser le vide du cache ou devons nous le faire manuellement ce qui enlèverait tout l’intérêt pour nous de ce plugin?
Merci d’avance pour votre support.
Bonjour,
je suis étonné de votre retour, car effectivement “rafraichir le cache” devrait répondre à votre problème. Est-ce que vous utilisez un système de cache spécifique, genre “cache cool” ?
Bonjour,
Merci pour votre réponse.
Nous n’utilisons pas de cache spécifique. Le vide du cache fonctionne lorsqu’on le vide manuellement mais l’intérêt de ce plugin serait de limiter automatiquement le nombre d’inscriptions à un évènement sans que nous ayons à le faire nous-mêmes. Nous sommes souvent confrontés à des plafonds de places qui peuvent être atteints le soir, les week-ends ou lors de vacances scolaires et il est parfois difficile de vérifier le nombre de places disponibles en direct.
Par exemple, nous avons organisé un atelier dont les 20 places ont été prises en seulement 1h.
Bah oui je sais bien.... c’est moi qui ai concu la possibilité d’invalider automatiquement le cache spécifiquement pour cette raison.
et “chez moi ca marche”. Vous devez donc avoir quelque chose qui fait que cela ne marche pas chez vous.
Est-ce que je peux avoir l’url du site en question + un export yaml du formulaire ?
Voici l’url: https://cii.edu.ac-lyon.fr/spip/spip.php?evenement241
Par contre, comment est-ce que je vous fourni l’export du formulaire yaml, le format n’est pas pris en compte dans ce blog?
et merci beaucoup pour votre soutien!
C’est un fichier texte, vous pouvez simplement en copier-coller le contenu entre balise code.
Le voilà:
Bonjour Maieul,
Avez-vous pu jeter un œil à notre formulaire et voir d’où venait le problème?
Merci d’avance!
Bonjour,
non désolé. J’ai été pris par autre chose et vue le contexte politique, ma priorité n’est clairement pas là.
Reply to this message
Bonjour,
J’ai une question quant à la récupération des inscrits.
Est-ce que c’est avec Formidable Tablesorter — afficher, trier et filtrer vos réponses qu’on fait ça ?
Ou est-ce qu’il y a quelque chose de plus convivial ? (je cherche à remplacer le plugin https://git.spip.net/spip-contrib-extensions/reservation_evenement).
Merci
Agenda propsoe un minima, ensuite bah oui formidable table sorter permet d’aller plus loin. On peut difficilement faire convivial sur un truc qui releve du tableau excel.
Je n’arrive pas trop à comprendre pourquoi tous ces énormes trucs compliqués, alors que si le but c’est de bloquer à un truc déjà prévu en avance par le squelette, il suffit que l’événement soit… dans un champ Hidden… hidden_1 => #ID_EVENEMENT.
Dans la config du form ajouté par le plugin, il suffit juste que le plugin accepte aussi que l’id_evenement puisse venir d’un champ hidden, et non pas que d’une saisie événement.
Et basta, rien à coder, aucun PHP…
Tout simplement parce que si tu lis l’autre fil de discussion, la saisie Événements présente dans le plugin Agenda gère en plus l’affichage (et le paramétrage) d’une notion de liste d’attente.
On parle bien d’une saisie, donc d’un truc… que tu configures en amont en tout premier lieu dans la création des champs de ton formulaire Formidable ? Donc… pourquoi ya pas juste une option “disable mais posté” à la saisie (comme PLEIN d’autres saisies), qui permet d’avoir une valeur par défaut déjà rempli (y compris par le squelette donc) MAIS de pas pouvoir la modifier ensuite ?
Pareil, 0 PHP à coder, juste une option dans le squelette + le YAML de la saisie.
Parce que la saisie Événements affiche dans la liste déroulante le rang dans la file d’attente. Et comporte un JS qui provoque l’affichage de la case à cocher supplémentaire décrite dans Tutoriel : utiliser Agenda, Formidable et Formulaire de participation pour gérer des inscriptions et des listes d’attente
Et qu’avec la PR : https://git.spip.net/spip-contrib-extensions/agenda/pulls/80 un squelette peut passer en paramètre l’id du seul événement qu’on veut afficher dans la liste, en bénéficiant du reste de la mécanique de gestion de la liste d’attente sans avoir à la recoder.
PS : et oui, j’ai déjà posé la question de qu’est-ce que ce code spécifique à Formidable participation faisait dans le plugin Agenda, mais c’est une autre question...
Ma réponse précédente parle bien d’utiliser la saisie Événement existante telle quelle. Juste de lui ajouter une option pour pas pouvoir l’éditer, donc ne pas générer de liste déroulante. Donc bien la bloquer sur un unique évnément déjà passé par défaut (peu importe que ce défaut vienne de la config interface du formulaire, ou depuis le squelette). Donc bien avec la config “événement fixe” puisqu’il ne faut justement pas générer de liste déroulante si le but c’est d’avoir qu’un seul événement unique forcé.
La seule différence c’est qu’il faut juste pouvoir passer l’id en param squelette, et non pas juste depuis la config du constructeur. Mais sinon cest bien la même chose : n’avoir qu’un seul événement.
Ah au fait : ma première réponse à ce fil a parfaitement été fait dans un form ouvert dans l’AUTRE fil qui était bien en rapport. Donc je sais pas ce que SPIP ou Comments a branlé… mais ya eu un problème (je viens seulement de voir que c’était pas dans le bon fil, et c’est point de ma faute).
Mais c’est bien l’objet de ma PR : pouvoir passer en paramètre une option du formulaire (ce qui n’est pas nativement prévu dans formidable : c’est sûr que ce serait encore plus générique si ça n’était pas que cette option spécifique, mais un moyen générique de passer en paramètre une option ou un tableau d’options à un formulaire via squelette).
Je comprends toujours pas. Ya rien à passer depuis le squelette autre que l’id_evenement, et ça ya déjà une option du form pour ça.
Le fait de configurer la saisie… bah c’est dans la config de la saisie, quand on construit le formulaire.
J’ai vraiment besoin de paramétrer un formulaire d’inscription générique sur un événement particulier correspondant à l’article affiché présentement.
Donc, je ne peux pas le faire à la création du formulaire, mais seulement à son appel.
Je ne comprends toujours pas lol… Je parle bien DE PASSER DYNAMIQUEMENT l’événement par le squelette, donc bien d’un truc générique…
Quelque soit la config général ya bien une saisie Événement dans le formulaire.
Mais la CONFIG de la saisie Événements et du formulaire doivent permettre de dire qu’on veut un événement fixe ET non modifiable ET que ce qui est passé en param des champs par défaut, ça prenne le pas sur le numéro mis en dur dans la config.
Donc j’ai toujours bien l’impression que c’est que un problème de YAML et de squelette de la saisie, je vois pas du tout pourquoi yorait besoin de pipeline, de PHP etc pour faire ça. Faut améliorer la saisie existant et possiblement la config générale ajoutée par ce plugin-ci.
Reply to this message
Bonjour,
J’ai une question sur la notion de liste d’attente.
C’est géré dans une option de la saisie Événements.
Au lieu d’être une option du traitement.
Quelques suggestions/idées à débattre :
Compliqué, car on peut vouloir refuser après coup une inscription, sans vouloir pour autant mettre à la poubelle.
APlanète Sciences refusé = annulé, poubelle = detruite car c’était des tests.
AH il y a un très bonne raison pour que les gens sur liste d’attente soient malgrès tout décomptés : ca permet de savoir la place restante sur liste d’attente.
Je vais préciser ma question alors : actuellement, je ne vois aucune différence entre une inscription faite alors qu’il restait encore des places, et une inscription après épuisement des places.
Alors, évidement, on peut faire ça en dehors de SPIP dans le tableur.
Mais avpir une indication de cette information dans la table spip_evenements_participants et dans la page de visualisation d’une réponse (?exec=formulaires_reponse&id_formulaires_reponse=65), ça serait pratique.
Quant à la place restante en liste d’attente, je ne comprends pas de quoi tu parles. En effet, dans l’interface d’un événement, je ne vois que nombre de places, mais aucune notion de liste d’attente.
Je t’invite à lire le tutoriel sur les listes d’attentes : si tu implemente comme il y est expliqué le fait de cocher explicitement que tu es sur liste d’attente, bah tu vois les gens qui font inscription avec liste d’attente. Et les gens peuvent savoir combien il y a de personnes avant elles à l’inscription.
Quant à présentation sur la page d’un evenement : si tu as 3 places et 5 personnes inscrites, c’est bien qu’il y a 2 sur liste d’attentes.
Effectivement, ça marche bien avec la saisie Événements et ça enregistre l’information de la case liste d’attente.
Mais, dans ce cas, ce dont j’aurais besoin, c’est de pouvoir contraindre par le squelette la liste des événements à un seul.
Mais ce code ne fait que présélectionner l’événement, pas limiter la liste à ce seul événement :
Si tu avais explicité tes problématiques depuis le début, à savoir vouloir à la fois un evenement determiné par squelette et un affichage des places restantes, on aurait peut être pu penser autrement les choses et réflechir plus posément.
Bon là j’aipas de solution toute faite, c’est un cas qui ne s’était pas posé encore.
Là comme cela je pense que le plus simple dans ce cadre serait d’utiliser le pipeline
formulaire_chargerpour modifier le contenu de_saisiesdynamiquement (avec la fonctionsaisies_modifier)Est-ce que tu as un exemple quelque part dont je pourrais m’inspirer ?
Parce que là, à froid, j’ignore où commencer.
Le besoin précis, c’est :
J’ai donc bien #ID_EVENEMENT au moment où le squelette appelle le formulaire. Mais j’ignore comment coder ce que tu suggère.
Par ailleurs, je dois avouer que je suis surpris du découpage entre :
Est-ce que la notion d’héritage de saisies n’aurait pas permis un découpage différent ?
Ou, peut-être mieux encore, est-ce qu’une saisie “Liste d’attente” ne serait pas plus pertinente ?(qui serait une cas à cocher, dépendante d’un champ à désigner contenant l’id de l’événement choisi, et affichant dans son la zo,ne d’information la position dans la liste d’attente (au lieu de l’afficher dans la saisie Événement qui n’aurait plus besoin d’avoir cette surcharge)
Qu’en dis-tu ?
La tu melange deux choses : le découpage du code et le découpage de la doc. Au niveau du decoupage de la doc, le fait d’avoir parlé des listes d’attentes dans un article à part (mais qui je le reconnais devrait plutot être dans cette rubrique plutot que dans agenda), vise simplement à alléger le présent article, pour ne pas parler d’un besoin marginal.
La raison du découpage du code est assez claire:
- les saisies sont toujours dans les plugins qui fournissent l’objet (car on peut avoir besoin d’une saisie evenement autrement que pour un formulaire de participation, par ex pour des formulairs bilan, des champs extra etc).
- la pseudo saisie liste d’attente ne peut pas être une saisie “case à cocher” car
a. Il faut pouvoir faire des tests conditionnels sur le fait que l’evenement choisi est ou pas sur liste d’attente, par exemple pour poser des questions uniquement si on n’est pas sur liste d’attente
b. Pourquoi la forme case à cocher plutoque oui / non, selection etc ?
Le fait d’avoir une pseudo saisie dynamique
@evenements_xxx_liste_attente@permet de la souplesse.Par ce que formidable participation n’a pas pour vocation de gérer tous les problèmes, mais de permettre de rassembler des briques. On peut très bien imaginer gérer les listes d’attentes par d’autres biais.
heu ???
Il n’y a aucun surcharge pour le coup (même si si tu veux tu peux surcharger !). Mais non ca peut diffilement être dans une saisie à part, puisque le statut liste d’attente/nombre de place restante dépend de l’evenement qu’on choisit. Ou alors il aurait fallut un mecanisme de chargement en ajax... pas forcément plus simple en terme de maintenance.
Pour revenir sur le fond.
et le jour où tu a plusieurs evenements, tu fais quoi ?
Bon et sinon je t’ai donné toutes les pistes : le nom du pipeline (mais entre temps je me suis rendu compte qu’il y en avait un plus pertinent), le contenu à modifier et même la fonction pour modifier. Mais allons plus loin.
1. creer le formulaire comme si le chargement de l’id_evenement n’était pas dynamique
2. appeler le formulaire dans ton squelette en lui passant en troisième paramètres des paramètres supplémentaires
#FORMULAIRE_FORMIDABLE{<id_du_formulaire>,<valeur_par_defaut_des_champs>,#ARRAY{id_evenement,#ID_EVENEMENT}}3. Declarer l’appel au pipeline
formulaire_saisies(en s’assurant de passer après saisies, donc en déclarant un dépendance à saisies) et modifier les paramètres de la saisieevenements_1: (code écrit sur le tas, pas testé).```
function prefixe_formulaires_saisies(array $flux): $flux
$form = $flux[’args’][’form’];
$args_du_form = $flux[’args’][’args’];
$id_evenement = $args_du_form[2][’id_evenement’]; // Ce qui a été passé en troisième argument du formulaire
if ($form === ’formidable’ and $args_du_form[0] == )
$flux[’data’] = saisies_modifier($flux[’data’], ’evenements_1’, [’options’ => [’id_evenement’ => $id_evenement]], true);// Ajouter un id_evenement constant sur la saisie evenement
return $flux;
YES !
Ça marche avec :
Et comme appel :
En passant en paramètre et le champ concerné,, et l’id de l’événement, ça me semble suffisamment générique.
Je fait une PR ?
Bof... encore une fois ce n’est pas lié a ce plugin en soit le fait de limiter la saisie evenement en lui passant dynamiquement des paramètres....
Ce serait mieux de le mettre sur le plugin Agenda ?
Dans la mesure où il :
ça marcherait aussi.
Ni l’un ni l’autre, à mon avis c’est un problématique à part qui nécessite un plugin à part. Mais touti a sans doute aussi un avis sur le sujet.
Dans la mesure ou ça concerne un paramétrage de la saisie se trouvant dans le plugin Agenda, plugin et que ça correspond au besoin d’afficher le formulaire d’inscription avec seulement l’événement/les événements associé(s) un article donné :
Reply to this message
Bonjour,
Je voudrais utiliser ce formulaire dans un squelette en passant en paramètre l’id de l’événement concerné.
Ça marche bien avec une liste déroulante.
Mais justement, je n’en veux pas : je veux juste un champ caché contenant l’id.
Sauf que le constructeur ne permet pas de sélectionner un champ caché comme source de l’id.
Est-ce que je m’y prend mal ? Comment faire ?
Oui c’est vrai que pour des raisons d’ergonomie, on a limité le choix du champ de l’evenement à une saisie evenement.
Je suis partagé sur la meilleur solution :
- soit effectivement ouvrir au champ caché, mais ca alourdit un peu l’ergonomie et de toute facon ca passe par un squelette
- soit ajouter une option passable à l’appel du formulaire
traiter_participation_id_evenement(comme on atraiter_email_destinataire. Mais bon, ca voudrait dire aussi autoriser de ne pas choisir explicitement l’id_evenement, donc à ce compte là.Donc peut être la première solution, celle à laquelle tu pensais, est la meilleure. Auquel cas il faut simplement modifier les options
forcer_typedans le fichier .yaml. Je te laisse faire une PR ?J’ai fait une PR, merci pour la piste.
Le lien vers la PR : feat : On peut uliiser un champ hidden pour l’id d’événement #16
Reply to this message
Bonjour,
bravo pour ce travail,
dans mon cas, je souhaiterais l’utiliser pour des réservations, ce qui me plairait c’est d’avoir une case pour le nombre de places.
Exemple: pour une personne inscrite avec sa femme et ses 2 enfants, elle ne va pas remplir quatre fois le formulaire avec quatre adresses mails différentes ! si ?
Je suis juste intervenu pour faire avancer le travail, sinon je sors ;-)
Cordialement
Alain
Effectivement, merci, ça peut être une idée de développement futur.
Bonjour, ce plugin me semble très utile pour notre fédération sportive. Est-ce que maintenant, le plugin permet l’inscription multiple, c’est-à-dire, par exemple, un coach qui vient avec 8 enfants ?....
Merci.
malheureusement pour le moment pas. Il faudrait implémenter d’abord dans formidable un système pour avoir un même champ répétable plusieurs fois pour une même réponse...
Bonjour Maïeul,
Merci pour la réactivité !!... Il ne s’agit pas de créer un enregistrement pour chaque enfants... mais uniquement de prendre en compte le nombre total à décrémenter sur le nombre de participations
Oui, mais du coup quand la personne rempli le formulaire, elle donne juste le nombre de personne ou bien elle donne des détails sur les personnes ?
Bonjour Maïeul,
Il s’agit de groupes d’enfants accompagnés d’un coach. Donc, les renseignements dont j’ai besoin...
Ce sont les coordonnées du coach (tél, e-mail, école, adresse école), le nombre d’enfants participants, la classe ou la catégorie du groupe et c’est tout, le reste est renseigné par l’événement en lui-même.
Bonjour Maïeul,
Je reviens vers toi pour répondre au fil
Je disais donc qu’il me faut donc uniquement un seul enregistrement par inscription, je n’ai pas besoin de connaître le détail pour chaque participants mais le nombre de participant total pour une inscription.
J’espère que ma réponse est plus claire que la précédente.
Encore merci d’avance pour la réactivité.
Bonjour,
oui c’est très clair. Cela étant, les inscriptions avec Agenda sont individuel. Donc le présent plugin devrait faire des inscriptions virtuelle. Pas impossible à faire mais demande du temps de dev (que je n’ai pas).
Voilà et encore merci pour le développement pour ce plugin... Après avoir patiemment attendu, la récompense est de taille ! Tout fonctionne parfaitement sous Spip 4.1 !
Reply to this message
Bonjour,
sous spip 4.0.5
j’ai cette erreur :
Erreur SQL 1054 Unknown column 'spip_formulaires.id_formulaire' in 'where clause' formidableparticipation_liens_reponses_depuis_evenement(){ sql_allfetsel(); } ligne 194Le nom de la base n’est pas bon. Dans mon cas il faut chercher dans spipb_formulaires et non dans spip_formulaires
Que faire Merci bien
ouvre deja un ticket. MAis c’est étonnant, SPIP est censé faire de lui même la conversion/adaptation
ah, et puis dans le ticket soit plus précis sur le moment où l’erreur a lieu
C’est un bug de SPIP
https://git.spip.net/spip/spip/issues/5112
je vais tenter de proposer un patch... mais ca risque de mettre du temps à venir.
Bonjour,
C’est en visualisant un évènement dans la partie privé que j’ai cette erreur :
Oui j’ai fini par trouvé.
Comme dit c’est un problème au niveau de SPIP, et pas simple à résoudre. COmme là je vois pas trop non plus comment contourner ce code dans le plugin, le plus simple serait tout de même que tu passe à des prefixe standards...
Bonjour Maïeul,
Merci bien pour ta recherche.
Mais j’utilise la même base de données mariadb chez Ouvaton pour servir deux sites d’une chorale. Un site public en .fr et un site privé en direction de choristes en .ouvaton.org avec des zones en accès restreint. C’est pour cela que j’ai deux préfixes un “standard” et l’autre adapté.
Amicalement Alain
Hum, oui je comprends
. Chez ouvaton les bdd sont assez cheres.
Bon, je vais tenter de voir s’il existe un contournement possible pour ce cas spécifique... mais sans garantie.
Reply to this message
Bonjour, et merci pour ce plugin.
Nous créons des évènements régulièrement (de 3 à 4 par mois). les formulaires d’inscription sont toujours identiques et standards. Pour ne pas les confondre, je dois les dupliquer ou :
Peut-on récupérer l’ID_EVENEMENT dans la réponse ?
SPIP3-Aveline-Formidable-
Bonjour,
J’ai la même problématique.
Si j’ai bien saisi (je commence juste à utiliser ce plugin) il y a 2 moyens de lier un formulaire de participation et un événement :
Solution 1 : indiquer comme dit dans le tuto ci-dessus l’ID de l’événément auquel se rapporte le formulaire dans la config du formulaire “Permet de lier les réponses à un événement”.
> mais l’ID est fixe et et donc il faut un formulaire par événement
Solution 2 : avoir un champ qui se remplit automatiquement avec l’ID de l’événement du contexte.
Ce champ caché est rempli lors de l’appel du formulaire ;
#FORMULAIRE_FORMIDABLE{2,#ARRAY{hidden_2,#ENV{id_evenement}}}(à placer dans une boucle événement)
> L’ID de l"événement est généré dynamiquement donc on peut avoir 1 formulaire pour tous les événements avec inscription similaire.
> dans ce cas les inscriptions n’apparaissent pas sur la fiche de l"événement (dans l’admin).
> donc il faut construire un tableau des réponses en triant sur l’ID de l"événement si l’on a besoin d’afficher le tableau des inscriptions par événement (ce qui est mon cas).
Si l’on pouvait avoir la solution 2 et garder le lien avec les événements ce serait plus simple (mais si tout était simple le cerveau s’encrasserait).
dd
Et si vous utilisez cette technique : https://contrib.spip.net/Tutoriel-utiliser-Agenda-Formidable-et-Formulaire-de ?
Oulala, c’est vieux ça.
Je crois que pour ce besoin j’avais opté pour Agenda +
https://contrib.spip.net/Reservation-d-evenements-4459 +
https://contrib.spip.net/Reservations-multiples-5016
Reply to this message
Add a comment
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
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.
Follow the comments:
|
