dmassive, he leído que eso no se ha implementado, ni en phpbb de "serie" ni en MOD's, ya que esto va en contra de la privacidad de cada usuario. Si bien es cierto, en la BD se almacena esa info, es con el fin de evitar que los usuarios puedan votar por más de una opción, o votar 2 veces. Es cómo cualquier votación, es privada, los demás no deberían poder saber por cuál opción vote.
Ahora, hay un MOD diseñado para que el administrador pueda ver esta información desde el ACP:
http://www.phpbb.com/phpBB/viewtopic.php?t=37631 (está en fase BETA, y se recomienda avisar a los usuarios de esta medida, por el mismo tema de la privacidad).
Tambien en un post de phpbb.com vi un código en PHP que muestra todas las encuestas, el total de votos para cada opción de cada encuesta, y la lista de quienes votaron (pero no qué opcion eligió cada uno). Solo funciona para admins y mods si no me equivoco, y en una página PHP aparte. Creas un archivo php cualquiera (votaciones.php por ejemplo) con este contenido:
Código: Seleccionar todo
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//
if($userdata['user_level'] == 0)
{
exit;
}
$sql = "SELECT vote_id, vote_user_id FROM " . VOTE_USERS_TABLE;
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query vote users table', '', __LINE__, __FILE__, $sql);
}
$vote_user_rows = array();
while( $vote_user_rows[] = $db->sql_fetchrow($result) );
$db->sql_freeresult($result);
$sql = "SELECT vote_id, topic_id, vote_text FROM " . VOTE_DESC_TABLE;
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query vote desc table', '', __LINE__, __FILE__, $sql);
}
$vote_desc_rows = array();
while( $vote_desc_rows[] = $db->sql_fetchrow($result) );
$db->sql_freeresult($result);
$sql = "SELECT * FROM " . VOTE_RESULTS_TABLE;
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query categories list', '', __LINE__, __FILE__, $sql);
}
$vote_results_rows = array();
while( $vote_results_rows[] = $db->sql_fetchrow($result) );
$db->sql_freeresult($result);
$sql = "SELECT user_id, username FROM " . USERS_TABLE;
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query users table', '', __LINE__, __FILE__, $sql);
}
$user_rows = array();
while( $user_rows[] = $db->sql_fetchrow($result) );
$db->sql_freeresult($result);
unset($vote_desc_rows[count($vote_desc_rows)-1]);
unset($vote_results_rows[count($vote_results_rows)-1]);
unset($vote_user_rows[count($vote_user_rows)-1]);
unset($user_rows[count($user_rows)-1]);
if(isset($HTTP_GET_VARS['t']))
{
$set = true;
}
else
{
$set = false;
}
foreach($vote_desc_rows as $a)
{
$vote_id = $a['vote_id'];
$vote_text = $a['vote_text'];
$topic_id = $a['topic_id'];
$vote_option_text = array();
$vote_result = array();
$users_voted = array();
$voters = 'Voters:';
if($set && $topic_id != $HTTP_GET_VARS['t'])
{
$vote_id = -1;
}
foreach($vote_results_rows as $b)
{
if($b['vote_id'] == $vote_id)
{
$vote_option_text[] = $b['vote_option_text'];
$vote_result[] = $b['vote_result'];
}
}
foreach($vote_user_rows as $c)
{
if($c['vote_id'] == $vote_id)
{
foreach($user_rows as $d)
{
if($c['vote_user_id'] == $d['user_id'])
{
$users_voted[] = $d['username'];
}
}
}
}
if($vote_id > 0)
{
?>
<table align="center">
<tr>
<th style="color: red;font-size: x-large;" colspan="2">
<center><?php echo $vote_text; ?></center>
</th>
</tr>
<?php
foreach($vote_option_text as $e => $f)
{
?>
<tr>
<th style="color: red;" align="left">
<?php echo $f; ?>
</th>
<th style="color: red;" align="right">
<?php echo $vote_result[$e]; ?>
</th>
</tr>
<?php
if($e < count($vote_option_text)-1)
{
?>
<tr>
<td colspan="2" style="height: 1px; background-color: black;">
</td>
</tr>
<?php
}
}
?>
<tr>
<td colspan="2">
<span style="font-size: 9px; font-weight: bold;"><?php echo $voters; ?></span>
</td>
</tr>
<?php
foreach($users_voted as $g)
{
?>
<tr>
<td colspan="2">
<?php echo $g; ?>
</td>
</tr>
<?php
}
?>
</table>
<br /><br /><br />
<?php
}
unset($vote_result);
unset($vote_option_text);
unset($users_voted);
}
?>
Lo subes a la raíz del foro, y lo ejecutas desde tu navegador. Se puede mejorar (aspecto) e incluso para que lo vean todos, y tal vez mostrar qué opcion eligió cada uno, pero ya habría que tocar el código, y al menos yo estoy en contra de eso, por el tema de privacidad, te lo dejo por si te interesa.
Eso fue lo que encontré, y estoy de acuerdo con eso... al menos yo lo pensaría 2 veces antes de votar, sabiendo que en ese foro los demás pueden ver cuál opcion elegí. Saludos y suerte.