Foros del Web » Creando para Internet » Sistemas de gestión de contenidos »

¿Cómo mostrar los 5 ultimos posts del foro en el index de mi web?

Estas en el tema de ¿Cómo mostrar los 5 ultimos posts del foro en el index de mi web? en el foro de Sistemas de gestión de contenidos en Foros del Web. eso es porque tienes mal el path en phpbb_root_path: imaginate que tu script está en el directorio raiz de tu sitio(es lo más común): Si ...

  #91 (permalink)  
Antiguo 08/08/2005, 22:36
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 11 meses
Puntos: 5
eso es porque tienes mal el path en phpbb_root_path:

imaginate que tu script está en el directorio raiz de tu sitio(es lo más común):

Si tu foro está en el directorio phpBB2 tienes que poner $phpbb_root_path="phpBB2/"; (muy importante la barra para indicar que se trata de un directotio)
Si tu foro está en el directorio carpeta_cualquiera/phpBB2 tienes que poner $phpbb_root_path="carpeta_cualquiera/phpBB2/"; (muy importante la barra para indicar que se trata de un directotio)

Supongo que es por eso :)

Salu2 ;) ( ya me dices si te funciona)
__________________
[+]
[+]
  #92 (permalink)  
Antiguo 09/08/2005, 07:50
 
Fecha de Ingreso: mayo-2005
Mensajes: 51
Antigüedad: 19 años, 6 meses
Puntos: 0
se que el tema es bastante antiguo, pero lo he encontrado buscando algo sobre esto y me ha venido de maravilla
he probado el ultimo codigo que has puesto yoseman pero me sale este error no se porque
el error que me sal es este
Cita:
Warning: Cannot modify header information - headers already sent by (output started at /home/hardigit/public_html/p/mensajes.php:10) in /home/hardigit/public_html/p/foro/includes/sessions.php on line 329

Warning: Cannot modify header information - headers already sent by (output started at /home/hardigit/public_html/p/mensajes.php:10) in /home/hardigit/public_html/p/foro/includes/sessions.php on line 330
Error al seleccionar los elementos de la base de datos. Por favor Inténtelo de nuevo más tarde.
  #93 (permalink)  
Antiguo 09/08/2005, 09:42
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 11 meses
Puntos: 5
Si, lo que sucede es que si ya has enviado algo al navegador antes de poner ése código en tu script, al iniciar sesión phpBB, da error de cabeceras ya enviadas. Puedes solucionar el asunto poniendo al principio del script que contiene el código(sin poner espacios ni saltos de línea ni nada antes):
Código PHP:
<?
ob_start
();
?>
Y poniendo al final:
Código PHP:
<?
ob_end_flush
();
?>
Si por casualidad, éste código lo metiste en un script aparte que cargas con un include en tu página, estos códigos, deben de ir en tu página principal, la que contiene el include, no en el script.

Salu2 ;)
__________________
[+]
[+]
  #94 (permalink)  
Antiguo 09/08/2005, 12:49
 
Fecha de Ingreso: agosto-2005
Mensajes: 8
Antigüedad: 19 años, 3 meses
Puntos: 0
Hola yoseman, gracias de nuevo por responder.

Te cuento, hoy de "casualidad" sin modificar el path, no me tiro ese error, pero si el que despues te puso el amigo del anterior post a este, puse el codigo que le diste a el, y no me lo tiro mas ese error, pero ahora solo aparece ; " Error al seleccionar los elementos de la base de datos. Por favor Inténtelo de nuevo más tarde."...

el path esta bien, pero no se porque pasa...

me parece pronto habra "suicidio colectivo" de usuarios novatos en el tema de php

jaja
  #95 (permalink)  
Antiguo 09/08/2005, 15:10
 
Fecha de Ingreso: agosto-2005
Mensajes: 8
Antigüedad: 19 años, 3 meses
Puntos: 0
tendra algo que ver que estoy utilizando la version 2.0.17 del ppbb2 ?
  #96 (permalink)  
Antiguo 09/08/2005, 18:03
 
Fecha de Ingreso: mayo-2005
Mensajes: 51
Antigüedad: 19 años, 6 meses
Puntos: 0
Pregunta

primero gracias por responder, weno ahora no estoy muy seguro de en que pagina debreia poner, voy a explicar como tengo pensado la web

tengo un archivo.php desde el que hago include a todo, la estrutura basica sera esta
Código PHP:
<? 
ob_start
(); 
?>
<?php
include('mensajes.php');
?>
<? 
ob_end_flush
(); 
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table width="100%" border="0">
  <tr>
    <td height="159"></td>
  </tr>
</table>
<br>
<br>
<!--Inicio zona de acutentificacion-->

<!--Fin de zona de autentificacion-->

<table align="left" border="0" width="17%">
<tr><td height="159">
<?php
include('menu.php');
?>
</td>
</tr>
</table>

<table align="center" width="83%"><tr><td>
<?php
switch ($HTTP_GET_VARS['modulo'])
{
     case 
'Inicio': include('index.php'); break;
     case 
'Noticias': include('noticias.php'); break;
     case 
'acercade': include('acercade.php'); break;
      default : include(
'incio.php');
}
?>

</td></tr></table>



</body>
</html>
weno pues en inicio.php es donde hago el include al archivo de los mensajes del foro(include a mensajes.php), no estoy seguro si lo he puesto en el mejor sitio
y este es el codigo de mensajes.php

Código PHP:

