Sondages Discourse

:discourse2: Résumé Le plugin Discourse Surveys vous permet de créer des sondages directement dans vos publications de forum Discourse en utilisant une syntaxe Markdown simple.
:hammer_and_wrench: Lien du dépôt \u003chttps://github.com/discourse/discourse-surveys\u003e
:open_book: Guide d’installation Comment installer des plugins dans Discourse

Le plugin Discourse Surveys vous permet de créer des sondages directement dans vos publications de forum Discourse en utilisant une syntaxe Markdown simple. Le plugin prend actuellement en charge une variété de types de questions tels que les boutons radio, les cases à cocher, les menus déroulants, les entrées numériques, les zones de texte, les évaluations par étoiles et les évaluations pouce levé/pouce baissé.

Fonctionnalités

  • 7 Types de champs différents : Boutons radio, cases à cocher, menus déroulants, zones de texte, sélection numérique, évaluations par étoiles et évaluations pouce levé/pouce baissé

  • Champs Obligatoires/Facultatifs : Marquez les champs comme obligatoires pour garantir leur remplissage

  • Prise en charge des Emojis : Utilisez des emojis dans vos options de sondage

  • Prise en charge de Markdown : Formatage de texte enrichi dans les questions et les options

  • Authentification Utilisateur : Invite de connexion automatique pour les utilisateurs anonymes

  • Suivi des Réponses : Empêche les soumissions dupliquées par le même utilisateur

  • Sensible aux Permissions : Respecte les permissions de sujet et de catégorie

  • Adapté aux Mobiles : Fonctionne parfaitement sur tous les appareils

Utilisation

Structure de Sondage de Base

Tous les sondages doivent être encapsulés dans des balises [survey] :


[survey name="mon-sondage" title="Sondage de Feedback Client"]

<!-- Les champs du sondage vont ici -->

[/survey]

Attributs du Sondage

  • name : Identifiant unique pour le sondage (par défaut : « survey »)

  • title : Titre facultatif affiché en haut du sondage

  • public : Définir la visibilité (fonctionnalité future)

  • status : État du sondage (fonctionnalité future)

Types de Champs

1. Boutons Radio (Choix Unique)


[radio question="Quelle est votre couleur préférée ?"]

- Rouge

- Bleu

- Vert

- Jaune

[/radio]

2. Cases à Cocher (Choix Multiple)


[checkbox question="Quelles fonctionnalités utilisez-vous ? (Sélectionnez tout ce qui s'applique)"]

- Notifications par e-mail

- Application mobile

- Notifications de bureau

- Accès API

[/checkbox]

3. Sélection par Menu Déroulant


[dropdown question="Quel est votre groupe d'âge ?"]

- Moins de 18 ans

- 18-24

- 25-34

- 35-44

- 45-54

- 55+

[/dropdown]

4. Zone de Texte (Texte Long)


[textarea question="Veuillez fournir des commentaires détaillés :" required="false"]

[/textarea]

5. Sélection Numérique


[number question="Évaluez cette fonctionnalité de 1 à 10 :" min="1" max="10"]

[/number]

6. Évaluation par Étoiles


[star question="Comment évalueriez-vous votre expérience globale ?"]

[/star]

7. Pouce Levé/Baissé


[thumbs question="Recommanderiez-vous ceci à d'autres ?"]

[/thumbs]

Attributs des Champs

Tous les types de champs prennent en charge ces attributs :

  • question : Le texte de la question (obligatoire)

  • required : Si le champ doit être rempli (true/false, par défaut à true)

  • min : Valeur minimale pour les champs numériques

  • max : Valeur maximale pour les champs numériques

Exemple Complet

Markdown de Sondage de Base

Voici un exemple de base de Markdown de sondage incluant tous les champs disponibles :

[survey name="sondage-impressionnant-pouces" title="Sondage Impressionnant"]

[radio question="Choisissez une seule option :"]
- chat
- chien
[/radio]

[checkbox question="Choisissez plusieurs options :"]
- rouge
- bleu
- vert
[/checkbox]

[dropdown question="Genre :"]
- Homme
- Femme
[/dropdown]

[number question="Évaluez ce sondage de 1 à 10 :"]
[/number]

