(Tiempo estimado: 2 - 3 minutos)

Módulo encuestas Joomla!En uno de los proyectos Joomla! en los que estamos colaborando, y del que pronto espero contaros algo más, nos han comentado que el módulo de encuestas que viene por defecto Joomla! 1.5 no funciona correctamente. Los resultados se cargan en página de inicio.

Vamos a ver este error y su solución.

 

Sobre el error

El error que nos indican es que cuando realizas una votación o quieres ver los resultados de las encuestas, éstos se muestran siempre en la página de inicio.

El problema

En el fichero mod_poll.php, que es donde carga la encuesta, no se tiene en cuenta el id de la misma para poder realizar luego la comprobación del Itemid al cual ir.

La solución

Para modificar este error, hay que modificar la línea 23 de dicho fichero con lo siguiente:

[original] -> $items = $menu->getItems('link', 'index.php?option=com_poll&view=poll');
[modificado] -> $items = $menu->getItems('link', 'index.php?option=com_poll&view=poll&id='.$params->get( 'id', 0 ));

Con este cambio ahora sí que pasamos a la vista el id de la encuesta y poder acceder a su Itemid correspondiente.

Lo siguiente que hay que modificar es la vista, pero esto lo hacemos en el "override" del módulo dentro de la plantilla (en su carpeta html).
Dentro de esta carpeta llamada html, buscamos la carpeta de mod_poll y editamos el fichero default.php
Tenemos que poner lo siguiente en el action del formulario, para que vaya al Itemid correspondiente en lugar de ir a la página de inicio:

<form action="<?php echo JRoute::_("index.php?option=com_poll&id=$poll->slug".$itemid); ?>" method="post" name="form" class="rt-poll">

De la misma forma, en el botón de ver resultados tendremos que poner lo mismo para que tenga el mismo comportamiento:

<input type="button" name="option" class="button" value="" onclick="document.location.href='<?php echo JRoute::_("index.php?option=com_poll&id=$poll->slug".$itemid); ?>'" />

Recomendación

Ahora habría que crear un nuevo menú. Una solución es crear un nuevo menú llamado menuoculto y que éste no se visualice desde ningún módulo.
Dentro de este menú se creará un ítem de menú de encuesta, que apunte a dicha encuesta. Con los cambios realizados en el módulo (explicados anteriormente), cuando hagamos una votación o veamos los resultados, ya no irá a la página de inicio sino a la que acabamos de crear en el nuevo menú.

Espero que con estas indicaciones quede resuelto este problema.

Sobre el autor, Sergio Iglesias

Sergio Iglesias

Sergio Iglesias es formador, desarrollador y front-end del CMS Joomla!. A través de su blog y sus cursos puedes aprender a desarrollar tu propio portal web autogestionable.

 

¿Te ha gustado el artículo? ¡Suscríbete YA!

¿Necesitas un sitio web que funcione?

¿No quieres depender de nadie para gestionar tu página web?

Recibe contenido exclusivo y GRATIS mi curso sobre desarrollo de plantillas Joomla!


Me apunto ya!

Escribir un comentario

Puedes publicar el comentario que quieras, pero si lo considero SPAM será eliminado automáticamente.



Código de seguridad
Refescar

SergioIglesias.NET te informa que los datos de carácter personal que nos proporciones rellenando este formulario serán tratados por Sergio Iglesias Sánchez como responsable de esta web. La finalidad de la recogida y tratamiento de los datos personales que te solicitamos es, únicamente, para gestionar los comentarios de este blog. La legitimación se realiza a través del consentimiento del interesado. Te informamos que los datos que nos facilitas estarán ubicados en los servidores de SiteGround (proveedor de hosting). Ver política de privacidad de Siteground. El hecho de que no introduzcas los datos de carácter personal que aparecen en el formulario como obligatorios podrá tener como consecuencia que no pueda atender tu solicitud. Podrás ejercer tus derechos de acceso, rectificación, limitación y suprimir los datos en info@sergioiglesias.net así como el derecho a presentar una reclamación ante una autoridad de control. Puedes consultar la información adicional y detallada sobre Protección de Datos en mi política de privacidad.

¿Quieres tener un sitio web que funcione?

Contacta conmigo