Crea y gestiona encuestas con WebBlocks Polls

Haz una pregunta concreta a tus visitantes y recoge las respuestas en tu propia web. WebBlocks Polls añade una pantalla para gestionar encuestas y un bloque nativo Poll para mostrarlas en páginas del CMS. Puedes permitir una o varias opciones, decidir cuándo aparecen los resultados agregados y exportar los totales por opción como CSV. Los resultados usan barras horizontales con porcentajes y recuentos legibles. No necesitas una cuenta de encuestas externa ni código de inserción.

El ejemplo es Northstar Studio. Primero, los visitantes eligen el siguiente taller: Photography, Ceramics o Illustration. Después, otra encuesta de selección múltiple pregunta por sus intereses. Crearás un borrador, guardarás traducciones, publicarás la encuesta, la colocarás en una página, enviarás votos de prueba reales, consultarás resultados, cerrarás la encuesta y comprobarás un periodo de votación futuro.

Las imágenes usan el paquete publicado Polls 0.1.6 sobre WebBlocks CMS 1.106.5, con WebBlocks UI 2.32.0 incluido, interfaz inglesa, tema claro y contenido ficticio del estudio. El ejemplo contiene un voto real de selección única y otro de selección múltiple; las cifras son demostraciones, no resultados de investigación.

Polls 0.1.6 usa el idioma solicitado de la página del CMS para el texto, los controles y los mensajes de la encuesta. La política After closing muestra los resultados tras un cierre explícito o cuando una encuesta publicada alcanza su hora de finalización. La guía comprueba la vista traducida y un periodo futuro, además del flujo habitual en inglés.

Consulta los requisitos e integración en la referencia de Polls. Para la instalación general, empieza por Sistema de plugins.

Antes de empezar

Prepara una web de prueba y una cuenta Super admin para instalar el plugin. El paquete publicado declara compatibilidad con PHP ^8.3, CMS ^1.106.5 y Laravel ^13.0. Tu versión del CMS puede requerir un PHP más reciente; esta guía usa PHP 8.4. Revisa el resultado para tu servidor real en el catálogo oficial de Polls.

También necesitas una página que puedas editar y publicar, y permiso para gestionar encuestas. La web principal del ejemplo es Northstar Studio. Las páginas son Choose our next workshop, en /workshop-vote, y What would you like to learn?, en /workshop-options.

Las encuestas pertenecen a una web. En 0.1.6, la lista y el formulario normales no tienen selector de web; se utiliza la web principal accesible salvo que se indique un contexto explícito de Polls. Cambiar la web seleccionada en Pages no sustituye comprobar la propiedad de la encuesta. Para una integración multisitio, usa el contexto explícito de la referencia de la API de Polls. El bloque de una página solo enumera encuestas de la web de esa página.

Decide el uso de las respuestas, quién consultará los totales y cuándo terminará la votación. Mantén la pregunta breve, las opciones diferenciadas y evita recoger información impropia de una encuesta pública. Polls sirve para comentarios sencillos; la huella del visitante no demuestra que cada voto pertenezca a una persona distinta verificada.

1. Instala y activa Polls

  1. Abre System → Plugins como Super admin.
  2. Elige Browse Plugin Catalog y busca WebBlocks Polls.
  3. Revisa versión, compatibilidad y notas antes de Install from Catalog.
  4. Si el administrador proporciona el archivo publicado de confianza, selecciónalo en Plugin ZIP y pulsa Upload Plugin ZIP.
  5. Revisa el paquete instalado y actívalo.

El ejemplo instala el ZIP oficial publicado. Un plugin recién instalado permanece desactivado hasta que lo actives.

Pantalla Plugins con WebBlocks Polls 0.1.6 instalado pero Disabled junto al formulario de instalación ZIP manual

Abre los detalles y elige Enable Plugin. La instalación y activación del CMS actual aplican los cambios de base de datos del plugin. Antes de recoger votos, confirma Enabled, un estado saludable y tablas listas. Resuelve primero cualquier aviso de compatibilidad o migración.

