Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..

Gracias.

La Administración de phpBB España.

[MOD de Valoraciones] Bucles en PHPbb?

Foro de phpBB2 Avanzado no para dudas de Soporte General.
Cerrado
Sarakin
Observador/a
Mensajes: 24
Registrado: 18 Mar 2008, 04:45

[MOD de Valoraciones] Bucles en PHPbb?

#1

Mensaje por Sarakin »

Hola a todos de nuevo:

Tras estar buscando durante bastante tiempo :lee y numerosos intentos :roll: , no logramos dominar los bucles en phpBB y por eso recurro a vosotros, por si sabéis de algún enlace donde explique su funcionamiento. En realidad esta consulta es para realizar un MOD en Icy Phoenix, pero dado que éste se basa en phpBB, que ya he solicitado ayuda tanto en icy.es y icy.com sin resultado, y que aquí hay más gente activa que controla estos temas me he decidido a escribir aquí.

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)
Bien, ahora lo que queremos es modificar la plantilla viewforum_body.tpl. Se trata de hacer un bucle que se repita tantas veces como el valor que tenemos almacenado en {VALORACION}, para así añadir un código como dibujar en pantalla la imagen que queramos X veces ( <img src="flecha.gif"> ) Lo que no sabemos precisamente es ¿Cómo se hace esto? :nolose:

Un saludo a todos.
Datos de soporte

URL: http://www.torredemarfil.es/" onclick="window.open(this.href);return false; (Icy)
Plantilla(s) usuada(s): Torre de Marfil, basada en la que viene por defecto.
MODs instalados: VIP Code, xo ahora mismo creo q ya no lo tngo puesto
Servidor: wesped (pago)

Cerrado

Volver a “phpBB 2 Avanzado, integración, etc.”