0
Sistema de Encuestas en Posts v1.0
Nuevo módulo para Risus Nova 2.0 — PHPost
Nuevo módulo para Risus Nova 2.0 — PHPost
Sistema de Encuestas en Posts v1.0 para Risus Nova 2.0: el Sistema de Encuestas en Posts. Al crear un post puedes añadir una encuesta opcional con hasta 8 opciones. Los usuarios votan directamente desde el post y los resultados se actualizan en tiempo real sin recargar la página.
Capturas
[img]Registrate o inicia tu sesión para ver este contenido[/img]
[img]Registrate o inicia tu sesión para ver este contenido[/img]
[img]Registrate o inicia tu sesión para ver este contenido[/img]
[img]Registrate o inicia tu sesión para ver este contenido[/img]
📊 ¿Qué incluye?
- Encuesta opcional al crear cualquier post
- Hasta 8 opciones por encuesta
- Duración configurable — se puede poner fecha de cierre o sin límite
- Resultados en tiempo real con barras de progreso animadas
- Anti-doble voto por usuario y por IP
- Los usuarios no registrados ven los resultados pero no pueden votar
- Encuestas cerradas siguen mostrando resultados
- Al votar el formulario se transforma en resultados sin recargar
🛠️ Instalación
Paso 1 — Ejecutar el instalador
Sube la carpeta install/ a la raíz del sitio y accede a:
Código: ( Seleccionar Todo )
Registrate o inicia tu sesión para ver este contenidoPulsa Instalar ahora. El instalador creará 3 tablas:
- p_encuestas — encuestas ligadas a posts
- p_encuestas_opciones — opciones de cada encuesta
- p_encuestas_votos — registro de votos por usuario e IP
⚠️ Elimina la carpeta install/ del servidor cuando termine.
Paso 2 — Subir los archivos
Código: ( Seleccionar Todo )
inc/class/c.encuestas.php → inc/class/
inc/php/ajax/ajax.encuesta.php → inc/php/ajax/
themes/default/css/encuesta.css → themes/default/css/
themes/default/templates/modules/m.encuesta.tpl → themes/default/templates/modules/
themes/default/templates/modules/m.encuesta_form.tpl → themes/default/templates/modules/Paso 3 — c.posts.php
Abre inc/class/c.posts.php y busca el return $postID; al final de la función newPost(). Añade justo antes:
Código: ( Seleccionar Todo )
// ── Encuesta ──
if (!empty($_POST['enc_pregunta']) && !empty($_POST['enc_opciones'])) {
require_once TS_CLASS . 'c.encuestas.php';
$tsEncObj = new tsEncuestas();
$tsEncObj->crearEncuesta(
$postID,
$_POST['enc_pregunta'],
$_POST['enc_opciones'],
(int)($_POST['enc_expira_dias'] ?? 0)
);
}
// ────────────
return $postID;Paso 4 — posts.php
Abre inc/php/posts.php y busca:
Código: ( Seleccionar Todo )
// PAGINAS
$total = $tsPost['post_comments'];Añade justo antes:
Código: ( Seleccionar Todo )
// ── Encuesta ──
require_once TS_CLASS . 'c.encuestas.php';
$tsEncObj = new tsEncuestas();
$tsEncuesta = $tsEncObj->getEncuesta($tsPost['post_id']);
if ($tsEncuesta && !empty($tsEncuesta['opciones'])) {
foreach ($tsEncuesta['opciones'] as &$op) {
$op['pct'] = $tsEncuesta['total_votos'] > 0
? round($op['votos'] / $tsEncuesta['total_votos'] * 100, 1)
: 0;
}
unset($op);
}
$ip = $tsCore->getIP();
$tsYaVoto = $tsEncuesta ? $tsEncObj->yaVoto($tsEncuesta['enc_id'], $tsUser->uid, $ip) : false;
$tsMiOpcion = $tsEncuesta ? $tsEncObj->opcionVotada($tsEncuesta['enc_id'], $tsUser->uid, $ip) : 0;
$smarty->assign('tsEncuesta', $tsEncuesta);
$smarty->assign('tsYaVoto', $tsYaVoto);
$smarty->assign('tsMiOpcion', $tsMiOpcion);
// ────────────Paso 5 — Mostrar la encuesta en el post
Abre themes/default/templates/modules/m.posts_content.tpl y busca:
Código: ( Seleccionar Todo )
<div class="compartir-risus-banner">Añade justo antes:
Código: ( Seleccionar Todo )
{include file='modules/m.encuesta.tpl'}Paso 6 — Formulario al crear un post
Abre themes/default/templates/modules/m.agregar.form.tpl y busca el bloque de opciones de publicación (donde está el checkbox de "Solo usuarios registrados"). Añade después del cierre de ese bloque:
Código: ( Seleccionar Todo )
{include file='modules/m.encuesta_form.tpl'}Paso 7 — Borrar la caché
Borra el contenido de la carpeta /cache/ del sitio.
🗑️ Desinstalar
Código: ( Seleccionar Todo )
DROP TABLE IF EXISTS p_encuestas;
DROP TABLE IF EXISTS p_encuestas_opciones;
DROP TABLE IF EXISTS p_encuestas_votos;Elimina los archivos subidos y quita los hooks añadidos en los pasos 3, 4, 5 y 6.
Descarga
Debes agradecer para ver el contenido...
Debes agradecer para ver el contenido...
¿Tienes dudas o encuentras algún problema? Déjalo en los comentarios.
Debes agradecer para ver el contenido...
Debes agradecer para ver el contenido...
¿Tienes dudas o encuentras algún problema? Déjalo en los comentarios.


Facebook
Twitter
Reddit
Digg
del.icio.us
Tumblr
Pinterest
Blogger
Fark
LinkedIn
Mix
Google