Pantalla Plugins con WebBlocks Polls 0.1.6 Enabled y almacenamiento Healthy

La barra lateral contiene ahora un grupo Polls con una entrada Polls. Ábrela. Una instalación nueva muestra No polls have been created yet. y Add poll.

Lista de encuestas vacía con la acción Add poll

2. Asigna los permisos adecuados

Polls separa consulta, gestión y exportación:

Permiso Qué permite Operador habitual
View polls (webblocks-polls.view) Abrir la lista de encuestas de la web. Quien supervisa disponibilidad y totales de votos.
Manage polls (webblocks-polls.manage) Crear y editar preguntas, opciones, estado y programación. Editor responsable de la encuesta.
Export poll results (webblocks-polls.export) Descargar los totales agregados por opción como CSV. Quien necesita los resultados fuera del CMS.

Concede al editor los permisos de consulta y gestión necesarios. Añade el de exportación de forma deliberada. El acceso a la web es un límite independiente: los permisos del plugin no dan acceso a todas las encuestas de todas las webs. Revisa Roles y permisos antes de modificar un rol compartido.

Para colocar el bloque Poll, el editor también necesita los permisos normales de páginas y bloques. Crear la encuesta y editar la página que la contiene son tareas distintas.

3. Crea la primera encuesta como borrador

Elige Add poll. La primera tarjeta controla la identidad y disponibilidad:

Campo Ejemplo Northstar Cómo usarlo
Name Next Northstar workshop Etiqueta interna para operadores, común a todos los idiomas.
Handle next-workshop Identificador estable en minúsculas. Usa letras, números y guiones simples entre palabras.
Status Draft Mantén la votación deshabilitada mientras revisas la pregunta.
Choice mode Single choice Cada voto contiene exactamente una opción.
Show results After voting El visitante ve los totales tras votar correctamente en la sesión actual.
Starts at / Ends at Vacíos en este primer ejemplo Sin restricción adicional de fechas una vez publicada la encuesta.

El handle no es la dirección de la página. El bloque lo guarda para localizar la encuesta; evita cambiarlo después de colocarla. Usa un nombre comprensible para el equipo y un handle estable.

Configuración nueva con handle estable next-workshop, estado Draft, Single choice y After voting

Desplázate hasta Poll copy e introduce:

Campo Ejemplo
Locale en
Question Which workshop should we run next?
Description Help Northstar Studio choose its next community workshop.
Choice 1 Photography
Choice 2 Ceramics
Choice 3 Illustration
Choice 4 Dejar vacío.

La pregunta, la descripción opcional y las etiquetas son el texto que ven los visitantes. En 0.1.6, el formulario normal ofrece cuatro filas; este editor no tiene control Add choice. Debes rellenar al menos dos etiquetas. El contrato de integración admite hasta veinte filas, pero eso no añade veinte filas a este formulario.

Idioma inglés, pregunta, descripción y tres opciones de taller en Poll copy

Elige Save poll y confirma Poll saved.. Vuelve a la lista y comprueba el handle, el estado Draft y cero votos.

Encuesta Next Northstar workshop guardada con ajustes Draft y confirmación Poll saved

Nombre y pregunta admiten hasta 255 caracteres; handle, 100; descripción opcional, 2 000; y cada etiqueta, 255. Una pregunta breve y etiquetas concisas se leen mejor en móvil.

4. Guarda otro idioma sin sustituir el original

Vuelve a abrir Next Northstar workshop. Locale indica la copia de idioma que se escribirá al guardar; no es el selector del idioma de administración. Escribir otro código no carga el texto existente de ese idioma.

Para añadir el ejemplo turco:

  1. Cambia Locale de en a tr.
  2. Sustituye la pregunta por Bir sonraki atölyemiz hangisi olsun?.
  3. Traduce la descripción y las filas correspondientes: Fotoğrafçılık, Seramik, İllüstrasyon.
  4. Mantén cada opción en su fila y deja la cuarta opcional vacía.
  5. Conserva los valores compartidos previstos de nombre, handle, modo y disponibilidad y elige Save poll.