<? 
// ##################################################  ################################ 
// ULTIMOS MENSAJES ENVIADOS A UN FORO 
// ##################################################  ################################ 
define('IN_PHPBB'true); 
$phpbb_root_path 'foro/'//PATH DEL FORO RESPECTO DEL SCRIPT 
include($phpbb_root_path 'extension.inc'); 
include(
$phpbb_root_path 'common.'.$phpEx); 
$userdata session_pagestart($user_ipPAGE_INDEX); 
init_userprefs($userdata); 
$p $table_prefix
$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
$auth_view_forums1="WHERE " $auth_view_forums1
$busqueda= @mysql_query("SELECT c.cat_id,c.cat_title,c.cat_order,p.forum_id,p.foru  m_name from " $p "forums p,"$p "categories c "$auth_view_forums1 "p.cat_id=c.cat_id order by c.cat_order,p.forum_order asc"); 
if (!
$busqueda

    echo (
"Error al seleccionar los elementos de la base de datos. Por favor Inténtelo de nuevo más tarde."); 
    exit(); 

$k=0
while (
$row mysql_fetch_array($busqueda)) 

    
$k=$k+1
    
$foro_id[$k]=$row['forum_id']; 
    
$foro_name[$k]=$row['forum_name']; 
    
$cat[$k]=$row['cat_title']; 

if (!isset(
$_GET['id']) || $_GET['id']==-1

    
$_GET['id']=$foro_id[1]; 

if (!isset(
$_GET['num'])) 

    
$_GET['num']=10

$id=$_GET['id']; 
$mensajes=$_GET['num']; 
$reducido=0// ACTIVA A 1 SI DESEAS QUE SE MUESTRE LA VERSIÓN REDUCIDA 
$id=($id!="todos") ? (" p.forum_id=".$id." and ") : (""); 
$busqueda= @mysql_query("SELECT p.post_id,p.topic_id,p.forum_id,p.poster_id,p.post  _time,po.post_id,po.post_subject,t.topic_id,t.topi  c_title,t.topic_views,t.topic_replies,u.user_id,u.  username,f.forum_name FROM " $p "posts_text po," $p "posts p," $p "topics t," $p "users u," $p "forums f " $auth_view_forums $id ." p.forum_id=f.forum_id and p.post_id=po.post_id and p.poster_id=u.user_id and p.topic_id=t.topic_id ORDER BY p.post_time desc limit " $mensajes); 
if (!
$busqueda

    echo (
"Error al seleccionar los elementos de la base de datos. Por favor Inténtelo de nuevo más tarde."); 
    exit(); 

$i=0
while (
$row mysql_fetch_array($busqueda)) 

    
$i=$i+1
    
$u_username[$i]=$row['username']; 
    
$u_id[$i]=$row['user_id']; 
    
$t_title[$i]=$row['topic_title']; 
    
$t_id[$i]=$row['topic_id']; 
    
$t_views[$i]=$row['topic_views']; 
    
$t_replies[$i]=$row['topic_replies']; 
    
$p_time[$i]=$row['post_time']; 
    
$p_subject[$i]=$row['post_subject']; 
    
$f_title[$i]=$row['forum_name']; 
    
$p_id[$i]=$row['post_id']; 
    
$f_id[$i]=$row['forum_id']; 

$col = ($reducido) ? 6

$id=$_GET['id']; 
$titu=($id!="todos") ? ($f_title[$i]) : ("TODOS LOS FOROS"); 
?> 
<link rel="stylesheet" href="<?=$phpbb_root_path?>templates/subSilver/subSilver.css" type="text/css" > 
<style> 
* {font-size:10px} 
</style> 
<span class="nav"><a href="./index.php" class="gen"><?=$lang['Forum_index']?></a></span> 
<table class="forumline" width="100%" cellspacing="1" cellpadding="3" border="0"> 
    <tr align="center"> 
        <td class="catHead" colspan="<?=$col?>" height="28" > 
        <span class="nav"> ÚLTIMAS RESPUESTAS EN EL FORO :: <?=$titu?> </span> 
    </td> 
    </tr> 
    <tr> 
        <th> Tópico: </th> 
<? if ($id!="todos") {?> 
        <th> Título post: </th> 
<?} else {?> 
        <th> Foro: </th> 
<?}?> 
        <th> Autor: </th> 
<? if (!$reducido) {?> 
        <th> Fecha: </th> 
        <th> Respuestas: </th> 
        <th> Lecturas: </th> 
<? ?> 
    </tr> 
<? 
$row
=0
for(
$j=1$j<$i+1$j=$j+1

    
$row++; 
    if (
$row==3
    { 
        
$row=1
    } 
    if (
$p_subject[$j]==''
    { 
        
$p_subject[$j]="Re:" $t_title[$j]; 
    } 
    
$dat=getdate($p_time[$j]); 
    
?> 
    <tr> 
        <td class="row<?=$row?>"> 
        <span class="gensmall"> <a href="<?=$phpbb_root_path?>viewtopic.php?p=<?=$p_id[$j]?>&highlight=#<?=$p_id[$j]?>"> <?=$t_title[$j]?> </a> </span> 
        </td> 
<? if ($id!="todos") {?> 
        <td class="row<?=$row?>"> <span class="gensmall"> <?=$p_subject[$j]?> </span> 
        </td> 
<?} else {?> 
        <td class="row<?=$row?>"> <a href="http://elotrositio.tuarrobanet.com/foro/viewforum.php?f=<?=$f_id[$j]?>"> <span class="gensmall"><?=$f_title[$j]?></span> </a> 
        </td> 
<?}?> 
        <td align="center" class="row<?=$row?>"> <span class="gensmall"> <a href="<?=$phpbb_root_path?>profile.php?mode=viewprofile&u=<?=$u_id[$j]?>"> <?=$u_username[$j]?> </a> </span> 
        </td> 
<? if (!$reducido) {?> 
        <td align="center" class="row<?=$row?>"> <span class="gensmall"> <?=$dat["mday"]?>/<?=$dat["mon"]?>/<?=$dat["year"]?> </span> 
        </td> 
        <td align="center" class="row<?=$row?>"> <span class="gensmall"> <?=$t_replies[$j]?> </span> 
        </td> 
        <td align="center" class="row<?=$row?>"> <span class="gensmall"> <?=$t_views[$j]?> </span> 
        </td> 
<? ?> 
    </tr> 
<? ?> 
</table> 
<form action="ultimos.php" method="get"> 
    <table width="100%" cellspacing="0" cellpadding="0" border="0"> 
        <tr> 
            <td rowspan="2" align="center"><span class="gensmall">Seleccione el foro y el número de mensajes:</span> 
            </td> 
            <td rowspan="2" class="gensmall"> 
            <select name="id" value="1" onchange="if(this.options[this.selectedIndex].value != -1) {this.form.submit();}"> 
            <option value="-1">Seleccione el foro</option> 
            <option value="-1"></option> 
            <option value="-1">[+] TODOS LOS FOROS</option> 
            <option value="-1">-------------</option> 
<? $sel = ($_GET['id']=="todos") ? " selected=\"selected\"" ""?> 
            <option value="todos" <?=$sel?>>| TODOS</option> 
            <option value="-1"></option> 
<? 
$newcat 
$cat[1]; 
for(
$j=1$j<$k+1$j=$j+1

    if ((
$cat[$j]!=$cat[$j-1])||$j==1
        {
?> 
            <option value="-1"></option> 
            <option value="-1"><?=$cat[$j]?></option> 
            <option value="-1">-------------</option> 
<? 

$sel = ($foro_id[$j]==$_GET['id']) ? " selected=\"selected\"" ""?> 
            <option value="<?=$foro_id[$j]?>"<?=$sel?>><?=$foro_name[$j]?></option> 
<?}?> 
            </select> 
            <select name="num" value="1" onchange="this.form.submit();"> 
<? for($j=1$j<100$j=$j+1) { $sel = ($j == $_GET['num']) ? " selected=\"selected\"" ""?> 
            <option value="<?=$j?><?=$sel?>><?=$j?></option> 
<?}?> 
            </td> 
        </tr> 
    </table> 
</form> 
<? include($phpbb_root_path 'includes/page_tail.'.$phpEx); ?>
gracias y salu2
  #97 (permalink)  
Antiguo 11/08/2005, 01:22
 
Fecha de Ingreso: agosto-2005
Mensajes: 8
Antigüedad: 19 años, 3 meses
Puntos: 0
Hola Yoseman, probe hacer como el script del inicio del este post, y sale como quiero el unico tema es que cuando alguien responde no sale su nick en vez del que creo el posts, probe hacer un inner en la tabla posts, pero cuando me muestra los ultimos mensajes me aparece el nick del que respondio con otro titulo diferente al cual el respondio... no se como hacer ese "pequeño cambio"

me podrias ayudar?, ya con eso, me daria por satisfecho con este script :)
es lo unico que le falta... gracias, y disculpa por todas las molestias que te ocacione

Saludos


Código PHP:
<?php 
     $conexion 
mysql_connect("localhost","losdelaidea","seeeee"); 
mysql_select_db("losdelaidea_es_db"$conexion) OR die("No se puede establecer la conexión a MySQL"); 
    
$sql mysql_query("SELECT * FROM phpbb_topics INNER JOIN phpbb_users ON phpbb_topics.topic_poster = phpbb_users.user_id INNER JOIN phpbb_forums ON phpbb_topics.forum_id = phpbb_forums.forum_id ORDER BY topic_last_post_id DESC LIMIT 0,5") or die (mysql_error()); 
while (
$row mysql_fetch_array($sql)) { 
$id "$row[topic_id]";  
$respuestas "$row[topic_replies]";
$usuario "$row[username]";
$categoria "$row[forum_name]";
$titulocorto=substr($row["topic_title"],0,20);
$fecha=getdate($row['topic_time']); 
$fecha=$fecha["mday"]."-".$fecha["mon"]."-".$fecha["year"];

    echo 
":$fecha: | <b>$categoria</b> | <a href='phpBB2/viewtopic.php?t=$id'>$titulocorto ...</a> | <b>$usuario</b> |</br >"
    } 
    
?>
  #98 (permalink)  
Antiguo 11/08/2005, 09:15
Avatar de 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 ;)
__________________
[+]
[+]
  #99 (permalink)  
Antiguo 15/08/2005, 04:16
 
Fecha de Ingreso: mayo-2005
Mensajes: 51
Antigüedad: 19 años, 6 meses
Puntos: 0
he puesto el seundo codigo en mensajes.php, pero me sale un error
Cita:
Warning: Cannot modify header information - headers already sent by (output started at /home/hardigit/public_html/p/index.php:18) in /home/hardigit/public_html/p/foro/includes/sessions.php on line 206

Warning: Cannot modify header information - headers already sent by (output started at /home/hardigit/public_html/p/index.php:18) in /home/hardigit/public_html/p/foro/includes/sessions.php on line 207
a veces tmb sale un error igual, solo que en ll linea 330

y en la linea 18 de index.php esta la etiqueta de comenzo de php(<?php), creo que el error lo mismo que por lo de antes, que se e vnia algo antes, tmb que se estas logeado sale solo la primera vez que entras en la pagina, pero si refrescas o algo ya se quita, pero si no estas logeado sale siempre
weno decir que tengo pensado poner un sistema de login , he estado mirando un post quey hay sobre esto http://www.forosdelweb.com/showthrea...7&page=2&pp=20

EDITADO

ya he solucionado el problema

Última edición por finord; 15/08/2005 a las 04:53
  #100 (permalink)  
Antiguo 18/08/2005, 04:17
 
Fecha de Ingreso: agosto-2005
Mensajes: 10
Antigüedad: 19 años, 3 meses
Puntos: 0
este me funciona de maravilla gracias yoseman

http://usuarios.lycos.es/canalfrances1/listado.php
  #101 (permalink)  
Antiguo 22/08/2005, 12:14
 
Fecha de Ingreso: agosto-2005
Mensajes: 9
Antigüedad: 19 años, 3 meses
Puntos: 0
Hola soy nuevo en este foro, la causa de mi registro aki es q vi a tanta gente q sabe de lo q me gusta (php) y tb a varios como yo tratando de solucionar sus problemas e inquietudes con respecto a este codigo y al desarrollo en general de webs ...
este script me interesó lei las 5 paginas q hay pero tengo una duda, probé finalmente el script q posteó yoseman (el segundo) y me funcionó bien, pero hay un problema, este al no cerrar la tabla genera unos conflictos en mi web nose pk la tabla de la izquierda (azul) no se cierra al colocar este script, a q se puede deber esto??
será pk este script no cierra su tabla? al final no tiene </table> y si la coloco se crea un lío

saludos!
  #102 (permalink)  
Antiguo 23/08/2005, 14:47
 
Fecha de Ingreso: agosto-2005
Mensajes: 23
Antigüedad: 19 años, 3 meses
Puntos: 0
Hola buenas , he probado el codigo que puso yoseman, este: http://www.forosdelweb.com/o.php?htt...s1/listado.php

El caso es ke probe vario pero todos me dan errores, sin embargo el que me convence es este, aunke me da error tambien, y es el siguiente:


Fatal error: Cannot redeclare class template in /home/khimamu/public_html/foro/includes/template.php on line 30

alguien sabe que tengo que hacer para que funcione?

bueno la verdad es ke en la ruta del foro puse foro/ y mi foro esta en http://miweb/foro/, tengo ke poner foro/? o /foro/?

Última edición por khima; 23/08/2005 a las 14:54
  #103 (permalink)  
Antiguo 23/08/2005, 17:17
 
Fecha de Ingreso: agosto-2005
Mensajes: 9
Antigüedad: 19 años, 3 meses
Puntos: 0
Hola khima, pues por lo q se debería funcionarte solo con foro/ pero lo q nose es q hace metido esto: /home/khimamu/public_html/foro/includes/template.php en el listado , ojalá tuviera mas conocimientos para ayudarte
---
mi problema lo solucioné por si a alguien le pasaba lo mismo aki le pegue una arregladita pero cada uno tiene q adaptarlo bien a su web, ya q hay q modificar el tamaño de las celdas para q kede igual a las de arriba.

Lo q hice fue separar la celda del titulo y el contenido en dos tablas, asi ahora la tabla titulo kedara fija y el contenido variable, pudiendo asi cerrar la tabla y no generar problemas con otras tablas de la web (como en mi caso), weno si alguien puede mejorar esto ya q lo hice a mi pinta nomas
Código PHP:
<?
define
('IN_PHPBB'true);
$phpbb_root_path 'foros/';
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(foros/templates/softmetal/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.dos:link,a.dos:active,a.dos:visited { text-decoration: none;color : #006699; }
a.dos: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" width="524">
<tr>
    <th width="147" height="25" valign="top"> Título - Foro </th>
    <th width="103" valign="top">
    Escrito por    </th>
    <th width="143" valign="top"> Último mensaje </th>
    <th width="100" valign="top">
    Respuestas    </th>
</tr>
</table>
<?
$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"];
            
?>
<table align="center" width="524">
<tr>
    <td width="76" height="21" align="center" valign="top" class="row1"><a href="<?=$phpbb_root_path?>viewtopic.php?p=<?=$assoc['post_id']?>&highlight=#<?=$assoc['post_id']?>" class="dos" target="_blank"><?=( ( strlen $assoc["topic_title"] ) > 25 ) ? ( substr $assoc["topic_title"] , 25 ) . "..." ) : $assoc["topic_title"] )?>
    </a></td>
    <td width="76" align="center" valign="top" class="row1"><a href="<?=$phpbb_root_path?>viewforum.php?f=<?=$assoc["forum_id"]?>" class="dos" target="_blank"><?=$assoc["forum_name"]?>
    </a></td>
    <td width="103" align="center" valign="top" class="row1"><a href="<?=$phpbb_root_path?>profile.php?mode=viewprofile&u=<?=$assoc["username"]?>" class="dos" target="_blank"><?=$assoc["username"]?>
      </a>
        el 
    <?=$fecha_abierto?>      &nbsp;    </td>
    <td width="148" align="center" valign="top" class="row1">            <a href="<?=$phpbb_root_path?>profile.php?mode=viewprofile&u=<?=$ultimo_usuario?>" class="dos" target="_blank"><?=$ultimo_usuario?> 
    </a>el 
    <?=$fecha_ultimo?>
    <td width="101" align="center" valign="top" class="row1">                <?=$assoc["topic_replies"]?>
  </tr>
</table>
<?}
    }
?>
pd: tambien le puse al style de los links ".dos" para q no confunda con otros links de la web

saludo
  #104 (permalink)  
Antiguo 23/08/2005, 20:56
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 11 meses
Puntos: 5
Cita:
Iniciado por khima
Hola buenas , he probado el codigo que puso yoseman, este: http://www.forosdelweb.com/o.php?htt...s1/listado.php

El caso es ke probe vario pero todos me dan errores, sin embargo el que me convence es este, aunke me da error tambien, y es el siguiente:


Fatal error: Cannot redeclare class template in /home/khimamu/public_html/foro/includes/template.php on line 30

alguien sabe que tengo que hacer para que funcione?

bueno la verdad es ke en la ruta del foro puse foro/ y mi foro esta en http://miweb/foro/, tengo ke poner foro/? o /foro/?

Si tu foro está en el directorio foro/ tienes que poner:

Código PHP:
$phpbb_root_path="foro/"
Pero si el script está por arriba del directorio foro claro...

De todas formas el error que te da no parece que sea por eso...

Estás seguro que no has repetido el inicio de sesión phpBB, es que el error parece por eso. Me refiero, seguro que no has repetido ninguna de estas líneas:
Código PHP:
include($phpbb_root_path 'extension.inc');
include(
$phpbb_root_path 'common.'.$phpEx);

//
// Start session management
//
$userdata session_pagestart($user_ipPAGE_INDEX);
init_userprefs($userdata); 
Respecto de asunto del cierre de tablas pido disculpas, se me pasó, hay que cerrar la tabla al final del todo del codigo después de los dos cierres de llave:
Código PHP:
<?}}?>
</table>
Si tienes problemas khima ponnos tu script entero...

Salu2 ;)
__________________
[+]
[+]
  #105 (permalink)  
Antiguo 24/08/2005, 09:15
 
Fecha de Ingreso: agosto-2005
Mensajes: 23
Antigüedad: 19 años, 3 meses
Puntos: 0
yo lo tengo asi:

Código PHP:
<?
define
('IN_PHPBB'true);
$phpbb_root_path 'foro/';
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>
<?}}?>
</table>
  #106 (permalink)  
Antiguo 24/08/2005, 18:58
 
Fecha de Ingreso: agosto-2005
Mensajes: 23
Antigüedad: 19 años, 3 meses
Puntos: 0
y bien? alguien sabe algo?
  #107 (permalink)  
Antiguo 25/08/2005, 11:21
 
Fecha de Ingreso: agosto-2005
Mensajes: 9
Antigüedad: 19 años, 3 meses
Puntos: 0
pensé q iba a ser lo mismo si lo ponia debajo del <?}}?>, para q es eso? (<?}}?>)

