Créer et gérer des sondages avec WebBlocks Polls

Posez une question précise à vos visiteurs et recueillez leurs réponses sur votre site. WebBlocks Polls ajoute un écran de gestion des sondages et un bloc natif Poll pour les afficher dans les pages CMS. Vous pouvez autoriser un ou plusieurs choix, décider quand afficher les résultats agrégés et exporter les totaux par option en CSV. Les résultats utilisent des barres horizontales avec pourcentages et nombres de votes lisibles. Aucun compte de sondage externe ni code d'intégration n'est nécessaire.

Notre exemple est Northstar Studio. Les visiteurs choisissent d'abord le prochain atelier : Photography, Ceramics ou Illustration. Un autre sondage à choix multiples demande ensuite les sujets qui les intéressent. Vous créerez un brouillon, enregistrerez les traductions, publierez le sondage, l'insérerez dans une page, enverrez de vrais votes de test, consulterez les résultats, fermerez le sondage et vérifierez une période future.

Les illustrations utilisent le paquet publié Polls 0.1.6 sur WebBlocks CMS 1.106.5, avec WebBlocks UI 2.32.0 inclus, une interface anglaise, un thème clair et du contenu fictif. L'exemple contient un véritable bulletin à choix unique et un à choix multiples ; les chiffres sont des démonstrations, pas des résultats de recherche.

Polls 0.1.6 utilise la langue demandée de la page CMS pour les textes, les commandes de vote et les messages. La règle After closing affiche les résultats après une fermeture explicite ou lorsqu'un sondage Published atteint sa date de fin. Le guide vérifie la vue traduite et une période future en plus du parcours anglais habituel.

Consultez la référence Polls pour les exigences et l'intégration. Pour l'installation générale, commencez par le Système de plugins.

Avant de commencer

Préparez un site de test et un compte Super admin pour l'installation. Le paquet publié déclare une compatibilité PHP ^8.3, CMS ^1.106.5 et Laravel ^13.0. Votre version CMS peut exiger un PHP plus récent ; ce guide fonctionne sous PHP 8.4. Vérifiez le résultat pour votre hébergement réel dans le catalogue officiel Polls.

Il faut aussi une page modifiable et publiable ainsi que le droit de gérer les sondages. Le site principal de démonstration est Northstar Studio. Les pages sont Choose our next workshop, à /workshop-vote, et What would you like to learn?, à /workshop-options.

Les sondages appartiennent aux sites. En 0.1.6, la liste et le formulaire ordinaires n'ont pas de sélecteur de site ; sans contexte Polls explicite, le site principal accessible est utilisé. Changer le site sélectionné dans Pages ne remplace pas la vérification du propriétaire du sondage. Pour une intégration multisite, utilisez le contexte explicite de la référence API Polls. Le bloc d'une page ne liste que les sondages du site de cette page.

Décidez à quoi serviront les réponses, qui lira les totaux et quand arrêter le vote. Gardez une question courte et des options distinctes. Ne recueillez pas d'informations inadaptées à un sondage public. Polls convient à des retours simples ; l'empreinte du visiteur ne prouve pas un vote par personne distincte vérifiée.

1. Installer et activer Polls

  1. Ouvrez System → Plugins en tant que Super admin.
  2. Choisissez Browse Plugin Catalog et recherchez WebBlocks Polls.
  3. Examinez version, compatibilité et notes avant Install from Catalog.
  4. Si l'administrateur fournit l'archive publiée de confiance, sélectionnez-la dans Plugin ZIP, puis choisissez Upload Plugin ZIP.
  5. Vérifiez le paquet installé, puis activez-le.

Notre exemple installe le ZIP officiel publié. Un plugin nouvellement installé reste désactivé jusqu'à son activation.

Écran Plugins avec WebBlocks Polls 0.1.6 installé mais Disabled à côté du formulaire ZIP manuel

Ouvrez les détails et choisissez Enable Plugin. L'installation et l'activation actuelles appliquent les modifications de base de données du plugin. Avant de recueillir des votes, confirmez Enabled, un état sain et des tables prêtes. Résolvez d'abord les avertissements de compatibilité ou de migration.

Écran Plugins avec WebBlocks Polls 0.1.6 Enabled et stockage Healthy