Guardar una traducción también envía los campos operativos compartidos del formulario. Revísalos antes para no publicar o reprogramar accidentalmente al añadir texto. La dirección de edición guardada conserva ?locale=tr. Usa esa vista al editar turco; el enlace normal de la lista vuelve al idioma predeterminado del panel.

Administración en inglés con Locale tr, pregunta y descripción turcas y sus opciones traducidas correspondientes

La pregunta y las etiquetas inglesas permanecen guardadas. El bloque público usa el idioma solicitado de la página para pregunta, descripción, opciones, controles y mensajes. Si falta una traducción, se utiliza el idioma de respaldo configurado y después la primera copia disponible. Traduce la pregunta y todas las opciones para cada idioma que publiques.

Tras publicar encuesta y página en los siguientes pasos, comprueba tanto la ruta traducida como la inglesa. El idioma público de la encuesta es independiente del idioma de administración del operador. Consulta Añadir un idioma a una web para activar idiomas y traducir el resto de la página.

5. Elige la política de resultados públicos

Show results cambia lo que muestra el bloque Poll. No elimina los totales guardados ni sustituye los permisos de los operadores.

Ajuste Comportamiento real en 0.1.6 Uso práctico
Always Muestra totales en lugar del formulario, incluso con la votación abierta. Mostrar resultados. No lo uses cuando el bloque deba ofrecer un formulario para votar.
After voting Muestra totales si la sesión actual ya votó; si no, ofrece el formulario solo mientras esté abierta. Opción predeterminada probada para una encuesta pública normal.
After closing Muestra totales de una encuesta explícitamente Closed o Published cuya hora final llegó. No incluye Draft ni una que abra en el futuro. Ocultar resultados durante la votación y mostrarlos al terminar.
Never No muestra resultados agregados públicos. Una vez que la sesión vota, no vuelve a ofrecer el formulario. Recoger respuestas sin publicar totales.

El aviso This poll is closed. también puede aparecer si el visitante ya votó y la política oculta resultados, o si aún no llegó el inicio. Ese mensaje genérico no demuestra por sí solo que el operador eligiera Status → Closed. Revisa juntos estado, fechas y política.

Para el primer ejercicio, mantén After voting. Ofrece un formulario antes del primer envío y resultados después.

6. Publica la encuesta

Abre la encuesta inglesa guardada, cambia Status a Published y elige Save poll. Deja las dos fechas vacías en esta primera prueba. Vuelve a la lista y confirma Published junto a next-workshop.

Encuesta Northstar guardada como Published y lista para elegirla en un bloque Poll

Publicar la encuesta permite seleccionarla en el bloque de la página. No crea una página, añade el bloque ni publica la página. Una encuesta solo acepta votos cuando está Published y se cumplen las condiciones de inicio y final configuradas.

7. Añade el bloque Poll nativo a una página

Abre la página en Pages, elige Edit Blocks para su área Main y localiza el contenedor de la encuesta. Nuestra página ya tiene título e introducción. Para empezar desde cero, consulta Página, diseño, área y bloque y Crear una página.

  1. Usa Add child block en el contenedor o Add Block en un lugar apto.
  2. Busca Poll en el catálogo de bloques.
  3. Selecciona Poll, descrito como Places a published poll on a page..
Búsqueda del catálogo con el bloque Poll disponible dentro del contenedor de página

En Block Fields, elige Next Northstar workshop en el selector Poll. Pulsa Save New Block.

Campos nativos del bloque Poll seleccionando Next Northstar workshop mediante su handle estable

El selector enumera encuestas Published de la web de la página. Si falta una, comprueba primero su estado y web propietaria. Una fecha de inicio futura no la elimina del selector; sigue controlando cuándo el formulario público admite votos.

El bloque referencia la encuesta original en vez de copiar pregunta y opciones en la página. Las modificaciones posteriores pueden afectar a todas las páginas que usen el mismo handle. Crea una encuesta nueva para una campaña nueva, en vez de reutilizar otra con votos existentes.