Muy weno el script compa, ta bkna!

saludo'
  #108 (permalink)  
Antiguo 25/08/2005, 13:35
 
Fecha de Ingreso: agosto-2005
Mensajes: 23
Antigüedad: 19 años, 3 meses
Puntos: 0
a mi no me va
  #109 (permalink)  
Antiguo 26/08/2005, 07:22
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 11 meses
Puntos: 5
Khima una pregunta, lo has incluido dentro de otro script?

Lo digo porque si lo has incluido dentro de otro script la ruta debe ser relativa al script en el que lo incluyes, entiendes lo que quiero decir...

Eno, no ´se por probar soluciones...

Salu2 ;)
__________________
[+]
[+]
  #110 (permalink)  
Antiguo 26/08/2005, 09:08
 
Fecha de Ingreso: agosto-2005
Mensajes: 3
Antigüedad: 19 años, 3 meses
Puntos: 0
Mostrar ultimos posts como un tagboard

Si me podrian mostrar como puedo mostrar los ultimos posts en un marco como tagborad
Desde ya muchas gracias
  #111 (permalink)  
Antiguo 26/08/2005, 09:13
 
Fecha de Ingreso: agosto-2005
Mensajes: 3
Antigüedad: 19 años, 3 meses
Puntos: 0
Mi idea es asi