La barre latérale contient désormais un groupe Polls avec une entrée Polls. Ouvrez-la. Une installation neuve affiche No polls have been created yet. et Add poll.

Liste de sondages vide avec l'action Add poll

2. Attribuer les autorisations appropriées

Polls distingue consultation, gestion et exportation :

Autorisation Action permise Opérateur habituel
View polls (webblocks-polls.view) Ouvrir la liste des sondages du site. Personne suivant leur disponibilité et le nombre de bulletins.
Manage polls (webblocks-polls.manage) Créer et modifier questions, options, état et calendrier. Rédacteur responsable du sondage.
Export poll results (webblocks-polls.export) Télécharger les totaux agrégés par option en CSV. Personne utilisant les résultats hors du CMS.

Accordez au rédacteur les droits de consultation et de gestion nécessaires. Ajoutez l'exportation délibérément. L'accès au site est une limite distincte : les droits du plugin n'ouvrent pas les sondages de tous les sites. Lisez Rôles et autorisations avant de modifier un rôle partagé.

Pour placer le bloc Poll, le rédacteur doit aussi disposer des droits habituels sur les pages et blocs. Créer le sondage et modifier la page qui l'accueille sont deux tâches distinctes.

3. Créer le premier sondage en brouillon

Choisissez Add poll. La première carte règle l'identité et la disponibilité :

Champ Exemple Northstar Utilisation
Name Next Northstar workshop Libellé interne pour les opérateurs, commun à toutes les langues.
Handle next-workshop Identifiant stable en minuscules. Utilisez lettres, chiffres et tirets simples entre les mots.
Status Draft Garder le vote indisponible pendant la révision de la question.
Choice mode Single choice Chaque bulletin contient exactement une option.
Show results After voting Le visiteur voit les totaux après un vote réussi dans la session actuelle.
Starts at / Ends at Vides pour ce premier exemple Aucune restriction de dates supplémentaire après publication.

Le handle n'est pas l'adresse de la page. Le bloc le conserve pour retrouver le sondage ; évitez de le changer après l'insertion. Gardez un nom compréhensible pour l'équipe et un identifiant stable.

Nouveau sondage avec handle stable next-workshop, état Draft, Single choice et After voting

Faites défiler jusqu'à Poll copy et saisissez :

Champ Exemple
Locale en
Question Which workshop should we run next?
Description Help Northstar Studio choose its next community workshop.
Choice 1 Photography
Choice 2 Ceramics
Choice 3 Illustration
Choice 4 Laisser vide.

Question, description facultative et libellés sont les textes présentés aux visiteurs. En 0.1.6, le formulaire ordinaire propose quatre lignes ; cet éditeur n'a pas de commande Add choice. Au moins deux libellés doivent être remplis. Le contrat d'intégration accepte jusqu'à vingt lignes, mais cela n'ajoute pas vingt lignes au formulaire.

Langue anglaise, question, description et trois choix d'atelier dans la carte Poll copy

Choisissez Save poll et vérifiez Poll saved.. Revenez à la liste pour contrôler le handle, l'état Draft et zéro vote.

Sondage Next Northstar workshop enregistré avec réglages Draft et confirmation Poll saved

Nom et question acceptent jusqu'à 255 caractères ; le handle 100, la description facultative 2 000 et chaque libellé 255. Une question courte et des libellés concis se lisent mieux sur mobile.

4. Enregistrer une autre langue sans remplacer l'original

Rouvrez Next Northstar workshop. Locale désigne la version linguistique écrite au prochain enregistrement. Ce n'est pas le sélecteur de langue de l'administration ; saisir un autre code ne charge pas le texte existant dans cette langue.

Pour ajouter l'exemple turc :

  1. Remplacez Locale en par tr.
  2. Remplacez la question par Bir sonraki atölyemiz hangisi olsun?.
  3. Traduisez la description et les lignes correspondantes : Fotoğrafçılık, Seramik, İllüstrasyon.
  4. Gardez chaque option sur sa ligne et laissez la quatrième facultative vide.
  5. Conservez les valeurs communes prévues pour nom, handle, mode et disponibilité, puis choisissez Save poll.