8. Previsualiza y publica la página

Abre la Preview guardada. Comprueba pregunta, descripción, botones de opción correctos y política de resultados. El bloque Poll y sus bloques superiores deben estar habilitados para publicación.

Vista previa de la página borrador con la encuesta de selección única antes de hacerla pública

Trata una vista previa que contiene una encuesta Published activa como una encuesta interactiva. No supongas que un envío de prueba es una simulación: puede registrar un voto real. Aquí inspeccionamos la vista previa y votamos solo desde la página publicada localmente.

Cuando esté lista, sigue Publicar una página. En Overview, usa Publish si tu rol lo permite o sigue la revisión de tu equipo. Abre después View Page y prueba la ruta pública real.

En nuestra página publicada, elige Photography. Solo puede seleccionarse un botón de opción a la vez.

Página Northstar publicada con Photography seleccionado en la encuesta de selección única

9. Envía un voto e interpreta el resultado

Pulsa Vote una vez y confirma Thank you. Your vote was recorded.. Con After voting, los resultados agregados sustituyen al formulario en la sesión actual.

Voto único enviado correctamente con mensaje de agradecimiento y barras horizontales que muestran un voto para Photography

Nuestro único voto de prueba da a Photography 100% (1 votes) y cero a las demás opciones. Su barra ocupa toda la pista; una opción con valor cero conserva la pista vacía. Cada barra usa la misma escala 0–100%. Encima siguen visibles nombre, porcentaje y número de votos. El ejemplo demuestra el flujo, pero no permite concluir preferencias reales de los visitantes.

Recarga la página. El resultado continúa disponible en la misma sesión y el formulario no reaparece. Su visibilidad tras votar depende del estado de sesión; un navegador que vuelva después de cambiar la sesión puede ver otra cosa. No prometas acceso personal permanente a los resultados.

Abre la traducción turca para revisar el texto anterior. Un visitante que no ha votado ve Bir sonraki atölyemiz hangisi olsun?, etiquetas traducidas y el botón Oy ver, como abajo. Si la sesión ya votó, ve resultados en turco con After voting. Ambas rutas apuntan a la misma encuesta; cambiar el idioma no crea otro voto.

Página de visitante turca con pregunta de taller traducida, opciones y botón Oy ver

Como comparación visual independiente, la imagen siguiente usa una encuesta sintética de 20 votos: 12 para Photography, 6 para Ceramics y 2 para Illustration. Las barras muestran 60%, 30% y 10% en la misma escala. Este conjunto está separado del ejemplo de un voto; no es una encuesta real del público ni modifica los recuentos restantes.

Encuesta sintética separada con barras horizontales al 60 por ciento para Photography, 30 para Ceramics y 10 para Illustration

Las barras usan medidores HTML nativos con el estilo de la primitiva compartida de WebBlocks UI. No necesitan una biblioteca de gráficos ni JavaScript para representar sus valores. Conserva el texto visible al revisar resultados; color y longitud de barra son apoyos visuales.

10. Comprueba los votos y exporta CSV

Vuelve a Polls en el panel. La columna Votes cuenta papeletas registradas. Nuestra encuesta de selección única muestra ahora una.

Lista de administración Polls con un voto registrado para Next Northstar workshop

Para los totales por opción, abre la encuesta guardada y baja hasta después de las opciones. Elige Export CSV junto a Save poll. Requiere permiso Export poll results y acceso a la web propietaria.

Encuesta inglesa guardada con Export CSV junto a Save poll debajo de las opciones

La exportación contiene datos agregados: etiqueta de opción y número de selecciones. No es un listado de votantes individuales ni una exportación de sus direcciones IP. El ejemplo inglés de selección única produce:

Choice,Votes
Photography,1
Ceramics,0
Illustration,0

El editor normal de 0.1.6 no ofrece un panel separado de resultados por opción. Usa el recuento de papeletas de la lista, el CSV para los totales o el endpoint agregado autorizado de la referencia de la API de Polls. El ajuste público Show results no elimina la exportación autorizada.

