Ver Mensaje Individual
  #5 (permalink)  
Antiguo 14/05/2010, 16:28
buthas
 
Fecha de Ingreso: marzo-2009
Mensajes: 13
Antigüedad: 15 años
Puntos: 0
Respuesta: PHPBB3: Ultimos mensajes en el Home

Alguien me podria decir los cambios que habria que hacer al script para en vez de mostrar el titulo autor y texto de los ultimos mensajes, haga exastamente lo mismo pero para los últimos temas. No últimos mensajes.

he intentado cambiar en la primera consulta.

Esto:
Código PHP:
$consulta "select * from ".$table_prefix."posts order by post_time desc"
por:
Código PHP:
$consulta "select * from ".$table_prefix."topics order by topic_time desc"
y si me muestra bien los títulos, pero se pierden el nombre de los autores y el texto de los topic, no aparece, ya cambie todo lo que se refiere a la consulta de los textos en vez de posts, que las haga sobre los topics, pero no consigo nada, me he hecho un lio y cada vez estoy mas mareado y no consigo nada.

¿me podrian ayudar? Gracias por su tiempo. Saludos.

Edito: Ya lo consegui.

Para quien le interes Aquí lo pongo:

Código PHP:
<?php
// Edita lo que viene a continuación. Cambia solo lo que hay entre comillas "":

$directorio "/foro"//Carpeta donde esta situadoel foro.
$mostrar "11"//Número de mensajes a mostrar.
$caracteres "40"//Caracteres que se mostrarán de cada línea.

$dbhost 'xxxxxxxxxx';  //nombre de host (suele ser 'localhost')
$dbname 'xxxxxxxxxxx';  //nombre de la base de datos
$dbuser 'xxxxxxxxxx';  //usuario de la base de datos
$dbpasswd 'xxxxxxxxx';  //contraseña ...
$table_prefix 'phpbb_';  // prefijo de la tabla

// Lo que viene ahora no lo toques para nada!!! a no ser que sepas de qué va el tema...
$conexion mysql_connect($dbhost,$dbuser,$dbpasswd);
mysql_select_db($dbname,$conexion);
$consulta "select * from ".$table_prefix."topics order by topic_id desc";
$resultado mysql_query($consulta);
$i 0;
    echo 
"<table width=630 align=left><tr><td colspan=2></td></tr>";
while (
$rows mysql_fetch_array($resultado)) {
if (
$i <= $mostrar) {
$consulta1 "select * from ".$table_prefix."forums where forum_id='$rows[forum_id]'";
$resultado1 mysql_query($consulta1);
$datosf mysql_fetch_array($resultado1);
$consulta2 "select * from ".$table_prefix."topics where topic_id='$rows[topic_id]'";
$resultado2 mysql_query($consulta2);
$datosu mysql_fetch_array($resultado2);
$consulta3 "select * from ".$table_prefix."topics where topic_id='$rows[topic_id]'";
$resultado3 mysql_query($consulta3);
$datost mysql_fetch_array($resultado3);
if (
strlen($datost[topic_title]) > $caracteres) {
$datost[topic_title] = substr($datost[topic_title],0,20)."...";
}

   
// Añadido por Defero.tk para sacar el texto del mensaje
   
$consulta6 "select * from ".$table_prefix."posts where topic_id='$rows[topic_id]'";
   
$resultado6 mysql_query($consulta6);
   
$datosy mysql_fetch_array($resultado6);

   
// Añadido por Defero.tk para eliminar el bbcode del texto del mensaje
   // inspirado en otro código de Xergio http://media.xergio.net/trabajo/81-simple-bbcode
   
{
   
$datosy[post_text] = preg_replace("(\[.+?\])is",'',$datosy[post_text]);
   }

   
// Acorta el texto de los mensajes hasta 150 caracteres
   
{
   
$datosy[post_text] = substr($datosy[post_text],0,150)."...";
   }
   echo 
"<tr><td><font size=0><b> •</b> <a href=\"$directorio/viewtopic.php?t=$rows[topic_id]\" title=\"$datosy[post_text]\">$datost[topic_title]</font></a></td><td><font color=#AC2D02 size=0>›› en <b>$datosf[forum_name]</b> por <i>$datosu[topic_first_poster_name]</i></font></td></tr>";
$i++;
}
}
echo 
"<tr><td colspan=2 align=left id=subnav name=subnav><a href=$directorio/index.php><font size=0><br></font></a></td></tr></table>";
mysql_free_result($resultado);
mysql_close($conexion);
?>
Se puede decir que este es el script que hace lo mismo que los ultimos mensajes, pero con los ultimos temas.

Que lo disfruten.

Saludos.

Última edición por buthas; 15/05/2010 a las 02:21 Razón: completar información y publicar la solución a mi pregunta.