Poner un foro para los usuarios donde puedan publicar sus anuncios de clasificados o sea donde los usuarios puedan vender o comprar los que que quieran atraves del foro, entonces quiero ponerle un tagboard donde vaya mostrando los ultimos articulos que publicaron los users, ir actualizandose eso
me podrian ayudar
por ejemplo esta web lo tiene asi
http://www.lajaula.com.py
entren en clasificados
  #112 (permalink)  
Antiguo 26/08/2005, 15:25
 
Fecha de Ingreso: agosto-2005
Mensajes: 23
Antigüedad: 19 años, 3 meses
Puntos: 0
yoseman, va con un include al ultimos.php
  #113 (permalink)  
Antiguo 27/08/2005, 12:50
 
Fecha de Ingreso: enero-2005
Mensajes: 87
Antigüedad: 19 años, 10 meses
Puntos: 0
Hola a todos,

¿me pueden decir como puedo limitar los caracteres de mis ultimos mensajes?

Gracias!
  #114 (permalink)  
Antiguo 29/08/2005, 01:39
Avatar de Mosiah  
Fecha de Ingreso: mayo-2002
Ubicación: Vitoria - Madrid
Mensajes: 229
Antigüedad: 22 años, 6 meses
Puntos: 0
Hola,
a mi me da el mismo error que a khima:

Fatal error: Cannot redeclare class template in /home/khimamu/public_html/foro/includes/template.php on line 30

Explico lo que he hecho y haber si alguien puede decirme donde esta el error :

He creado un archivo ultimos.php en el directorio del foro que contiene:

<?
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);
$auth_ary = auth(AUTH_READ, AUTH_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=<?=$ass oc['post_id']?>&highlight=#<?=$assoc['post_id']?>">
<?=( ( strlen ( $assoc["topic_title"] ) > 20 ) ? ( substr ( $assoc["topic_title"] , 0 , 20 ) . "..." ) : $assoc["topic_title"] )?>
</a>
&nbsp;
</td>
<td class="row1" align="center">
&nbsp;
<a href="<?=$phpbb_root_path?>viewforum.php?f=<?=$ass oc["forum_id"]?>">
<?=$assoc["forum_name"]?>
</a>
&nbsp;
</td>
<td class="row1" align="center">
&nbsp;
<a href="<?=$phpbb_root_path?>profile.php?mode=viewpr ofile&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=viewpr ofile&u=<?=$ultimo_usuario?>">
<?=$ultimo_usuario?>
</a>
&nbsp;
el <?=$fecha_ultimo?>
&nbsp;
<td class="row1" align="center">
&nbsp;
<?=$assoc["topic_replies"]?>
&nbsp;
</td>
</tr>
<?}?>
</table>