11. Crea una encuesta de selección múltiple separada

Crea otra encuesta para conservar el significado y los votos de la primera. Nuestro segundo ejemplo usa:

Campo Valor
Name Workshop learning interests
Handle learning-interests
Status Published
Choice mode Multiple choice
Show results After voting
Question Which topics would you like to learn?
Description Choose every workshop topic that interests you.
Choices Photography; Ceramics; Illustration
Encuesta separada learning-interests configurada con Multiple choice y After voting

Coloca un bloque Poll en What would you like to learn?, selecciona la segunda encuesta, previsualiza y publica la página. El formulario público usa ahora casillas. Selecciona Photography e Illustration.

Formulario de selección múltiple con Photography e Illustration marcados

Pulsa Vote. Una papeleta registra ambas selecciones.

Resultado múltiple con barras independientes de ancho completo para Photography e Illustration, seleccionadas en la única papeleta

El porcentaje de cada opción usa como denominador el número de papeletas. Una de una eligió Photography y una de una eligió Illustration; ambas muestran 100% y barras completas. En selección múltiple, los porcentajes no tienen que sumar 100%: las barras son independientes y no segmentos de una única barra del 100%. La lista sigue contando una papeleta; el CSV contiene dos votos por opción seleccionada.

12. Comprende la protección frente a votos repetidos

Tras votar correctamente, la sesión actual deja de recibir el formulario normal. Si Back en el navegador restaura el formulario anterior y se envía de nuevo, el servidor comprueba también la huella. Nuestro reenvío devuelve You have already voted in this poll. y el total de papeletas sigue siendo uno.

Reenvío rechazado por voto previo con los totales originales de selección múltiple conservados

El plugin utiliza protección CSRF, límites de solicitudes por ruta y una huella HMAC seudónima basada en encuesta, sesión, IP de la solicitud y agente de usuario. No guarda la IP sin procesar como campo de la papeleta. Es una medida disuasoria práctica, no identidad verificada: cambiar la sesión u otros datos de la huella puede permitir otro voto. Usa un proceso apropiado basado en identidad cuando sea esencial un voto verificado por persona.

Si el visitante recibe una respuesta de límite de solicitudes, detén los reenvíos y espera el plazo normal. No desactives el límite para eludirla. Practica votos y repeticiones en una encuesta desechable; no añadas votos de ensayo a resultados que vayas a utilizar.

13. Cierra la encuesta y decide qué sigue visible

Al terminar, vuelve a abrir la encuesta, elige Status → Closed y pulsa Save poll. Cerrar conserva los votos y las traducciones.

En el primer ejemplo elegimos además Show results → Never para mostrar una encuesta cerrada sin totales públicos.

Encuesta Northstar guardada con estado Closed y Never para resultados públicos

Recarga la página pública. La pregunta permanece, el formulario no está disponible y el bloque muestra This poll is closed..

Encuesta cerrada con aviso de cierre y sin controles de voto ni totales públicos

Si quieres publicar los totales conservados al acabar, elige una política adecuada. Con After closing en esta encuesta realmente Closed, el bloque muestra los recuentos guardados y ningún formulario.

Encuesta cerrada que muestra sus resultados agregados conservados con barras horizontales tras elegir After closing

Para reabrir la misma encuesta, elige Status → Published, comprueba fechas y política y guarda. Los votos permanecen; reabrir no reinicia a los votantes anteriores ni crea una campaña nueva. Verificamos la reapertura conservando el voto original. Crea otra encuesta y handle cuando una nueva pregunta necesite totales independientes.

14. Programa con cuidado el periodo de votación

La encuesta admite votos solo si está Published, el inicio está vacío o ya llegó y el final está vacío o sigue en el futuro. El final debe ser posterior al inicio. Cerrar manualmente detiene la votación independientemente de las fechas.

