| 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 all’interno dei 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 discesa (dropdown), input numerici, aree di testo (textarea), valutazioni a stelle e valutazioni pollice su/giù.
Funzionalità
-
7 Diversi Tipi di Campo: Pulsanti di opzione, caselle di controllo, menu a discesa, aree di testo, selezione numerica, valutazioni a stelle e pollice su/giù
-
Campi Obbligatori/Opzionali: Contrassegna i campi come obbligatori per garantirne il completamento
-
Supporto Emoji: Utilizza emoji nelle opzioni del tuo sondaggio
-
Supporto Markdown: Formattazione di testo ricco in domande e opzioni
-
Autenticazione Utente: Prompt di accesso automatico per utenti anonimi
-
Tracciamento Risposte: Impedisce invii duplicati dallo stesso utente
-
Consapevolezza dei Permessi: Rispetta i permessi di topic e categoria
-
Mobile Responsive: Funziona perfettamente su tutti i dispositivi
Utilizzo
Struttura Base del Sondaggio
Tutti i sondaggi devono essere racchiusi tra tag [survey]:
[survey name="my-survey" title="Sondaggio di Feedback del Cliente"]
<!-- I campi del sondaggio vanno qui -->
[/survey]
Attributi del Sondaggio
-
name: Identificatore univoco per il sondaggio (predefinito su “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="Qual è il tuo colore preferito?"]
- Rosso
- Blu
- Verde
- Giallo
[/radio]
2. Caselle di Controllo (Scelta Multipla)
[checkbox question="Quali funzionalità utilizzi? (Seleziona tutte quelle applicabili)"]
- Notifiche via email
- App mobile
- Notifiche desktop
- Accesso API
[/checkbox]
3. Selezione a Discesa
[dropdown question="Qual è la tua fascia d'età?"]
- Sotto i 18
- 18-24
- 25-34
- 35-44
- 45-54
- 55+
[/dropdown]
4. Area di Testo (Testo in Forma Lunga)
[textarea question="Fornisci un feedback dettagliato:" required="false"]
[/textarea]
5. Selezione Numerica
[number question="Valuta questa funzionalità da 1 a 10:" min="1" max="10"]
[/number]
6. Valutazione a Stelle
[star question="Come valuteresti la tua esperienza complessiva?"]
[/star]
7. Pollice Su/Giù
[thumbs question="Lo consiglieresti ad altri?"]
[/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 sutrue) -
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="Sondaggio Fantastico"]
[radio question="Scegli una sola opzione:"]
- gatto
- cane
[/radio]
[checkbox question="Scegli più opzioni:"]
- rosso
- blu
- verde
[/checkbox]
[dropdown question="Genere:"]
- Maschio
- Femmina
[/dropdown]
[number question="Valuta questo sondaggio da 1 a 10:"]
[/number]
[textarea question="Qual è il tuo feedback su xyz?" required="false"]
[/textarea]
[star question="Come valuti l'esperienza complessiva?"]
[/star]
[thumbs question="Sei rimasto soddisfatto dei nostri servizi?"]
[/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="Scegli il tuo animale preferito:"]
- 🐈 Gatto
- 🐶 Cane
- 🐦 Uccello
- 🐠 Pesce
[/radio]
Formattazione Markdown nelle Domande
[radio question="Quale **linguaggio di programmazione** preferisci?"]
- JavaScript
- Python
- Ruby
- Go
[/radio]
[checkbox question="Seleziona le tue funzionalità *preferite*:"]
- Velocità
- Sicurezza
- Facilità d'uso
[/checkbox]
[textarea question="Si prega di leggere le nostre [linee guida](https://example.com) e fornire un feedback:"]
[/textarea]
Formattazione supportata:
- Grassetto:
**testo** - Corsivo:
*testo* Barrato:~~testo~~Codice inline:`codice`- Link:
[testo](url)
Campi Obbligatori e Opzionali Misti
[survey name="mixed-survey"]
[radio question="Qual è il tuo ruolo?" required="true"]
- Sviluppatore
- Designer
- Manager
- Altro
[/radio]
[textarea question="Qualsiasi pensiero aggiuntivo?" 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 un esempio di query:
-- [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 solo una 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 di database principali:
-
surveys: Registrazioni principali del sondaggio -
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. Stili personalizzati possono essere aggiunti 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