Enregistrer une traduction transmet également les champs opérationnels communs. Vérifiez-les pour éviter une publication ou reprogrammation accidentelle pendant l'ajout de texte. L'adresse de modification enregistrée conserve ?locale=tr. Réutilisez cette vue pour modifier le turc ; le lien ordinaire de la liste revient à la langue par défaut du panneau.

Administration anglaise avec Locale tr, question, description et choix correspondants traduits en turc

La question et les libellés anglais restent enregistrés. Le bloc public utilise la langue demandée de la page pour question, description, options, commandes et messages. En cas de texte manquant, il utilise la langue de repli configurée, puis la première version disponible. Traduisez la question et toutes ses options pour chaque langue à publier.

Après publication du sondage et de la page dans les étapes suivantes, vérifiez aussi la route traduite en plus de l'anglaise. La langue publique du sondage reste indépendante de celle de l'administration. Consultez Ajouter une langue à un site pour activer les langues et traduire la page environnante.

5. Choisir la règle des résultats publics

Show results modifie l'affichage du bloc Poll. Ce réglage ne supprime pas les totaux stockés et ne remplace pas les droits des opérateurs.

Réglage Comportement réel en 0.1.6 Usage pratique
Always Affiche les totaux à la place du formulaire, même pendant l'ouverture du vote. Affichage de résultats ; ne pas utiliser si le bloc doit proposer le vote.
After voting Affiche les totaux si la session a voté ; sinon le formulaire est proposé seulement pendant l'ouverture. Valeur par défaut vérifiée pour un sondage public ordinaire.
After closing Affiche les totaux d'un sondage explicitement Closed ou Published arrivé à son terme. Ni Draft ni une ouverture future ne conviennent. Masquer les résultats pendant le vote et les afficher à la fin.
Never N'affiche pas de résultats agrégés publics. Après le vote de la session, le formulaire n'est plus proposé. Recueillir des réponses sans publier de totaux.

Le message This poll is closed. peut aussi apparaître si le visiteur a déjà voté et que la règle masque les résultats, ou si l'heure de début n'est pas arrivée. Cet avis générique ne prouve pas à lui seul que l'opérateur a choisi Status → Closed. Examinez ensemble état, dates et règle.

Pour le premier exercice, gardez After voting. Le formulaire apparaît avant le premier envoi et le résultat après.

6. Publier le sondage

Ouvrez le sondage anglais enregistré, passez Status à Published et choisissez Save poll. Laissez les deux dates vides pour ce premier test. Revenez à la liste et confirmez Published à côté de next-workshop.

Sondage Northstar enregistré en Published, prêt à être sélectionné dans un bloc Poll

Publier le sondage le rend disponible dans le sélecteur du bloc. Cela ne crée pas de page, n'ajoute pas le bloc et ne publie pas la page. Le vote n'est ouvert que si le sondage est Published et respecte les conditions éventuelles de début et de fin.

7. Ajouter le bloc natif Poll à une page

Ouvrez la page dans Pages, choisissez Edit Blocks pour son emplacement Main et trouvez le conteneur du sondage. Notre page a déjà un titre et une introduction. Si vous partez de zéro, consultez Page, mise en page, emplacement et bloc et Créer une page.

  1. Utilisez Add child block sur le conteneur ou Add Block à un endroit autorisé.
  2. Recherchez Poll dans le catalogue.
  3. Choisissez Poll, décrit par Places a published poll on a page..
Recherche du catalogue avec le bloc Poll disponible dans le conteneur de page

Dans Block Fields, sélectionnez Next Northstar workshop dans le champ Poll. Choisissez Save New Block.

Champs natifs du bloc Poll sélectionnant Next Northstar workshop par son handle stable

Le sélecteur liste les sondages Published du site de la page. Si celui attendu manque, vérifiez d'abord son état et son site propriétaire. Un début futur ne retire pas un sondage publié du sélecteur ; il continue de déterminer quand le formulaire accepte des votes.

Le bloc référence le sondage original au lieu de copier question et options dans la page. Les modifications ultérieures peuvent donc affecter toutes les pages utilisant le même handle. Créez un nouveau sondage pour une nouvelle campagne plutôt que de réaffecter un ancien sondage ayant déjà des votes.