[textarea question="Quels sont vos commentaires sur xyz ?" required="false"]
[/textarea]

[star question="Comment évalueriez-vous l'expérience globale ?"]
[/star]

[thumbs question="Êtes-vous satisfait de nos services ?"]
[/thumbs]

[/survey]

Rendu du Sondage

Ci-dessous, un exemple de la manière dont le Markdown ci-dessus est rendu dans Discourse :

Utilisation Avancée

Utilisation des Emojis dans les Options


[radio question="Choisissez votre animal préféré :"]

- 🐈 Chat

- 🐶 Chien

- 🐦 Oiseau

- 🐠 Poisson

[/radio]

Formatage Markdown dans les Questions


[radio question="Quel **langage de programmation** préférez-vous ?"]
- JavaScript
- Python
- Ruby
- Go
[/radio]

[checkbox question="Sélectionnez vos fonctionnalités *préférées* :"]
- Vitesse
- Sécurité
- Facilité d'utilisation
[/checkbox]

[textarea question="Veuillez lire nos [directives](https://example.com) et fournir vos commentaires :"]
[/textarea]

Formatage pris en charge :

  • Gras : **texte**
  • Italique : *texte*
  • Barré : ~~texte~~
  • Code en ligne : `code`
  • Liens : [texte](url)

Champs Obligatoires et Facultatifs Mixtes


[survey name="sondage-mixte"]

[radio question="Quel est votre rôle ?" required="true"]

- Développeur

- Concepteur

- Gestionnaire

- Autre

[/radio]

[textarea question="Des réflexions supplémentaires ?" required="false"]

[/textarea]

[/survey]

Résultats du Sondage

Actuellement, ce plugin n’a pas d’interface utilisateur backend pour visualiser les résultats du sondage directement. Au lieu de cela, vous pouvez vous fier aux requêtes Data Explorer pour récupérer et analyser les réponses au sondage. Voici un exemple de requête :

-- [params]
-- text :survey_name = survey

SELECT
  s.id,
  s.name,
  s.post_id,
  sf.question,
  COALESCE(sr.value, sfo.html) AS value,
  sr.user_id,
  sr.created_at AS responded_at
FROM
  surveys s
  JOIN survey_fields sf ON sf.survey_id = s.id
  JOIN survey_responses sr ON sr.survey_field_id = sf.id
  LEFT JOIN survey_field_options sfo ON sfo.id = sr.survey_field_option_id
WHERE
  s.name = :survey_name
ORDER BY
  s.id DESC

Permissions et Sécurité

  • Connexion Requise : Les utilisateurs anonymes doivent se connecter avant de soumettre des réponses

  • Une Réponse par Utilisateur : Chaque utilisateur ne peut soumettre qu’une seule réponse par sondage

  • Permissions de Sujet : Les utilisateurs doivent avoir l’autorisation de lecture du sujet pour voir les sondages

  • Permissions de Publication : Les utilisateurs doivent avoir les autorisations de publication dans le sujet pour soumettre des réponses

  • Sujets Archivés : Les sondages dans les sujets archivés ne peuvent pas accepter de nouvelles réponses

  • Publications Supprimées : Les sondages dans les publications supprimées ne sont plus accessibles

Limitations

  • Un seul sondage est autorisé par publication

  • La structure du sondage ne peut pas être modifiée après réception des réponses

  • Toutes les questions des champs du sondage doivent être uniques au sein d’un même sondage

  • Les questions des champs de sondage ne peuvent pas être vides

Détails Techniques

Schéma de Base de Données

Le plugin crée quatre tables de base de données principales :

  • surveys : Enregistrements principaux des sondages

  • survey_fields : Champs individuels dans les sondages

  • survey_field_options : Options pour les champs basés sur des choix

  • survey_responses : Réponses des utilisateurs aux champs du sondage

Style

Le plugin inclut un CSS réactif qui s’adapte à votre thème. Un style personnalisé peut être ajouté en ciblant ces classes CSS :

  • .survey - Conteneur principal du sondage

  • .survey-field - Enveloppe du champ individuel

  • .field-[type] - Conteneurs de types de champs spécifiques

  • .submit-response - Bouton de soumission

32 « J'aime »