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.