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
- Ouvrez System → Plugins en tant que Super admin.
- Choisissez Browse Plugin Catalog et recherchez WebBlocks Polls.
- Examinez version, compatibilité et notes avant Install from Catalog.
- Si l'administrateur fournit l'archive publiée de confiance, sélectionnez-la dans Plugin ZIP, puis choisissez Upload Plugin ZIP.
- 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.
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.
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.
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.
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.
Choisissez Save poll et vérifiez Poll saved.. Revenez à la liste pour contrôler le handle, l'état Draft et zéro vote.
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 :
- Remplacez Locale
enpartr. - Remplacez la question par Bir sonraki atölyemiz hangisi olsun?.
- Traduisez la description et les lignes correspondantes : Fotoğrafçılık, Seramik, İllüstrasyon.
- Gardez chaque option sur sa ligne et laissez la quatrième facultative vide.
- 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.
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.
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.
- Utilisez Add child block sur le conteneur ou Add Block à un endroit autorisé.
- Recherchez Poll dans le catalogue.
- Choisissez Poll, décrit par Places a published poll on a page..
Dans Block Fields, sélectionnez Next Northstar workshop dans le champ Poll. Choisissez Save New Block.
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.
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.
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.
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.
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.
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.
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.
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 |
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.
Choisissez Vote. Un seul bulletin enregistre les deux sélections.
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.
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.
Rechargez sa page publique. La question reste, le formulaire est indisponible et le bloc affiche This poll is closed..
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.
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.
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.
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.