Ver Mensaje Individual
  #98 (permalink)  
Antiguo 11/08/2005, 09:15
Avatar de yoseman
yoseman
 
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 11 meses
Puntos: 5
A ver, si por ejemplo lo que quieres es que se muestren los últimos posts enviados al foro, independientemente de que esos posts esten en el mismo tema, puedes usar éste código:
Código 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_ipPAGE_INDEX);
init_userprefs($userdata);
$auth_ary auth(AUTH_READAUTH_LIST_ALL$userdata); 
while ( list(
$auth_forum_id$auth_level) = each($auth_ary) ) 
{
    if (!
$auth_level['auth_read'] ) 
    { 
        
$auth_view_forums = ($auth_view_forums " p.forum_id<>" $auth_forum_id " and "); 
        
$auth_view_forums1 = ($auth_view_forums1 " forum_id<>" $auth_forum_id " and "); 
    }

$auth_view_forums="WHERE " $auth_view_forums
?>
<style>
/* This is the outline round the main forum tables */
th    {
    color: #FFA34F; font-size: 11px; font-weight : bold;
    background-color: #006699; height: 25px;
    background-image: url(images/cellpic3.gif);
}

.forumline    { background-color: #FFFFFF; border: 2px #006699 solid; }
td.row1    { background-color: #EFEFEF;font-size: 9px;  }
td.row2    { background-color: #DEE3E7; font-size: 10px;  }
td.row2    { background-color: #DEE3E7; font-size: 10px;  }
td.row3    { background-color: #D1D7DC; }
font,th,td,p { font-family: Verdana, Arial, Helvetica, sans-serif;}
a:link,a:active,a:visited { text-decoration: none;color : #006699; }
a:hover        { text-decoration: none; color : #DD6900; }
.actual{border:2px solid #000000;background-color: #FFFFFF;font-size: 10px; }
.noactual{border:2px solid #FFFFFF;background-color: #EFEFEF;font-size: 10px; }
</style>
<table align="center" class="forumline">
<tr>
    <th colspan="2">
    Título - Foro
    </th>
    <th>
    Abierto por
    </th>
    <th>
    Último mensaje
    </th>
    <th>
    Respuestas
    </th>
</tr>



<?
$sql
=mysql_query("SELECT t.topic_last_post_id, t.topic_title, t.topic_id, t.topic_time, t.topic_replies, u.username,u.user_id, f.forum_name, f.forum_id, p.post_id, p.post_time FROM ".POSTS_TABLE." p, ".TOPICS_TABLE." t, ".USERS_TABLE." u, ".FORUMS_TABLE." f $auth_view_forums t.topic_poster=u.user_id AND p.topic_id=t.topic_id AND t.forum_id=f.forum_id ORDER BY p.post_time DESC LIMIT 0,5");
while (
$assoc=mysql_fetch_assoc($sql))
{
    
$sql1=mysql_query("SELECT u.username FROM ".POSTS_TABLE." p, ".USERS_TABLE." u WHERE p.post_id=".$assoc['topic_last_post_id']." AND  p.poster_id=u.user_id");
    
$ultimo_usuario=mysql_fetch_assoc($sql1);
    
$ultimo_usuario=$ultimo_usuario['username'];
    
$fecha_ultimo=getdate($assoc['post_time']);
    
$fecha_ultimo=$fecha_ultimo["mday"]."-".$fecha_ultimo["mon"]."-".$fecha_ultimo["year"];
    
$fecha_abierto=getdate($assoc['topic_time']);
    
$fecha_abierto=$fecha_abierto["mday"]."-".$fecha_abierto["mon"]."-".$fecha_abierto["year"];
    
?>
<tr>
    <td class="row1" align="center">
        &nbsp;
        <a href="<?=$phpbb_root_path?>viewtopic.php?p=<?=$assoc['post_id']?>&highlight=#<?=$assoc['post_id']?>">
            <?=( ( strlen $assoc["topic_title"] ) > 20 ) ? ( substr $assoc["topic_title"] , 20 ) . "..." ) : $assoc["topic_title"] )?>
        </a>
        &nbsp;
    </td>
    <td class="row1" align="center">
        &nbsp;
        <a href="<?=$phpbb_root_path?>viewforum.php?f=<?=$assoc["forum_id"]?>"> 
            <?=$assoc["forum_name"]?>
        </a>
        &nbsp;
    </td>
    <td class="row1" align="center">
        &nbsp;
        <a href="<?=$phpbb_root_path?>profile.php?mode=viewprofile&u=<?=$assoc["username"]?>"> 
            <?=$assoc["username"]?> 
        </a> 
        &nbsp;
        el <?=$fecha_abierto?>
        &nbsp;
    </td>
    <td class="row1" align="center">
        &nbsp;
        <a href="<?=$phpbb_root_path?>profile.php?mode=viewprofile&u=<?=$ultimo_usuario?>"> 
            <?=$ultimo_usuario?> 
        </a> 
        &nbsp;
        el <?=$fecha_ultimo?>
        &nbsp;
    <td class="row1" align="center">
    &nbsp;
    <?=$assoc["topic_replies"]?>
    &nbsp;
    </td>
</tr>
<?}?>
Ejemplo de éste código:

http://usuarios.lycos.es/canalfrances1/listado1.php

Pero si por ejemplo quieres que se muestren los ultimos posts que se han enviado al foro, de tál forma que se cojan los últimos posts, pero que si hay varios que pertenecen a un mismo tema, sólo se muestre el último, deberás de usar éste otro código que es un poco más lioso:
Código 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_ipPAGE_INDEX);
init_userprefs($userdata);
$auth_ary auth(AUTH_READAUTH_LIST_ALL$userdata); 
while ( list(
$auth_forum_id$auth_level) = each($auth_ary) ) 
{
    if (!
$auth_level['auth_read'] ) 
    { 
        
$auth_view_forums = ($auth_view_forums " p.forum_id<>" $auth_forum_id " and "); 
        
$auth_view_forums1 = ($auth_view_forums1 " forum_id<>" $auth_forum_id " and "); 
    }

$auth_view_forums="WHERE " $auth_view_forums
?>
<style>
/* This is the outline round the main forum tables */
th    {
    color: #FFA34F; font-size: 11px; font-weight : bold;
    background-color: #006699; height: 25px;
    background-image: url(images/cellpic3.gif);
}

.forumline    { background-color: #FFFFFF; border: 2px #006699 solid; }
td.row1    { background-color: #EFEFEF;font-size: 9px;  }
td.row2    { background-color: #DEE3E7; font-size: 10px;  }
td.row2    { background-color: #DEE3E7; font-size: 10px;  }
td.row3    { background-color: #D1D7DC; }
font,th,td,p { font-family: Verdana, Arial, Helvetica, sans-serif;}
a:link,a:active,a:visited { text-decoration: none;color : #006699; }
a:hover        { text-decoration: none; color : #DD6900; }
.actual{border:2px solid #000000;background-color: #FFFFFF;font-size: 10px; }
.noactual{border:2px solid #FFFFFF;background-color: #EFEFEF;font-size: 10px; }
</style>
<table align="center" class="forumline">
<tr>
    <th colspan="2">
    Título - Foro
    </th>
    <th>
    Abierto por
    </th>
    <th>
    Último mensaje
    </th>
    <th>
    Respuestas
    </th>
</tr>
<?
$sql_ini
=mysql_query("SELECT distinct topic_id FROM ".POSTS_TABLE." p $auth_view_forums 1 ORDER BY p.post_time DESC LIMIT 0,5");
while (
$assoc=mysql_fetch_assoc($sql_ini))
    foreach (
$assoc as $value
    {

        
$sql=mysql_query("SELECT t.topic_last_post_id, t.topic_title, t.topic_id, t.topic_time, t.topic_replies, u.username,u.user_id, f.forum_name, f.forum_id, p.post_id, p.post_time FROM ".POSTS_TABLE." p, ".TOPICS_TABLE." t, ".USERS_TABLE." u, ".FORUMS_TABLE." f WHERE t.topic_poster=u.user_id AND t.topic_id=".$value." AND p.post_id=t.topic_last_post_id AND t.forum_id=f.forum_id");
        while (
$assoc=mysql_fetch_assoc($sql))
        {
            
$sql1=mysql_query("SELECT u.username FROM ".POSTS_TABLE." p, ".USERS_TABLE." u WHERE p.post_id=".$assoc['topic_last_post_id']." AND  p.poster_id=u.user_id");
            
$ultimo_usuario=mysql_fetch_assoc($sql1);
            
$ultimo_usuario=$ultimo_usuario['username'];
            
$fecha_ultimo=getdate($assoc['post_time']);
            
$fecha_ultimo=$fecha_ultimo["mday"]."-".$fecha_ultimo["mon"]."-".$fecha_ultimo["year"]; 
            
$fecha_abierto=getdate($assoc['topic_time']);
            
$fecha_abierto=$fecha_abierto["mday"]."-".$fecha_abierto["mon"]."-".$fecha_abierto["year"]; 
            
?>
<tr>
    <td class="row1" align="center">
        &nbsp;
        <a href="<?=$phpbb_root_path?>viewtopic.php?p=<?=$assoc['post_id']?>&highlight=#<?=$assoc['post_id']?>">
            <?=( ( strlen $assoc["topic_title"] ) > 20 ) ? ( substr $assoc["topic_title"] , 20 ) . "..." ) : $assoc["topic_title"] )?>
        </a>
        &nbsp;
    </td>
    <td class="row1" align="center">
        &nbsp;
        <a href="<?=$phpbb_root_path?>viewforum.php?f=<?=$assoc["forum_id"]?>"> 
            <?=$assoc["forum_name"]?>
        </a>
        &nbsp;
    </td>
    <td class="row1" align="center">
        &nbsp;
        <a href="<?=$phpbb_root_path?>profile.php?mode=viewprofile&u=<?=$assoc["username"]?>"> 
            <?=$assoc["username"]?> 
        </a> 
        &nbsp;
        el <?=$fecha_abierto?>
        &nbsp;
    </td>
    <td class="row1" align="center">
        &nbsp;
        <a href="<?=$phpbb_root_path?>profile.php?mode=viewprofile&u=<?=$ultimo_usuario?>"> 
            <?=$ultimo_usuario?> 
        </a> 
        &nbsp;
        el <?=$fecha_ultimo?>
        &nbsp;
    <td class="row1" align="center">
    &nbsp;
    <?=$assoc["topic_replies"]?>
    &nbsp;
    </td>
</tr>
<?}
    }
?>
Ejemplo de éste código:

http://usuarios.lycos.es/canalfrances1/listado.php

Bueno, sólo decir que para la conexión he iniciado sesión phpbb y que en las consultas sql he usado las constantes que definen el nombre de cada tabla; además he aprovechado en cada caso el inicio de sesión phpbb para filtrar los temas de aquellos foros a los que el usuario actual no tiene acceso.

Si quieres recortarlo o cambiar el aspecto, no es muy difícil, lo principal está hecho.

Salu2 ;)
__________________
[+]
[+]