8. Prévisualiser puis publier la page

Ouvrez la Preview enregistrée de la page. Vérifiez question, description, boutons radio et règle des résultats. Le bloc Poll et ses parents doivent être activés pour publication.

Aperçu de la page brouillon montrant le sondage à choix unique avant sa publication

Considérez un aperçu contenant un sondage Published actif comme une interaction réelle. Un envoi de test n'est pas forcément simulé et peut ajouter un vrai bulletin. Ici, nous examinons l'aperçu et votons uniquement depuis la page publiée localement.

Quand elle est prête, suivez Publier une page. Dans Overview, utilisez Publish si votre rôle le permet ou le circuit de révision de l'équipe. Ouvrez ensuite View Page et testez la véritable route publique.

Sur notre page publiée, choisissez Photography. Un seul bouton radio peut être sélectionné à la fois.

Page Northstar publiée avec Photography sélectionné dans le sondage à choix unique

9. Envoyer un vote et lire le résultat

Choisissez une fois Vote et confirmez Thank you. Your vote was recorded.. Avec After voting, les résultats agrégés remplacent le formulaire dans la session courante.

Vote unique réussi avec remerciement et barres horizontales montrant un vote pour Photography

Notre unique bulletin de test donne à Photography 100% (1 votes) et zéro aux autres options. Sa barre remplit toute la piste ; une option à zéro garde une piste vide. Chaque barre utilise la même échelle 0–100%. Nom, pourcentage et nombre de votes restent lisibles au-dessus. L'exemple démontre le parcours, mais ne suffit pas à tirer de vraies conclusions sur les préférences des visiteurs.

Rechargez la page. Le résultat reste visible dans la même session et le formulaire n'est plus proposé. La visibilité après le vote dépend de la session ; un navigateur revenant après un changement de session peut voir un autre écran. Ne promettez pas d'accès personnel permanent aux résultats.

Ouvrez la traduction turque pour contrôler le texte précédent. Un visiteur n'ayant pas voté voit Bir sonraki atölyemiz hangisi olsun?, les choix traduits et Oy ver, comme ci-dessous. Une session ayant voté voit des résultats turcs avec After voting. Les deux routes utilisent le même sondage ; changer la langue ne crée pas un autre bulletin.

Page visiteur turque avec question d'atelier traduite, options et bouton Oy ver

Pour une comparaison visuelle distincte, l'image suivante utilise un sondage synthétique de 20 bulletins : 12 pour Photography, 6 pour Ceramics et 2 pour Illustration. Les barres montrent 60%, 30% et 10% sur la même échelle. Ce jeu de données est séparé du parcours à un bulletin ; ce n'est pas une enquête réelle et il ne modifie pas les autres exemples.

Sondage synthétique séparé avec barres à 60 pour cent pour Photography, 30 pour Ceramics et 10 pour Illustration

Les barres utilisent des éléments HTML meter natifs habillés par la primitive partagée WebBlocks UI. Elles n'ont besoin ni d'une bibliothèque graphique ni de JavaScript pour représenter leurs valeurs. Gardez les textes visibles lors de la lecture ; couleur et longueur sont des repères complémentaires.

10. Vérifier le nombre de bulletins et exporter le CSV

Revenez à Polls dans l'administration. La colonne Votes compte les bulletins enregistrés. Notre sondage à choix unique en indique maintenant un.

Liste de gestion Polls indiquant un bulletin enregistré pour Next Northstar workshop

Pour les totaux par option, ouvrez le sondage enregistré et descendez sous les choix. Sélectionnez Export CSV, à côté de Save poll. Il faut le droit Export poll results et l'accès au site du sondage.

Sondage anglais enregistré avec Export CSV près de Save poll sous les options

L'export contient des données agrégées : libellé d'option et nombre de sélections. Ce n'est ni une liste de votants individuels ni un export de leurs adresses IP. L'exemple anglais à choix unique produit :

Choice,Votes
Photography,1
Ceramics,0
Illustration,0

L'éditeur ordinaire de 0.1.6 ne propose pas de tableau séparé des résultats par option. Utilisez le nombre de bulletins de la liste, les totaux CSV ou l'endpoint agrégé autorisé de la référence API Polls. Le réglage public Show results ne supprime pas l'export autorisé.

