Página 2 de 2

Respuesta: Bloque De Ultimos Post Para Cada Foro

Publicado: 23 May 2006, 15:26
por kuve
El include es este:

Código: Seleccionar todo

 include($phpbb_root_path . 'ultimos.'.$phpEx);
He probado poniendo esto

Código: Seleccionar todo

 include(ultimos.php?f=id_del_foro);
Pero va a ser que no funcionaba, parece que la f tiene que ir asi

Código: Seleccionar todo

http://www.nombredelaweb.com/index.php?f=id_del_foro
Tambien he probado a poner la id del foro directamente en el ultimos.php de esta manera

Código: Seleccionar todo

// 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['id_del_foro'] , $no_accesibles ) ) || !in_array( $HTTP_GET_VARS['f'] , $accesibles ) ) ? "" : $HTTP_GET_VARS['id_del_foro'];

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

Respuesta: Bloque De Ultimos Post Para Cada Foro

Publicado: 24 May 2006, 00:35
por kuve
Bueno amigos, me puse en contacto con el creador del MOD que me pasasteis y me ayudo a conseguir lo que necesitaba de muy buena gana. Asi que ahora os lo pongo yo aqui para que la gente que lo necesite lo pueda poner en sus foros.

Primero decir que esto lo he usado en ezportal, la unica diferencia es añadir el ultimo include en el index.php o en el portal.php

1.- Crea un archivo llamado ultimos.php con este contenido

Código: Seleccionar todo

<? 
$template->set_filenames(array( 
      'ultimos' => 'ultimos.tpl') 
   ); 
$foro_query = " p.forum_id=" . $ultimosForoId; 

