Des pétitions avec le plugin Formidable

Historiquement, SPIP fournissait un outil interne pour gérer des pétitions. Depuis SPIP 4.0, cet outil n’est plus fourni en standard, mais il faut utiliser le plugin Pétitions.

Toutefois, le plugin Pétitions, héritier de l’outil historique de SPIP, est limité. En particulier, il est difficile de pouvoir ajouter d’autres champs que ceux livrés en standard. De plus, le formulaire fournit avec ne permet de gérer que des pétitions, et il est difficile d’étendre les fonctionnalités.

Le plugin Formidable a vocation à permettre de créer des formulaires multi-usages. Depuis la version 7.4.0, il intègre nativement un outil permettant de gérer les pétitions.

Intérêts et limite des pétitions auto-hébergées.

Héberger soi même des pétitions à plusieurs intérêts :

  • Ne pas dépendre d’un tiers, et protéger ainsi les données des pétitionnaires.
  • Pouvoir proposer aux pétitionnaires d’autres actions que signer la pétition : par exemple faire un don, s’inscrire à une newsletter etc.

Il existe cependant une limite certaine aux pétitions auto-hebergées : la personne (structure, association, etc.) qui promeut la pétition étant celle qui la gère, rien ne garantit que les signatures récoltées l’ont réellement été.

Principe de base des pétitions avec Formidable

  • Un formulaire de pétition est un formulaire formidable classique.
  • Une signature correspond à une réponse enregistrée.
  • Pour s’assurer que la personne a bel et bien validé sa signature, une confirmation est demandée par email.
  • Il existe donc un nouveau statut pour les réponse : “en attente de confirmation par email”.
  • Ce statut a ceci de particulier qu’il n’est pas possible, sans manipulation en base de données de :
    • le remplacer par un autre statut ;
    • revenir à ce statut.
  • Autrement dit : seule la personne ayant reçu l’email peut modifier le statut en suivant le lien contenu.
  • Les pétitionnaires disposent d’un délai, définissable au moment de la configuration du formulaire, pour valider leur signature.
  • Passé ce délai, il n’est plus possible de valider la signature ; toutes les 24 h, les réponses dont le délai a expiré sont automatiquement effacées.
  • La date de confirmation de la signature est enregistrée en base.
  • Pour s’assurer qu’une personne ne signe pas deux fois, on utilise un champ qui doit être unique dans toutes les réponses, le plus simple étant de prendre le champ email.
  • Une fois que la personne a validée sa signature :
    • elle est redirigée vers le formulaire initial ;
    • un courriel de confirmation peut lui être envoyé, à travers le traitement “envoyer par email” ;
    • le texte de courriel de confirmation sert également comme message apparaissant sur le web après validation de la signature.
  • On peut par ailleurs activer des traitements complémentaires avec des plugins étendant formidable pour effectuer d’autres actions (etc : rediriger vers un paiement en ligne, inscrire à une newsletter, etc).
  • Formidable fournit un modèle permettant de lister les signataires par ordre chronologique, en permettant également d’anonymiser celleux qui le souhaitent.

Cas d’exemple

Nous allons créer un formulaire de pétition comportant 4 champs, et uniquement 4 champs :

  • Nom
  • Prénom
  • Courriel
  • Case à cocher “Je ne souhaite pas que mon nom apparaisse”.

Étape 1 : création du formulaire et de ces champs

Rien de bien sorcier : comme pour tout formulaire formidable on crée le formulaire. Pensons simplement à

  • indiquer dans le message retour qu’un lien sera envoyé par courriel
  • demander à ce qu’après soumission soient affichées les valeurs saisies.
Création du formulaire

Puis on créé les champs : on peut activer l’option globale “Par défaut les champs sont obligatoires” et rendre simplement facultatif la case “Je ne veux pas que mon nom apparaisse publiquement”.

Création des champs

Étape 2 : configuration des traitements

On active les traitements “Enregistrer les résultats du formulaire dans la base de données” et “Envoyer un courriel”

2a. Options pour le traitement “Enregistrer les résultats”

Les points de vigilances sont les suivants :

  1. Choisir comme modération “Validation par email”
  2. Fixer un délai pour répondre, par défaut 15 minutes (ce qui est normalement suffisant)
  3. Le choix du champ contenant l’adresse email
  4. Le titre du mail pour demander confirmation de la signature
  5. Le contenu du mail pour demander confirmation de la signature : on peut en personnaliser le contenu. Ne pas oublier le @lien_validation@ sinon les gens ne pourront pas avoir le lien (!). Quelques raccourcis complémentaires sont proposés, notamment @validation_email_delai@ et @titre_formulaire@
  6. Choisir que le champ “email” est unique : ainsi une seule signature pourra être enregistré par email
  7. Important : l’unicité se vérifie uniquement sur les réponses validées : ainsi une personne pourra remplir plusieurs fois le formulaire avec le même email, mais elle ne pourra valider qu’une seule de ces réponses.
Configuration du traitement “Enregistrer les résultats”

2b. Options pour le traitement “Envoyer un courriel”

Il s’agit ici de l’envoi du courriel après que la signature ait été confirmée. Il faut donc :

  1. Régler le champ contenant l’email de l’internaute
  2. Dire qu’on veut lui envoyer un email
  3. Que cet email doit être envoyé lorsque la réponse est validée
  4. Configurer le titre du mail de confirmation
  5. Configurer le contenu du mail de confirmation
Configuration du traitement “Envoyer un courriel”

Résumé de la création du formulaire

Le .yaml ci-joint contient le formulaire ainsi créé. Il peut servir de base pour ses propres pétitions.

Formulaire de démonstration

Étape 3 : insertion du formulaire dans le corps d’un article

Rien d’extraordinaire : utiliser le raccourci <formulaire|formidable|id_formulaire=XX> en remplacant XX par le numéro du formulaire. Ne pas oublier auparavant de publier le formulaire.

Étape 4 : voir le résultat

Remplissons le formulaire pour voir le résultat et le chemin de l’internaute pétitionnaire.

Remplissage du formulaire
Résultat après remplissage

L’internaute reçoit un courriel

Email recu par l’internaute

En suivant le lien, sa signature est confirmé, et iel est redirigée vers la page du formulaire.

Résultat après remplissage

Et iel reçoit en plus un email de confirmation.

Email recu par l’internaute une fois sa signature validée

Le processus est donc complet.

Reste donc à afficher dans l’article la liste des signatures. Formidable fournir un modèle formulaire_reponses_liste qui reçoit :

  • Argument numérique après le nom : l’identifiant du formulaire
  • Argument afficher: une chaine quelconque contenant des @@, qui seront remplacés par les valeurs en base, par exemple ici @input_1@, @input_2@ pour afficher le nom puis le prénom, séparé par une virgule
  • (Optionellement) un argumentafficher_si qui reçoit un test au format afficher_si pour afficher les informations uniquement si certaines conditions sont remplies : dans le cas présent, uniquement si la case anonyme n’est pas cochée, ce qui donne !@case_1@.

Ainsi, pour l’exemple qui nous concerne, nous pouvons utiliser

<formulaire_reponses_liste14|afficher=@input_1@, @input_2@|afficher_si=!@case_1@>

Ou avec l’identifiant du formulaire :

<formulaire_reponses_liste|id=schtroumpf|afficher=@input_1@, @input_2@|afficher_si=!@case_1@>

Ainsi la liste des signataires apparaît, mais celleux qui ne souhaitent pas ont leur nom masqué (remplacé par “Réponse anonyme”).

Discussion

No discussion

Add a comment

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.

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