| Resumen | El plugin Discourse Surveys te permite crear encuestas directamente en tus publicaciones del foro de Discourse usando una sintaxis Markdown sencilla. | |
| Enlace al Repositorio | https://github.com/discourse/discourse-surveys | |
| Guía de Instalación | Cómo instalar plugins en Discourse |
El Plugin Discourse Surveys te permite crear encuestas directamente en tus publicaciones del foro de Discourse usando una sintaxis Markdown sencilla. El plugin actualmente soporta una variedad de tipos de preguntas como botones de radio, casillas de verificación, menús desplegables, entradas numéricas, áreas de texto, valoraciones con estrellas y valoraciones de pulgar arriba/abajo.
Características
-
7 Tipos de Campos Diferentes: Botones de radio, casillas de verificación, menús desplegables, áreas de texto, selección numérica, valoraciones con estrellas y pulgar arriba/abajo
-
Campos Obligatorios/Opcionales: Marca los campos como obligatorios para asegurar su cumplimentación
-
Soporte para Emojis: Usa emojis en tus opciones de encuesta
-
Soporte Markdown: Formato de texto enriquecido en preguntas y opciones
-
Autenticación de Usuario: Solicitudes de inicio de sesión automáticas para usuarios anónimos
-
Seguimiento de Respuestas: Previene envíos duplicados del mismo usuario
-
Consciente de Permisos: Respeta los permisos de temas y categorías
-
Adaptable a Móviles: Funciona perfectamente en todos los dispositivos
Uso
Estructura Básica de la Encuesta
Todas las encuestas deben estar envueltas en etiquetas [survey]:
[survey name="mi-encuesta" title="Encuesta de Opinión del Cliente"]
<!-- Van aquí los campos de la encuesta -->
[/survey]
Atributos de la Encuesta
-
name: Identificador único para la encuesta (por defecto es “survey”) -
title: Título opcional que se muestra en la parte superior de la encuesta -
public: Establece la visibilidad (característica futura) -
status: Estado de la encuesta (característica futura)
Tipos de Campos
1. Botones de Radio (Opción Única)
[radio question="¿Cuál es tu color favorito?"]
- Rojo
- Azul
- Verde
- Amarillo
[/radio]
2. Casillas de Verificación (Opción Múltiple)
[checkbox question="¿Qué características utilizas? (Selecciona todas las que apliquen)"]
- Notificaciones por correo electrónico
- Aplicación móvil
- Notificaciones de escritorio
- Acceso a la API
[/checkbox]
3. Selección Desplegable
[dropdown question="¿Cuál es tu grupo de edad?"]
- Menos de 18
- 18-24
- 25-34
- 35-44
- 45-54
- 55+
[/dropdown]
4. Área de Texto (Texto Largo)
[textarea question="Por favor, proporciona comentarios detallados:" required="false"]
[/textarea]
5. Selección Numérica
[number question="Valora esta característica del 1 al 10:" min="1" max="10"]
[/number]
6. Valoración con Estrellas
[star question="¿Cómo calificarías tu experiencia general?"]
[/star]
7. Pulgar Arriba/Abajo
[thumbs question="¿Recomendarías esto a otros?"]
[/thumbs]
Atributos de Campo
Todos los tipos de campo soportan estos atributos:
-
question: El texto de la pregunta (obligatorio) -
required: Si el campo debe rellenarse (true/false, por defecto estrue) -
min: Valor mínimo para campos numéricos -
max: Valor máximo para campos numéricos
Ejemplo Completo
Markdown Básico de la Encuesta
Aquí tienes un ejemplo básico de Markdown de encuesta incluyendo todos los campos disponibles:
[survey name="awesome-survey-thumbs" title="Encuesta Genial"]
[radio question="Elige una opción:"]
- gato
- perro
[/radio]
[checkbox question="Elige opciones múltiples:"]
- rojo
- azul
- verde
[/checkbox]
[dropdown question="Género:"]
- Masculino
- Femenino
[/dropdown]
[number question="Valora esta encuesta del 1 al 10:"]
[/number]
[textarea question="¿Cuál es tu opinión sobre xyz?" required="false"]
[/textarea]
[star question="¿Cómo calificarías la experiencia general?"]
[/star]
[thumbs question="¿Quedaste satisfecho con nuestros servicios?"]
[/thumbs]
[/survey]
Renderizado de la Encuesta
A continuación, se muestra un ejemplo de cómo se renderiza el Markdown anterior en Discourse:
Uso Avanzado
Uso de Emojis en Opciones
[radio question="Elige tu animal favorito:"]
- 🐈 Gato
- 🐶 Perro
- 🐦 Pájaro
- 🐠 Pez
[/radio]
Formato Markdown en Preguntas
[radio question="¿Qué **lenguaje de programación** prefieres?"]
- JavaScript
- Python
- Ruby
- Go
[/radio]
[checkbox question="Selecciona tus características *favoritas*:"]
- Velocidad
- Seguridad
- Facilidad de uso
[/checkbox]
[textarea question="Por favor, lee nuestras [directrices](https://example.com) y proporciona tus comentarios:"]
[/textarea]
Formato soportado:
- Negrita:
**texto** - Cursiva:
*texto* Tachado:~~texto~~Código en línea:`código`- Enlaces:
[texto](url)
Campos Obligatorios y Opcionales Mixtos
[survey name="mixed-survey"]
[radio question="¿Cuál es tu rol?" required="true"]
- Desarrollador
- Diseñador
- Gerente
- Otro
[/radio]
[textarea question="¿Algún pensamiento adicional?" required="false"]
[/textarea]
[/survey]
Resultados de la Encuesta
Actualmente, este plugin no tiene una interfaz de usuario (UX) de backend para ver los resultados de la encuesta directamente. En su lugar, puedes confiar en las consultas de Data Explorer para obtener y analizar las respuestas de la encuesta. Aquí hay un ejemplo de consulta:
-- [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
Permisos y Seguridad
-
Inicio de Sesión Requerido: Los usuarios anónimos deben iniciar sesión antes de enviar respuestas
-
Una Respuesta por Usuario: Cada usuario solo puede enviar una respuesta por encuesta
-
Permisos de Tema: Los usuarios deben tener permiso de lectura en el tema para ver las encuestas
-
Permisos de Publicación: Los usuarios deben tener permisos de publicación en el tema para enviar respuestas
-
Temas Archivados: Las encuestas en temas archivados no pueden aceptar nuevas respuestas
-
Publicaciones Eliminadas: Las encuestas en publicaciones eliminadas ya no son accesibles
Limitaciones
-
Solo se permite una encuesta por publicación
-
La estructura de la encuesta no se puede modificar después de recibir respuestas
-
Todas las preguntas de los campos de la encuesta deben ser únicas dentro de una sola encuesta
-
Las preguntas de los campos de la encuesta no pueden estar en blanco
Detalles Técnicos
Esquema de la Base de Datos
El plugin crea cuatro tablas principales en la base de datos:
-
surveys: Registros principales de la encuesta -
survey_fields: Campos individuales dentro de las encuestas -
survey_field_options: Opciones para campos basados en selección -
survey_responses: Respuestas de los usuarios a los campos de la encuesta
Estilo
El plugin incluye CSS responsivo que se adapta a tu tema. Se puede añadir estilo personalizado seleccionando estas clases CSS:
-
.survey- Contenedor principal de la encuesta -
.survey-field- Contenedor de campo individual -
.field-[type]- Contenedores de tipos de campo específicos -
.submit-response- Botón de envío