$sql_ini=("SELECT distinct p.topic_id FROM ".POSTS_TABLE."  p, ".TOPICS_TABLE." t WHERE $foro_query  and p.topic_id=t.topic_id ORDER BY t.topic_last_post_id DESC LIMIT 0,10");
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"] , 0 , 19 ) . "..." ) : $assoc["topic_title"] ),
            'LINK_FORO'         =>   append_sid( "viewforum.$phpEx?f=".$assoc["forum_id"] ),
            'FORO'            =>  ( ( strlen ( $assoc["forum_name"] ) > 19 ) ? ( substr ( $assoc["forum_name"] , 0 , 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');
$template->destroy('ultimos');
?> 
2.- Sube este archivo al directorio raiz de tu phpbb
3.- Crea un archivo llamado ultimos.tpl con este contenido.

Código: Seleccionar todo

<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>
4.- Subir este archivo al directorio del template que useis.
5.- Abrir vuestro archivo portal.php si lo vais a poner en ezportal o index.php si lo vais a poner en vuestro foro y buscar la siguiente linea

Código: Seleccionar todo

include($phpbb_root_path . 'includes/page_header.'.$phpEx);
6.- Añadir despues de esto, el siguiente codigo cambiando el id_del_foro por el id de los foros que querais poner.

Código: Seleccionar todo

$ultimosForoId=id_del_foro;
include("ultimos.php");
7.- Si quereis poner mas de un bloque solo teneis que añadir tantos de esos como necesiteis, acordandoos de cambiar el id_del_foro. Un saludo y muchas gracias al creado del MOD y los que me ayudaron.

Respuesta: Bloque De Ultimos Post Para Cada Foro

Publicado: 14 Jun 2006, 00:00
por jmluna
Hola Chicos es justo lo que necesito para poner en mi portal http://www.tuarrecife.com

Lo he probado y me funciona pero me aparece debajo del header y sobre los bloques.

Hay alguna forma de poner el include o el codigo para que aparezca debajo del mensaje de bienvenida. Tal cual aparece el bloque de descargas en este foro.

Teniendo en cuenta que soy muy torpe y tengo muy escasos conocimientos.

Gracias por adelantaado.

Respuesta: Bloque De Ultimos Post Para Cada Foro

Publicado: 14 Jun 2006, 03:56
por mitch
jmluna será necesario que abras un nuevo post, dandonos los datos de tu foro, mods instalados, plantilla usada y demás para que podamos ver aquello (cuando lo hagas, acuerdate de mencionar este post para que nos acordemos que es esto lo que estas instalando).

Eso, abre un nuevo tema con tus datos, para no liar este. Saludos

Respuesta: Bloque De Ultimos Post Para Cada Foro

Publicado: 25 Ago 2006, 11:44
por eilrax
hize todo lo que explicabas paso a paso pero me da un error :cry:

Warning: main(ultimos.PHP): failed to open stream: No such file or directory in /www/sites/1/iespana.es/c/l/clan-masters/site/foro/index.php on line 237

Warning: main(): Failed opening 'ultimos.PHP' for inclusion (include_path='.:/www/usr/lib/php') in /www/sites/1/iespana.es/c/l/clan-masters/site/foro/index.php on line 237

eso me sale arriba del todo despues de las opciones de inicio, foro, normas, registrate etc etc a que se debe ?
estoi mas que seguro que hize todo bien ya que lo hize 2 veces :P

Respuesta: Bloque De Ultimos Post Para Cada Foro

Publicado: 25 Ago 2006, 12:56
por SuperNovato
No estoy seguro, pero es que tu foro es un XS.
No sé si ese MOD para phpBB puede aplicarse tal cual a XS (y menos sin saber tu versión de XS).
No sé, alguien sabrá decir de eso.
De todos modos, mira lo que le dice Mitch a jmluna, que también es aplicable en tu caso jejeje

En tiodo caso, marco este interesante tema como solucionado y lo muevo a MODs
(si otro moderador cree que va mejor en plantillas, que lo mueva sin problema ;) ).

Re: Respuesta: Bloque De Ultimos Post Para Cada Foro

Publicado: 23 Oct 2006, 07:37
por petazeta
hize todo lo que explicabas paso a paso pero me da un error :cry:

Warning: main(ultimos.PHP): failed to open stream: No such file or directory in /www/sites/1/iespana.es/c/l/clan-masters/site/foro/index.php on line 237

Warning: main(): Failed opening 'ultimos.PHP' for inclusion (include_path='.:/www/usr/lib/php') in /www/sites/1/iespana.es/c/l/clan-masters/site/foro/index.php on line 237

eso me sale arriba del todo despues de las opciones de inicio, foro, normas, registrate etc etc a que se debe ?
estoi mas que seguro que hize todo bien ya que lo hize 2 veces :P el problema es las mayusculas de ultimos.PHP

ponlo en minusculas

un saludo

Respuesta: Bloque De Ultimos Post Para Cada Foro

Publicado: 31 Mar 2007, 16:20
por diosk
Hola, al hacer todome sale un error en la Linea 8 del archivo ultimos.php o sea la linea q tiene el siguiente dato

if ( !($result_ini = $DB->sql_query($sql_ini)) )


No podrias ayudarme. Saludos!!!

Respuesta: [SOLUCIONADO]Bloque De Ultimos Post Para Cada For

Publicado: 31 Mar 2007, 20:31
por SuperNovato
diosk:

a) El tema está marcado como solucionado. Así que mejor tu duda en otro tema nuevo.
b) Y poniendo los datos de soporte. En este no los has puesto, así que tercera tarjeta, tú verás si sigues prefiriendo no ponerlos.

Respuesta: [SOLUCIONADO]Bloque De Ultimos Post Para Cada Foro

Publicado: 01 Abr 2007, 22:05
por diosk
Pido disculpas, pero no sabia q ya estaba solucionado, va no me di cuenta. No lo hice a proposito, es mas yo ya abri un nuevo tema con mi problema, pero me dijeron q busque q alguien habia soluicionado enotro post un problema similar al mio y encontre este, por eso pregunte, perono sabia q no se podia preguntar al tener una duda en un post solucionado. Y si no puse los datos de fue porq entendi cuando lei el reglamento, q solo el q abria el post tenia q hacerlo. Saludos y pido disculpas desde ya. solo buscaba una solucion a mi problema.

Respuesta: [SOLUCIONADO]Bloque De Ultimos Post Para Cada Foro

Publicado: 08 May 2007, 19:25
por arkarian
tengo un problema con la explicacion de kuve para los ultimos post puesto que cuando pongo los ultimos post de kuve los otrs se me desabilitan porque?