WebBlocks Polls

Créez des sondages multilingues à choix unique ou multiple, placez-les sur votre site avec le bloc natif Poll et consultez les résultats agrégés. Ce guide décrit Polls 0.1.4.

Prérequis et installation

Utilisez PHP 8.3 ou ultérieur et WebBlocks CMS ^1.92.1. Téléchargez le ZIP compatible depuis la fiche Polls du catalogue. Installez-le dans Système → Extensions, activez-le et vérifiez la réussite de la configuration de la base de données. Ouvrez Sondages et choisissez le site auquel le sondage appartiendra.

Créer un sondage

Choisissez Ajouter un sondage et indiquez un nom interne et un identifiant stable, par exemple next-workshop. Les blocs enregistrent cet identifiant ; évitez de le modifier après la mise en place du sondage. Saisissez la question et au moins deux réponses non vides. Un sondage accepte jusqu'à vingt lignes de réponses.

Sélectionnez Choix unique pour autoriser une réponse par votant ou Choix multiple pour en autoriser plusieurs. Maintenez la question, la description facultative et les libellés de réponse dans chaque langue publiée. L'extension fournit les interfaces de gestion et de vote dans les six langues du CMS ; la question et les réponses sont votre propre contenu.

Un sondage sur des ateliers pourrait par exemple demander « Quel atelier devrions-nous organiser ensuite ? » avec Photographie, Céramique et Illustration. Enregistrez-le comme Brouillon pendant la révision du texte et des traductions.

Publier et placer le bloc Poll

Le sondage possède trois états : Brouillon, Publié et Fermé. Les valeurs facultatives Début et Fin délimitent la période de vote. Publiez le sondage prêt et vérifiez son calendrier avant d'inviter les participants.

Dans le constructeur de pages, ajoutez le bloc natif Poll de l'extension et choisissez le sondage du site. L'identifiant du type de bloc est webblocks-polls::poll ; les blocs créés par API enregistrent l'identifiant stable du sondage dans plugin_settings.poll. Prévisualisez la page, confirmez question et réponses, puis suivez le processus habituel de publication. Publier un sondage ne publie pas la page contenant son bloc.

Choisir quand afficher les résultats

Réglez Afficher les résultats selon l'expérience souhaitée :

  • Toujours (always) : affiche les résultats agrégés à la place du formulaire de vote.
  • Après le vote (after_vote) : affiche les résultats après le vote du visiteur.
  • Après la fermeture (after_close) : affiche les résultats quand le sondage n'est pas ouvert.
  • Jamais (never) : ne montre pas les résultats publiquement.

Ces paramètres contrôlent la visibilité publique. Les opérateurs autorisés peuvent toujours consulter les résultats et exporter des données CSV agrégées. Voir les sondages, Gérer les sondages et Exporter les résultats sont des autorisations distinctes de l'extension.

Dans 0.1.4, Après la fermeture utilise le calcul actuel de l'état ouvert/fermé. Des résultats peuvent aussi apparaître pour un brouillon ou un sondage dont le début est encore à venir. Ne placez pas de brouillons sur des pages publiées ; utilisez Après le vote ou Jamais si les résultats d'un sondage programmé doivent rester cachés avant l'ouverture.

Vote et confidentialité

Le vote utilise une protection CSRF, des limites de fréquence par route et une empreinte HMAC pseudonyme du votant. L'extension ne conserve pas les adresses IP brutes des visiteurs. La protection contre les votes répétés est une barrière pratique ; changer de session ou de réseau peut permettre un autre vote. Utilisez un autre processus de vérification lorsqu'un seul vote vérifié par personne est nécessaire.

API interne

L'extension active ajoute ses routes à la découverte du CMS et à OpenAPI :

  • GET /webadmin/api/polls et GET /webadmin/api/polls/{poll} nécessitent polls.read.
  • POST /webadmin/api/polls et PATCH /webadmin/api/polls/{poll} nécessitent polls.write.
  • GET /webadmin/api/polls/{poll}/results nécessite polls.read.

Fournissez le contexte de site autorisé et la langue avec la question et les libellés traduits. Utilisez la découverte pour le contrat de données de la version installée. Les API de gestion exigent une authentification par jeton et ne remplacent pas le vote public protégé contre CSRF.

Si le bloc n'affiche pas le bon sondage, contrôlez l'identifiant sélectionné, le site propriétaire, l'activation de l'extension, l'état de publication et le calendrier. Si les résultats sont cachés, vérifiez Afficher les résultats avant de modifier le sondage. Si l'enregistrement échoue, vérifiez qu'au moins deux réponses ont un libellé et que la fin est postérieure au début.

Revenez à la présentation des extensions, consultez la version du catalogue ou utilisez la référence de l'Internal Content API.