Luego, en indes.php he añadido donde decía joseman en un post anterior:

include($phpbb_root_path . 'ultimos.'.$phpEx);

No se muy bien porque puede ser el error, porque lo de template suele referirse a cosas de la forma en que se visualiza, no? lo de subsilver y demás.
Tampoco se si puede ser por lo que decía joseman de que en algunos casos no era necesario poner el código de identificación del principio.

Si alguno me enseña la luz le estaría muy agradecido.

Saludos y gracias
  #115 (permalink)  
Antiguo 30/08/2005, 00:59
Avatar de Mosiah  
Fecha de Ingreso: mayo-2002
Ubicación: Vitoria - Madrid
Mensajes: 229
Antigüedad: 22 años, 6 meses
Puntos: 0
Bueno, al final lo he conseguido solucionar. El problama yo creo que estaba en que se realizaba dos veces la identificación. El principio entonces quedaria:

<?
define('IN_PHPBB', true);
$phpbb_root_path = './';

//
// Start session management
//
$auth_ary = auth(AUTH_READ, AUTH_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>
...


Luego, en index.php habría que añadir, como dijo yoseman:

include($phpbb_root_path . 'ultimos.'.$phpEx);


Ahora sale perfectamente, aunque algo más pequeño que el resto de las tablas y algo demasiada abajo.

Alguien sabe como habría que hacer para que esta tabla saliese justo delante de la tabla de "Quién esta online" o arriba justo debajo de la fecha y hora?

-------------- Editado -------------
Bueno, lo de que sale algo más pequeño es una tontería, solo habría que poner width="100%" en la etiqueta de comienzo de la tabla. Lo de colocarlo donde había dicho... pues hay que toquetear en index_body.tpl... bueno, haber que consigo.
------------------------------------

Saludos y gracias

Última edición por Mosiah; 30/08/2005 a las 02:10
  #116 (permalink)  
Antiguo 30/08/2005, 19:05
 
Fecha de Ingreso: agosto-2005
Mensajes: 23
Antigüedad: 19 años, 3 meses
Puntos: 0
como te kedo el ultimos.php?
  #117 (permalink)  
Antiguo 30/08/2005, 21:07
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 11 meses
Puntos: 5
A ver, lo que sucede es que se debe de iniciar sesión phpBB con é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);
Sólo una vez y preferiblemente en el script que metes el include, entonces si haceis un include a ultimos.php en últimos.php debeis de quitarlo

Salu2 ;)
__________________
[+]
[+]
  #118 (permalink)  
Antiguo 31/08/2005, 00:48
Avatar de Mosiah  
Fecha de Ingreso: mayo-2002
Ubicación: Vitoria - Madrid
Mensajes: 229
Antigüedad: 22 años, 6 meses
Puntos: 0
Cita:
Iniciado por khima
como te kedo el ultimos.php?
El ultimos.php se queda igual que como lo puso yoseman, solo que, como ha dicho yoseman, quitando las sentencias de inicio de sesión. En el segundo post mío he puesto como quedaría el principio de ultimos.php, el resto sería todo igual.

Saludos
  #119 (permalink)  
Antiguo 31/08/2005, 03:30
Avatar de Mosiah  
Fecha de Ingreso: mayo-2002
Ubicación: Vitoria - Madrid
Mensajes: 229
Antigüedad: 22 años, 6 meses
Puntos: 0
Bueno, ya he resuelto como poner la tabla de los últimos mensajes en cualquier parte del foro, me dan ganas de hacer un mod jajaja con permiso de yoseman claro

Pongo el código que sería para ponerlo justo antes de la tabla de "Quién esta online" y debajo de el link de marcar todos los foros como leidos.

En index.php, antes de:

//
// Generate the page
//


Añadir:

// Ultimos 5 posts
$auth_ary = auth(AUTH_READ, AUTH_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;

$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"];

$titulo = ( ( strlen ( $assoc["topic_title"] ) > 30 ) ? ( substr ( $assoc["topic_title"] , 0 , 30 ) . "..." ) : $assoc["topic_title"] );


$template -> assign_block_vars('lastposts', array(
'root_paht' => $phpbb_root_path,
'post_id' => $assoc['post_id'],
'topic_title' => $titulo,
'forum_id' => $assoc["forum_id"],
'forum_name' => $assoc["forum_name"],
'username' => $assoc["username"],
'fecha_abierto' => $fecha_abierto,
'fecha_ultimo' => $fecha_ultimo,
'ultimo_usuario' => $ultimo_usuario,
'topic_replies' => $assoc["topic_replies"]));
}



En template/subsilver/index_body.tpl después de:

<table width="100%" cellspacing="0" border="0" align="center" cellpadding="2">
<tr>
<td align="left"><span class="gensmall"><a href="{U_MARK_READ}" class="gensmall">{L_MARK_FORUMS_READ}</a></span></td>
<td align="right"><span class="gensmall">{S_TIMEZONE}</span></td>
</tr>
</table>