Usa fechas futuras apropiadas para tu evento. El ejemplo separado Scheduled workshop usa noviembre de 2030 para mantenerse claramente en el futuro durante la demostración. El formulario no indica zona horaria junto a las fechas; confirma la zona de la aplicación con el administrador en vez de asumir que la zona de visualización de la web convierte las entradas automáticamente.

Encuesta programada Published con inicio y final futuros y resultados After closing

Con After closing, antes de abrir esta encuesta futura muestra un aviso de cierre sin totales ni formulario. Al comenzar el periodo Published, los visitantes pueden votar y los resultados siguen ocultos. Al llegar el final, los resultados guardados se hacen visibles. Un estado explícito Closed también permite mostrarlos; Draft no, aunque sus fechas hayan pasado.

Encuesta futura antes de abrir con aviso de cierre y sin totales ni controles bajo After closing

Elige After closing para posponer resultados hasta el final, After voting para mostrarlos a la sesión actual tras votar o Never para ocultar totales públicos. Revisa la página real en cada límite. Always muestra resultados en lugar del formulario; no resuelve la recogida de votos.

El cálculo de abierto/cerrado se realiza durante las solicitudes; no necesitas otra tarea para cambiar el estado en cada límite. Prueba el comportamiento real de inicio y final en tu servidor antes de confiar en la programación. Revisa también las cachés entre visitante y aplicación para evitar que una página antigua represente mal el estado actual.

Solución de problemas

Síntoma Qué comprobar
Polls no aparece en la barra lateral Instalación, activación, compatibilidad, permiso View polls y acceso a la web.
Hay migraciones del plugin pendientes Usa un servidor actual compatible y resuelve el resultado registrado de instalación de base de datos antes de recoger votos.
No se guarda la encuesta Nombre obligatorio, handle válido y estable, idioma, pregunta, al menos dos etiquetas y final posterior al inicio.
La encuesta no aparece en el selector Estado Published y propiedad de la web de la página. El selector normal no ofrece Draft ni Closed.
La página no tiene encuesta Selección guardada del bloque, handle estable, web correcta, bloques superiores habilitados y plugin activo.
La encuesta está Published pero la página no está disponible Publicar la página es independiente de publicar la encuesta. Abre su ruta real tras publicarla.
Aparecen resultados en lugar del formulario Show results → Always, After closing con Closed explícito o tras el final de Published, o sesión que ya votó con After voting.
Los resultados aparecen antes de lo esperado Comprueba Always, sesión que ya votó con After voting, Closed explícito y final guardado. After closing espera al cierre real o final de Published.
El bloque dice cerrada pero está Published Fechas futuras/pasadas, estado de voto de la sesión y política de resultados. El aviso es genérico.
La página traducida muestra texto de respaldo Idioma solicitado, idioma guardado de la encuesta, etiquetas correspondientes y Polls 0.1.6 o posterior. Traduce aparte la página circundante.
Hay texto de resultados pero faltan barras horizontales Usa Polls 0.1.6 con CMS 1.106.5 o posterior y comprueba la carga de WebBlocks UI CSS incluido. Actualiza cachés antiguas tras actualizar.
Los porcentajes sumados superan 100% En selección múltiple se calculan por papeleta para cada opción. Una papeleta puede seleccionar varias.
Export CSV no está disponible o está prohibido Guarda la encuesta y revisa permiso de exportación y acceso a la web. Contiene totales por opción, no un directorio de votantes.

Termina con un lanzamiento controlado

Antes de invitar a visitantes reales, revisa web propietaria, handle estable, texto, modo, permisos, fechas y política de resultados. Comprueba por separado la página y su ruta publicada. Envía un voto en una encuesta desechable, valida el recuento y CSV y después crea otra para los totales que realmente usarás.

Si el lanzamiento es multilingüe o programado, verifica la vista de visitante en cada idioma y en los límites temporales relevantes. Revisa la vista real y los recuentos registrados, además del formulario guardado. Asigna a un operador el cierre, la exportación y la adecuación de los resultados públicos a su audiencia.

Continúa con la referencia de Polls para integración, Roles y permisos para acceso o Publicar una página para el flujo de páginas.