11. Créer un sondage séparé à choix multiples

Créez un autre sondage pour préserver le sens et les votes du premier. Le deuxième exemple utilise :

Champ Valeur
Name Workshop learning interests
Handle learning-interests
Status Published
Choice mode Multiple choice
Show results After voting
Question Which topics would you like to learn?
Description Choose every workshop topic that interests you.
Choices Photography; Ceramics; Illustration
Sondage séparé learning-interests configuré avec Multiple choice et After voting

Placez un bloc Poll sur What would you like to learn?, sélectionnez ce deuxième sondage, prévisualisez et publiez. Le formulaire public utilise maintenant des cases à cocher. Sélectionnez Photography et Illustration.

Sondage à choix multiples avec Photography et Illustration cochés dans le même formulaire

Choisissez Vote. Un seul bulletin enregistre les deux sélections.

Résultat multiple avec barres indépendantes pleines pour Photography et Illustration, choisies dans l'unique bulletin

Le pourcentage de chaque option utilise le nombre de bulletins comme dénominateur. Ici, un sur un choisit Photography et un sur un Illustration ; les deux affichent 100% avec des barres pleines. En choix multiples, les pourcentages ne doivent pas nécessairement totaliser 100% : les barres sont indépendantes, pas des segments d'une seule barre à 100%. La liste compte toujours un bulletin, tandis que le CSV contient deux votes d'options.

12. Comprendre la protection contre les votes répétés

Après un vote réussi, la session actuelle ne reçoit plus le formulaire normal. Si Back du navigateur restaure l'ancien formulaire et que le visiteur le renvoie, le serveur contrôle aussi l'empreinte. Notre nouvel envoi renvoie You have already voted in this poll. et le total reste un bulletin.

Envoi répété refusé pour vote déjà enregistré, avec conservation des totaux à choix multiples

Le plugin utilise une protection CSRF, des limites de requêtes par route et une empreinte HMAC pseudonyme fondée sur le sondage, la session, l'IP de la requête et l'agent utilisateur. Il ne stocke pas l'IP brute dans le bulletin. C'est un frein pratique, pas une identité vérifiée : changer la session ou d'autres données de l'empreinte peut permettre un autre vote. Utilisez un processus adapté fondé sur l'identité si un vote vérifié par personne est indispensable.

Si une réponse indique une limite de requêtes, arrêtez les envois répétés et attendez le délai normal. Ne désactivez pas la limitation pour la contourner. Testez votes et répétitions sur un sondage jetable ; n'ajoutez pas de votes d'exercice aux résultats réellement utilisés.

13. Fermer le sondage et choisir ce qui reste visible

À la fin du vote, rouvrez le sondage, réglez Status → Closed et choisissez Save poll. La fermeture conserve bulletins et traductions.

Dans le premier exemple, nous réglons aussi Show results → Never pour montrer un sondage fermé sans totaux publics.

Sondage Northstar enregistré avec état Closed et Never pour les résultats publics

Rechargez sa page publique. La question reste, le formulaire est indisponible et le bloc affiche This poll is closed..

Sondage fermé avec avis de fermeture, sans commande de vote ni total public

Pour publier les totaux conservés après la fin, choisissez une règle adaptée. Avec After closing sur ce sondage réellement Closed, le bloc affiche les comptes enregistrés sans formulaire de vote.

Sondage fermé affichant les résultats conservés en barres horizontales après sélection de After closing

Pour rouvrir le même sondage, choisissez Status → Published, contrôlez dates et règle, puis enregistrez. Les votes restent ; rouvrir ne réinitialise pas les anciens votants et ne crée pas une nouvelle campagne. Nous avons vérifié la réouverture en conservant le bulletin original. Créez un nouveau sondage et un nouveau handle pour une question exigeant des totaux indépendants.

14. Programmer soigneusement la période de vote

Un sondage n'accepte des votes que s'il est Published, si le début est absent ou atteint et si la fin est absente ou encore future. La fin doit suivre le début. Une fermeture manuelle arrête le vote indépendamment de ces dates.