Añadir:

<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>
<span class="nav" color=blue>Últimos mensajes</a></span>
<table width="100%" align="center" class="forumline">
<tr>
<th colspan="2">
Título - Foro
</th>
<th>
Abierto por
</th>
<th>
Último mensaje
</th>
<th>
Respuestas
</th>
</tr>


<!-- BEGIN lastposts -->

<tr>
<td class="row1" align="center">
&nbsp;
<a href="{lastposts.root_path}viewtopic.php?p={lastpo sts.post_id}&highlight=#{lastposts.post_id}">
{lastposts.topic_title}
</a>
&nbsp;
</td>
<td class="row1" align="center">
&nbsp;
<a href="{lastposts.root_path}viewforum.php?f={lastpo sts.forum_id}">
{lastposts.forum_name}
</a>
&nbsp;
</td>
<td class="row1" align="center">
&nbsp;
<a href="{lastposts.root_path}profile.php?mode=viewpr ofile&u={lastposts.username}">
{lastposts.username}
</a>
&nbsp;
el {lastposts.fecha_abierto}
&nbsp;
</td>
<td class="row1" align="center">
&nbsp;
<a href="{lastposts.root_path}profile.php?mode=viewpr ofile&u={lastposts.ultimo_usuario}">
{lastposts.ultimo_usuario}
</a>
&nbsp;
el {lastposts.fecha_ultimo}
&nbsp;
<td class="row1" align="center">
&nbsp;
{lastposts.topic_replies}
&nbsp;
</td>
</tr>

<!-- END lastposts -->

</table>

</br>



Bueno, con esto ya estaría. Si se quiere poner en otra parte no hay mas que hechar un ojo a index_body.ptl y colocar el código donde uno quiera.

Saludos

Última edición por Mosiah; 31/08/2005 a las 03:37
  #120 (permalink)  
Antiguo 02/09/2005, 04:38
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 11 meses
Puntos: 5
Recuerda mosiah que esa versión te toma hilos del mismo tema si 'están' dentro de los cinco últimos.

Dejo una último modificación que hice a ése script para los que quieren incluirlo en el index del foro:

Cita:
Esta modicación incluye en el índice del foro una tablita con información de los últimos posts enviados a los foros.

Aspecto(subSilver):


Ejemplo:
http://usuarios.lycos.es/canalfrances1/

Está hecha de tal forma que si no se pasa por query string al index la variable f que contiene el identificador del foro a mostrar, mostrará los últimos mensajes de TODOS los foros, y si se pasa un identificador de foro, bien manualmente, bien usando el select que he incorporado abajo de la tabla, mostrará los últimos mensajes del foro apropiado.

Cuando se pase un identificador de foro que no existe o bien el de un foro al cual el usuario no tiene acceso, mostrará por defecto la información de los últimos posts de TODOS LOS FOROS.

El select no muestra claro está los foros a los que el usuario no tiene acceso (he usado simplemente la función make_jumpbox que lo hace automáticamente). Puesto que la función make_jumpbox devuelve únicamente el select de los foros, para permitir la navegación a MOSTRAR TODOS LOS FOROS ha sido necesario usar un link(un simple link al index mismo sin pasar variable por query string).

Además he usado una plantilla para que quién quiera instalarselo no se tenga que liar a toquetear el php.

Instalación:
Crear un archivo llamado ultimos.php con el siguiente contenido:
Código PHP:
<?
//iniciamos template
$template->set_filenames(array(
        
'ultimos' => 'ultimos.tpl')
    );

// AVERIGUAMOS LOS FOROS A LOS QUE EL USUARIO NO TIENE ACCESO y A LOS QUE TIENE ACCESO. Tb adaptamos salida para concatenar a query
$auth_ary auth(AUTH_READAUTH_LIST_ALL$userdata); 
foreach ( 
$auth_ary as $auth_forum_id=>$auth_level 
{
    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 "); 
        
$no_accesibles[]=$auth_forum_id;
    }
    else 
    {
        
$accesibles[]=$auth_forum_id;
    }
    

$auth_view_forums="WHERE " $auth_view_forums


// si no se pasa f por query string     ->        TODOS LOS FOROS
// si se pasa f por query string    :
//                                    si no existe ese foro -> TODOS LOS FOROS
//                                    si existe pero no tiene permisos el usuario -> TODOS LOS FOROS

$foro = ( ( is_array$no_accesibles ) && in_array$HTTP_GET_VARS['f'] , $no_accesibles ) ) || !in_array$HTTP_GET_VARS['f'] , $accesibles ) ) ? "" $HTTP_GET_VARS['f'];

// Pasamos a primera query el identificador de foro si procede y sino nada
$foro_query = ( $foro == "" ) ? "" : ( " p.forum_id=" $HTTP_GET_VARS['f'] . " AND " );

// primera query que recoge distintos topic_id dados los últimos mensajes
$sql_ini=("SELECT distinct p.topic_id FROM ".POSTS_TABLE."  p, ".TOPICS_TABLE." t $auth_view_forums $foro_query p.topic_id=t.topic_id ORDER BY t.topic_last_post_id DESC LIMIT 0,5");
if ( !(
$result_ini $db->sql_query($sql_ini)) )
        {
            
message_die(GENERAL_ERROR'No se pudo obtener últimos temas'''__LINE____FILE__$sql_ini);
        }


while ( 
$assoc_ini=$db->sql_fetchrow($result_ini) )
    
// Para cada topic_id obtenido extraeremos datos necesarios en dos querys
    
