| Riepilogo | Il plugin Discourse Surveys ti consente di creare sondaggi direttamente nei tuoi post del forum Discourse utilizzando una semplice sintassi Markdown. | |
| Link al Repository | https://github.com/discourse/discourse-surveys | |
| Guida all’Installazione | Come installare i plugin in Discourse |
Il Plugin Discourse Surveys ti consente di creare sondaggi direttamente nei tuoi post del forum Discourse utilizzando una semplice sintassi Markdown. Il plugin attualmente supporta una varietà di tipi di domande come pulsanti di opzione (radio button), caselle di controllo (checkbox), menu a tendina (dropdown), input numerici, aree di testo (text area), valutazioni a stelle e valutazioni pollice su/giù.
Funzionalità
-
7 Diversi Tipi di Campo: Pulsanti di opzione, caselle di controllo, menu a tendina, aree di testo, selezione numerica, valutazioni a stelle e pollice su/giù
-
Campi Obbligatori/Opzionali: Segna i campi come obbligatori per garantirne la compilazione
-
Supporto Emoji: Utilizza emoji nelle opzioni del tuo sondaggio
-
Supporto HTML: Formattazione di testo ricco in domande e opzioni
-
Autenticazione Utente: Richieste di accesso automatiche per utenti anonimi
-
Tracciamento Risposte: Impedisce invii duplicati dallo stesso utente
-
Consapevole dei Permessi: Rispetta i permessi di topic e categoria
-
Responsive per Mobile: Funziona perfettamente su tutti i dispositivi
Utilizzo
Struttura Base del Sondaggio
Tutti i sondaggi devono essere racchiusi tra i tag [survey]:
[survey name="my-survey" title="Customer Feedback Survey"]
<!-- I campi del sondaggio vanno qui -->
[/survey]
Attributi del Sondaggio
-
name: Identificatore univoco per il sondaggio (predefinito è “survey”) -
title: Titolo opzionale visualizzato in cima al sondaggio -
public: Imposta la visibilità (funzionalità futura) -
status: Stato del sondaggio (funzionalità futura)
Tipi di Campo
1. Pulsanti di Opzione (Scelta Singola)
[radio question="What is your favorite color?"]
- Red
- Blue
- Green
- Yellow
[/radio]
2. Caselle di Controllo (Scelta Multipla)
[checkbox question="Which features do you use? (Select all that apply)"]
- Email notifications
- Mobile app
- Desktop notifications
- API access
[/checkbox]
3. Selezione a Tendina (Dropdown)
[dropdown question="What is your age group?"]
- Under 18
- 18-24
- 25-34
- 35-44
- 45-54
- 55+
[/dropdown]
4. Area di Testo (Testo Lungo)
[textarea question="Please provide detailed feedback:" required="false"]
[/textarea]
5. Selezione Numerica
[number question="Rate this feature from 1-10:" min="1" max="10"]
[/number]
6. Valutazione a Stelle
[star question="How would you rate your overall experience?"]
[/star]
7. Pollice Su/Giù
[thumbs question="Would you recommend this to others?"]
[/thumbs]
Attributi dei Campi
Tutti i tipi di campo supportano questi attributi:
-
question: Il testo della domanda (obbligatorio) -
required: Se il campo deve essere compilato (true/false, predefinito ètrue) -
min: Valore minimo per i campi numerici -
max: Valore massimo per i campi numerici
Esempio Completo
Markdown Base del Sondaggio
Ecco un esempio base di Markdown per il sondaggio che include tutti i campi disponibili:
[survey name="awesome-survey-thumbs" title="Awesome Survey"]
[radio question="Choose any one option:"]
- cat
- dog
[/radio]
[checkbox question="Choose multiple options:"]
- red
- blue
- green
[/checkbox]
[dropdown question="Gender:"]
- Male
- Female
[/dropdown]
[number question="Rate this survey from 1 to 10:"]
[/number]
[textarea question="What is your feedback about xyz?" required="false"]
[/textarea]
[star question="How would you rate overall experience?"]
[/star]
[thumbs question="Were you satisfied with our services?"]
[/thumbs]
[/survey]
Rendering del Sondaggio
Di seguito è riportato un esempio di come viene renderizzato il Markdown sopra in Discourse:
Utilizzo Avanzato
Utilizzo di Emoji nelle Opzioni
[radio question="Choose your favorite animal:"]
- 🐈 Cat
- 🐶 Dog
- 🐦 Bird
- 🐠 Fish
[/radio]
Formattazione HTML nelle Domande
[radio question="Which <strong>programming language</strong> do you prefer?"]
- JavaScript
- Python
- Ruby
- Go
[/radio]
Campi Obbligatori e Opzionali Misti
[survey name="mixed-survey"]
[radio question="What is your role?" required="true"]
- Developer
- Designer
- Manager
- Other
[/radio]
[textarea question="Any additional thoughts?" required="false"]
[/textarea]
[/survey]
Risultati del Sondaggio
Attualmente, questo plugin non dispone di un’interfaccia utente backend per visualizzare direttamente i risultati del sondaggio. Invece, puoi fare affidamento sulle query di Data Explorer per recuperare e analizzare le risposte al sondaggio. Ecco una query di esempio:
-- [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
Permessi e Sicurezza
-
Accesso Richiesto: Gli utenti anonimi devono accedere prima di inviare risposte
-
Una Risposta per Utente: Ogni utente può inviare una sola risposta per sondaggio
-
Permessi Topic: Gli utenti devono avere accesso in lettura al topic per visualizzare i sondaggi
-
Permessi di Pubblicazione: Gli utenti devono avere i permessi di pubblicazione nel topic per inviare risposte
-
Topic Archiviati: I sondaggi nei topic archiviati non possono accettare nuove risposte
-
Post Eliminati: I sondaggi nei post eliminati non sono più accessibili
Limitazioni
-
È consentito un solo sondaggio per post
-
La struttura del sondaggio non può essere modificata dopo aver ricevuto risposte
-
Tutte le domande dei campi del sondaggio devono essere univoche all’interno di un singolo sondaggio
-
Le domande dei campi del sondaggio non possono essere vuote
Dettagli Tecnici
Schema del Database
Il plugin crea quattro tabelle principali del database:
-
surveys: Registrazioni principali dei sondaggi -
survey_fields: Campi individuali all’interno dei sondaggi -
survey_field_options: Opzioni per i campi basati sulla scelta -
survey_responses: Risposte degli utenti ai campi del sondaggio
Stile
Il plugin include CSS responsive che si adatta al tuo tema. È possibile aggiungere uno stile personalizzato selezionando queste classi CSS:
-
.survey- Contenitore principale del sondaggio -
.survey-field- Involucro del campo individuale -
.field-[type]- Contenitori specifici per tipo di campo -
.submit-response- Pulsante di invio

