Ver Mensaje Individual
  #47 (permalink)  
Antiguo 04/04/2005, 12:20
Avatar de yoseman
yoseman
 
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 22 años, 10 meses
Puntos: 5
Cita:
Iniciado por daosorio
Estimados colegas:

Yo uso el siguiente código para mostrar los últimos 15 mensajes del foro en una page x, y me funciona bien.

Código PHP:
<?
// phpBB :: MOSTRAR ULTIMOS 15 MENSAJES


$con=mysql_connect("localhost",USER,"");
mysql_select_db("BASEDEDATOS",$con);

// Cantidad de post a mostrar y prefijo de las tablas
$ultimos = 15;
$prefijo = "TBL_phpbb_";

// Consultas a la base
$result_mensaje=mysql_query("select * from $prefijo"."topics order by topic_id desc limit $ultimos",$con); 
while(
$mostrar_m = mysql_fetch_array($result_mensaje)) { 
$topic=$mostrar_m["topic_id"];
$forum_id=$mostrar_m["forum_id"];
$result_foro=mysql_query("select * from $prefijo"."forums where forum_id like $forum_id",$con);
$mostrar_f=mysql_fetch_array($result_foro);
$forum_name = $mostrar_f["forum_name"];
mysql_free_result($result_foro);
?>
                      &nbsp;<a href="http://MYSITE/phpBB2/viewtopic.php?t=<?=$topic;?>" target="_blank"><? echo $mostrar_m["topic_title"]; ?></a> en <i><b>
                        <?=$forum_name;?>
                        </b></i></font>&nbsp;<br>
                        <?
}
// Cerramos conexión
mysql_free_result($result_mensaje);
mysql_close($con);
?>

Sin embargo, me gustaría saber cómo le hago para lograr lo siguiente:

1.- Que muestre la fecha en que se posteó (publicó)
Tema - En Carpeta fulana - Fecha

2.- Y que me muestre los temas de una categoría, no de la subcategoría.
Ejemplo:
TECNOLOGÍA
* Software
* Hardware
* Híbrida

Por citar un caso, pero que me muestre todos los temas de tecnología y No los de solo de soft, o hard o híbridad...

Quedando así:

Nuevos discos duros en Hardware - 01/01/2005
Fedora Core 10 en Sofware - 15/05/2006

Espero se pueda.

Gracias y saludos.
He estado trasteando un rato y mas o menos me sale, míralo y contrástalo a ver si te sirve:
Código PHP:
<?
// iniciamos sesión phpBB si el código no está dentro de algún script del foro
// en cuyo caso no haría falta
// definimos la ruta del foro en phpbb_root_path
// si es el directorio del foro no ponemos nada
// si esta por arriba del foro ponemos: directorio_del_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_ip, PAGE_INDEX);
init_userprefs($userdata);
global 
$db, $board_config;
global 
$HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;
$cookiename = $board_config['cookie_name'];
$cookiepath = $board_config['cookie_path'];
$cookiedomain = $board_config['cookie_domain'];
$cookiesecure = $board_config['cookie_secure'];
// determinamos si cookie activada sino propagamos sid por url
   
if ( !(isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) || isset($HTTP_COOKIE_VARS[$cookiename . '_data'])) )
   {
   
output_add_rewrite_var('sid', $userdata['session_id']);
   }
// fin inicio sesión phpBB
$p = $table_prefix; 
$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; 
$auth_view_forums1="WHERE " . $auth_view_forums1; 
$busqueda= @mysql_query("SELECT * FROM ".$p."categories"); 
if (!
$busqueda) 
   { 
   echo (
"Error al seleccionar los elementos de la base de datos. Por favor Inténtelo de nuevo más tarde."); 
   exit(); 
   } 
while (
$row = mysql_fetch_assoc($busqueda)) 
   { 
    
$cat[$row['cat_id']]=$row['cat_title'];
   } 
if (!isset(
$_GET['id'])  || !in_array($_GET['id'],array_keys($cat)))     {$_GET['id']=key($cat);} 
?>
Últimas respuestas en la categoría <?=$cat[$_GET['id']]?><br /><br />
<?
$sql 
= mysql_query("SELECT po.post_time,p.forum_name,t.topic_time,t.topic_last_post_id,t.topic_title,t.topic_replies,t.topic_id from  " . $p . "forums p,". $p . "topics t,". $p . "posts po WHERE t.topic_last_post_id=po.post_id and t.forum_id=p.forum_id and p.cat_id=".$_GET['id']." ORDER BY t.topic_last_post_id DESC,t.topic_time ASC LIMIT 0,5");
while (
$row = mysql_fetch_array($sql)) {
$id = $row['topic_id'];
$titulo = $row['topic_title'];
$respuestas = $row['topic_replies'];
$post_id = $row['topic_last_post_id'];
$dat=getdate($row['post_time']); 
?>
<a href="<?=$phpbb_root_path?>viewtopic.php?t=<?=$id?>&highlight=#<?=$post_id?>">-<?=$titulo?></a>&nbsp;&nbsp;en <b><?=$row['forum_name']?></b>&nbsp;-&nbsp;<?=$dat["mday"]?>/<?=$dat["mon"]?>/<?=$dat["year"]?> <br />(<?=$respuestas?> Respuestas)<br /><br/>
<?
}
?> <br />
<br>
<form action="<?=$PHP_SELF?>" method="get"> 
<select name="id" value="1" onchange="if(this.options[this.selectedIndex].value != -1) {this.form.submit();}"> 
         <option value="-1">Seleccione la categoria</option> 
         <option value="-1"></option> 
      
<?
foreach ($cat as $key=>$value)
    {
    
$sel = ($key==$_GET['id']) ? " selected=\"selected\"" : ""; 
    
?>
   <option value="<?=$key?>" <?=$sel?>><?=$value?></option> 
<?}?>
</form>
Ejemplo de cómo quedaría:

http://elotrositio.tuarrobanet.com/top.php

Salu2 ;)
__________________
[+]
[+]

Última edición por yoseman; 04/04/2005 a las 12:40