{
        
// Segunda query todos los datos menos el ultimo usuario
        
$sql=("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=".$assoc_ini['topic_id']." AND p.post_id=t.topic_last_post_id AND t.forum_id=f.forum_id");
        if ( !(
$result $db->sql_query($sql)) )
        {
            
message_die(GENERAL_ERROR'No se pudo obtener últimos temas'''__LINE____FILE__$sql);
        }
        while ( 
$assoc=$db->sql_fetchrow($result) )
        {
            
// tercera query ultimo posteador
            
$sql_last=("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");
            if ( !(
$result_last $db->sql_query($sql_last)) )
            {
                
message_die(GENERAL_ERROR'No se pudo obtener últimos temas'''__LINE____FILE__$sql_last);
            }
            
$ultimo_usuario=$db->sql_fetchrow($result_last);
            
$ultimo_usuario=$ultimo_usuario['username'];
            
$db->sql_freeresult($result_last);
            
$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"]; 
            
$foro_nombre $assoc['forum_name'];
            
$template->assign_block_vars('ultimos', array(
                
'LINK_TITULO'        =>    append_sid"viewtopic.$phpEx?p=".$assoc['post_id']."&highlight=#".$assoc['post_id'] ),
                
'TITULO'            =>    ( ( strlen $assoc["topic_title"] ) > 19 ) ? ( substr $assoc["topic_title"] , 19 ) . "..." ) : $assoc["topic_title"] ),
                
'LINK_FORO'            =>    append_sid"viewforum.$phpEx?f=".$assoc["forum_id"] ),
                
'FORO'                =>  ( ( strlen $assoc["forum_name"] ) > 19 ) ? ( substr $assoc["forum_name"] , 19 ) .     "..." ) : $assoc["forum_name"] ),
                
'LINK_CREADOR_TEMA'    =>    append_sid"profile.$phpEx?mode=viewprofile&u=".$assoc["username"] ),
                
'CREADOR_TEMA'        =>    $assoc["username"],
                
'CREADOR_FECHA'        =>  $fecha_abierto,
                
'LINK_AUTOR_ULTIMO'    =>    append_sid"profile.$phpEx?mode=viewprofile&u=".$ultimo_usuario ),
                
'AUTOR_ULTIMO'        =>    $ultimo_usuario,
                
'FECHA_ULTIMO'        =>    $fecha_ultimo,
                
'RESPUESTAS'        =>    $assoc["topic_replies"]));
        }
        
$db->sql_freeresult($result);
        
    }
$db->sql_freeresult($result_ini);
$template->assign_vars(array(
                
'FORO_NOMBRE'        =>    ( ( $foro == "" ) ? "TODOS LOS FOROS" $foro_nombre ),
                
'INDICE'            => append_sid("index.$phpEx" ) ) );
make_jumpbox('index.'.$phpEx);
$template->pparse('ultimos');
?>
Y subirlo al directorio raiz del foro

Crear un archivo llamado ultimos.tpl con el siguiente contenido:
Código PHP:
<table align="center" class="forumline" width="100%">
<
tr align="right">
        <
td class="catHead" colspan="5" height="28"><span class="cattitle"><a href="#" class="cattitle">Últimos mensajes en los foros&nbsp;&nbsp;::&nbsp;&nbsp;{FORO_NOMBRE}</a></span></td>
    </
tr>
<
tr>
    <
th colspan="2">
    
Título Foro
    
</th>
    <
th>
    
Abierto por
    
</th>
    <
th>
    
Último mensaje
    
</th>
    <
th>
    
Respuestas
    
</th>
</
tr>
<!-- 
BEGIN ultimos -->
<
tr>
    <
td class="row1" align="center" height="28">
        <
span class="gensmall">
        <
a href="{ultimos.LINK_TITULO}">
        {
ultimos.TITULO}
        </
a>
        </
span>
    </
td>
    <
td class="row1" align="center" height="28">
<
span class="gensmall">
        <
a href="{ultimos.LINK_FORO}"
            {
ultimos.FORO}
        </
a></span>

    </
td>
    <
td class="row1" align="center" height="28">
        <
span class="gensmall">
        <
a href="{ultimos.LINK_CREADOR_TEMA}"
            {
ultimos.CREADOR_TEMA}
        </
a> </span>
        &
nbsp;<span class="gensmall" height="28">
        
el {ultimos.CREADOR_FECHA}</span>

    </
td>
    <
td class="row1" align="center" height="28">
        <
span class="gensmall">
        <
a href="{ultimos.LINK_AUTOR_ULTIMO}"
            {
ultimos.AUTOR_ULTIMO}
        </
a> </span>
        &
nbsp;<span class="gensmall">
        
el {ultimos.FECHA_ULTIMO}</span>

    <
td class="row1" align="center" height="28">
    <
span class="gensmall">
    {
ultimos.RESPUESTAS}</span>

    </
td>
</
tr>
  <!-- 
END ultimos -->
<
tr>
<
td class="row3" colspan="2" align="center">
<
span class="gensmall"><a href="{INDICE}">Todos los foros</a></span></td>
<
td class="row3" colspan="3" align="center">
{
JUMPBOX}</td>
</
tr>
</
table
Y subirlo al directorio raiz de las plantillas que tengamos instaladas...

Abrir el archivo index.php y localizar la linea +/- 290
Código PHP:
    include($phpbb_root_path 'includes/page_header.'.$phpEx); 
y despues hacer un include a nuestro ultimos.php (o como quieras haberle llamado)
Código PHP:
    include($phpbb_root_path 'ultimos.'.$phpEx); 
Espero que sea útil...

Salu2 ;)
__________________
[+]
[+]

Última edición por yoseman; 02/09/2005 a las 04:44
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 23:34.