Choisissez des dates futures adaptées à votre événement. Notre exemple séparé Scheduled workshop utilise novembre 2030 pour rester clairement futur pendant la démonstration. Le formulaire n'indique pas de fuseau près des dates ; confirmez celui de l'application avec l'administrateur au lieu de supposer que le fuseau d'affichage du site convertit automatiquement les valeurs.

Sondage Published programmé avec dates futures de début et de fin et résultats After closing

Avec After closing, ce sondage futur affiche avant son ouverture un avis de fermeture sans totaux ni formulaire. Quand la période Published commence, les visiteurs peuvent voter tandis que les résultats restent masqués. À l'échéance, les résultats conservés deviennent visibles. Un état explicite Closed les autorise aussi ; Draft ne les autorise pas, même avec des dates passées.

Sondage futur avant ouverture, avec avis de fermeture et sans totaux ni commandes sous After closing

Choisissez After closing pour attendre la fin, After voting pour montrer les résultats à la session après son vote ou Never pour masquer les totaux publics. Vérifiez la page réelle à chaque limite. Always remplace le formulaire par les résultats ; ce n'est pas une solution pour recueillir des votes.

Le calcul ouvert/fermé se fait lors des requêtes ; aucune tâche séparée n'est nécessaire pour changer l'état à chaque limite. Testez le comportement réel des dates sur votre hébergement avant de vous y fier. Vérifiez aussi les caches entre visiteur et application afin qu'une ancienne page ne présente pas un état périmé.

Dépannage

Symptôme Points à vérifier
Polls manque dans la barre latérale Installation, activation, compatibilité, droit View polls et accès au site.
Des migrations du plugin sont en attente Utiliser un hôte actuel compatible et résoudre l'état enregistré de configuration de la base avant les votes.
Échec de l'enregistrement Nom obligatoire, handle stable valide, langue, question, au moins deux libellés et fin après le début.
Sondage absent du sélecteur État Published et appartenance au site de la page. Le sélecteur normal ne propose pas Draft ou Closed.
Aucun sondage sur la page Sélection enregistrée du bloc, handle stable, bon site, blocs parents activés et plugin actif.
Sondage Published mais page indisponible Les publications sont indépendantes. Ouvrir la route réelle après publication de la page.
Résultats au lieu du formulaire Show results → Always, After closing avec Closed explicite ou après la fin de Published, ou session ayant voté avec After voting.
Résultats avant la fin attendue Vérifier Always, session ayant voté avec After voting, Closed explicite et fin enregistrée. After closing attend la fermeture réelle ou la fin de Published.
Avis fermé malgré Published Dates futures/passées, état de vote de la session et règle des résultats. Le message est générique.
La page traduite affiche un texte de repli Langue demandée, langue enregistrée du sondage, libellés correspondants et Polls 0.1.6 ou ultérieur. Traduire la page environnante séparément.
Texte visible mais barres horizontales absentes Utiliser Polls 0.1.6 avec CMS 1.106.5 ou ultérieur et vérifier le chargement du CSS WebBlocks UI inclus. Actualiser les caches anciens après mise à jour.
Somme des pourcentages supérieure à 100% En choix multiples, chaque option est calculée par bulletin. Un bulletin peut sélectionner plusieurs options.
Export CSV indisponible ou interdit Enregistrer le sondage et vérifier droit d'exportation et accès au site. Le fichier contient les totaux, pas un annuaire de votants.

Terminer par un lancement maîtrisé

Avant d'inviter de vrais visiteurs, vérifiez site propriétaire, handle stable, formulation, mode, droits, dates et règle des résultats. Contrôlez séparément la page et sa route publiée. Envoyez un bulletin sur un sondage jetable, vérifiez le compte et le CSV, puis créez un nouveau sondage pour les résultats utiles.

Pour un lancement multilingue ou programmé, vérifiez la vue visiteur dans chaque langue prévue et aux limites temporelles pertinentes. Contrôlez la vue réelle et les comptes enregistrés en plus du formulaire sauvegardé. Confiez à un opérateur la fermeture, l'exportation et l'adéquation des résultats publics à leur audience.

Poursuivez avec la référence Polls pour l'intégration, Rôles et autorisations pour l'accès ou Publier une page pour le parcours de publication.