Tras estar buscando durante bastante tiempo


La idea es que tenemos un valor númerico almacenado en una variable, y queremos que mediante un bucle (Loop) se ejecute una orden tantas veces como ese valor nos indique. Vamos con nuestro ejemplo...
La cosa está en otorgar unas valoraciones "oficiales", es decir, del equipo del sitio (no un valor medio de entre todas las valoraciones públicas), a los Temas que lo merezcan y mostrarlos en el Viewforum. Para ello creamos una tabla propia, llama ip_topic_vip (phpbb_topic_vip para phpBB, imagino), que tiene 3 campos:
ID -> Identificador interno para nuestra tabla. (se puede obviar)
Topic -> La ID del Tema que hemos valorado.
Valoración -> La nota que le hemos otorgado a ese Tema.
En el fichero "constants.php" (no sé cual sería el equivalente en phpBB, pero suponed que lo sabemos y lo hacemos bien), definimos la variable SPOST_USER_TABLE con el nombre de la tabla ip_topic_vip (tomadlo cada vez como phpbb_topic_vip de aquí en adelante).
Vamos a modificar el fichero viewforum.php:
Todo esto se realiza dentro del siguiente bucle, donde se supone que se recorre cada hilo del foro:
Código: Seleccionar todo
if( $total_topics )
{
for($i = 0; $i < $total_topics; $i++)
{
//Inicializamos nuestra variable de notas para evitar que otros post se rellenan con notas que no son suyas:
$valoracion = '';
//Realizamos la consulta SQL:
$sql = "SELECT `valoracion`
FROM " . SPOST_USER_TABLE . "
WHERE topic = '" . $topic_id . "'";
//Ejecutamos la consulta:
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Error getting valoracion information", "", __LINE__, __FILE__, $sql);
}
//Guardamos el valor obtenido (la nota/calificacion):
while ($row = $db->sql_fetchrow($result))
{
$valoracion = $row['valoracion'];
}
//Despues añadimos al código que existe en el fichero:
$template->assign_block_vars('topicrow', array(
Añadimos nuestro valor:
'VALORACION' => $valoracion, //Added by Krator (Special post)

Un saludo a todos.