Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..

Gracias.

La Administración de phpBB España.

Modificar script para mostrar URL amigables en portalTema Solucionado

Foros donde podréis dejar vuestras dudas sobre phpBB 3.0.x
Elpingo
Asiduo/a
Mensajes: 184
Registrado: 04 Nov 2009, 21:03

Modificar script para mostrar URL amigables en portal  Tema Solucionado

#1

Mensaje por Elpingo »

Hola, encontré este script hecho por Alorse para mostrar los ultimos temas en un portal.

En lo posible quisiera modificarlo para que muestre la imágen (icono) del foro y a continuación el titulo del tema y que tenga un acortador de texto para evitar el salto de linea, como podria hacerlo.

Actualmente en el index de mi sitio tengo los ultimos temas con imágen del foro, solo que no funciona con SEO ni acortador de texto.

Avatar de Usuario
Alorse
Ex Staff
Mensajes: 5144
Registrado: 22 Mar 2008, 02:14
Género:
Edad: 36

Re: Modificar script para mostrar URL amigables en portal

#2

Mensaje por Alorse »

Que portal usas? este es independiente el foro? porque no le veo copyright de phpBB

Elpingo
Asiduo/a
Mensajes: 184
Registrado: 04 Nov 2009, 21:03

Re: Modificar script para mostrar URL amigables en portal

#3

Mensaje por Elpingo »

Alorse escribió:Que portal usas? este es independiente el foro? porque no le veo copyright de phpBB
Así es Alorse, el portal que utilizo lo hice yo y el script para mostrar los utlimos temas también, sucede que con el script que tengo actualmente no hay caso de poder hacerlo funcionar con SEO, por otra parte ayer encontré de casualidad el script que hicistes tu y me parece mejor concebido en el código y sobre todo que funciona con SEO, lo que a mi criterio respecta sería ideal si a tu código se le pudiera agregar un acortador de texto y un paginador. Entonces si en mi diseño quiero mostrar solo 5 resultados, queda la opción de poder seguir viendo los 5 anteriores y asi sucesivamente.

Otro punto a tener en cuenta sería que el script muestre solamente los ultimos temas, no los ultimos mensajes, creo yo, que el objetivo de este script en un portal, es darle un pantallazo a los visitantes sobre lo ultimo publicado y no sobre lo ultimo comentado o respondido, también cumple un rol importantisimo al momento de que los bots indexan el sitio.

Como sugerencia te comento y tu lo sabrás, que hay muchas consultas sobre este tipo de script en este foro y seguramente lo seguirán preguntando, por lo tanto si logras hacer un script que reuna casi todas las caracterisiticas que los usuarios piden sería muy versátil y el script tranquilamente podría estar en la Biblioteca, basta con que se comenten algunas lineas o se cambien algunos parametros el script se ajustaria a casi todas las necesidades.

Es solo una idea! :ok:
Última edición por Elpingo el 29 Abr 2011, 19:22, editado 1 vez en total.

Avatar de Usuario
Alorse
Ex Staff
Mensajes: 5144
Registrado: 22 Mar 2008, 02:14
Género:
Edad: 36

Re: Modificar script para mostrar URL amigables en portal

#4

Mensaje por Alorse »

Ya entendi, tu lo que quieres es algo como esto miportal.php

Si quieres muéstrame el código de tu portal (Usa pastebin) y te digo que agregarle para ponerlo a funcionar con SEO y mirar como podríamos hacer lo del cortador de texto.

Elpingo
Asiduo/a
Mensajes: 184
Registrado: 04 Nov 2009, 21:03

Re: Modificar script para mostrar URL amigables en portal

#5

Mensaje por Elpingo »

Alorse escribió:Ya entendi, tu lo que quieres es algo como esto miportal.php
Exacto Alorse, es lo que busco solo que le faltaria un paginador si no es mucho pedir.

Te paso el código aquí, por que no veo el codigo de confirmación en el pastebin, no me deja subirlo.

Código: Seleccionar todo

<!-- Ultimos Posts -->
<?
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './forum/';
    $phpEx = substr(strrchr(__FILE__, '.'), 1);
    include($phpbb_root_path . 'common.' . $phpEx);
    include($phpbb_root_path . 'includes/bbcode.' . $phpEx);
    include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
// phpBB :: ULTIMOS TEMAS ::

$con=mysql_connect("xxxxxx", "xxxxxx", "xxxxxx");
mysql_select_db("xxxxxx_xxx",$con);

// Cantidad de post a mostrar y prefijo de las tablas
$ultimos = 43;
$prefijo = "phpbb_";

// Recortar titulos
function cut_string($string, $charlimit)
{
if(substr($string,$charlimit-1,1) != ' ')
{
$string = substr($string,'0',$charlimit);
$array = explode(' ',$string);
array_pop($array);
$new_string = implode(' ',$array);

return $new_string.' ...+';
}
else
{
return substr($string,'0',$charlimit-1).'';
}
}

// Consultas BD
$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_image = $mostrar_f["forum_image"];
$forum_name = $mostrar_f["forum_name"];
mysql_free_result($result_foro);

$cadena=$mostrar_m["topic_title"];
//Texto o titulo a recortar Ej: $cadena="Texto a recortar.";
//Donde mostramos el titulo recortado en el HTML llamamos a la funcion estableciendo la cantidad de caracteres a mostrar:  echo cut_string($cadena, 25);
?>
<style type="text/css">
<!--
a:link {
    color: #666;
    text-decoration: none;
}
a:visited {
    text-decoration: none;
    color: #09C;
}
a:hover {
    text-decoration: underline;
    color: #09F;
}
a:active {
    text-decoration: none;
}
-->
</style>
 
<div>
<table width="100%" cellspacing="2">
  <tr>
    <td style="font-family:Tahoma, Geneva, sans-serif; color:#333; font-size:11px"><img src="forum/<?=$forum_image;?>" width="20" height="20" alt="" title="<?=$forum_name;?>" /> &raquo;&nbsp;<a href="http://www.crakinet.com/forum/viewtopic.php?t=<?=$topic;?>" target="_blank" title="<? echo $mostrar_m["topic_title"] ?>"><em><b><? echo $mostrar_m["topic_title"] ?></b></em></a><br /></td>
  </tr>
</table>
</div>
<?
}
// Cerrar conexión
mysql_free_result($result_mensaje);
mysql_close($con);
?>
<!-- End Ultimos Post -->
Como verás este código tiene un cortador de texto, pero no se por que razón algunos titulos los corta demasiado dejando tan solo 2 palabras, si el titulo contiene algun caracter [] o () lo corta antes, no me toma bien los espacios, la verdad no se, lo dejé ahi pero no está funcionando en el script del sitio.
Última edición por Elpingo el 29 Abr 2011, 21:25, editado 1 vez en total.

Avatar de Usuario
Alorse
Ex Staff
Mensajes: 5144
Registrado: 22 Mar 2008, 02:14
Género:
Edad: 36

Re: Modificar script para mostrar URL amigables en portal

#6

Mensaje por Alorse »

Te propongo cambiar tu código por este:

Código: Seleccionar todo

<?
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/bbcode.' . $phpEx);
// phpBB :: ULTIMOS TEMAS ::
$user->session_begin();
$auth->acl($user->data);
$user->setup('miportal');

page_header('Portal jugoso');

// Cantidad de post a mostrar
$search_limit = 43;
$topics_ary = array(
    'SELECT' => 'f.*, t.*, u.username, u.user_colour',
    'FROM' => array(
        TOPICS_TABLE => 't',
    ),
    'LEFT_JOIN' => array(
        array(
            'FROM' => array(USERS_TABLE => 'u'),
            'ON' => 'u.user_id = t.topic_poster'
        ),
        /* array(
          'FROM' => array(TOPICS_TABLE => 't'),
          'ON' => 'p.topic_id = t.topic_id'
          ), */
        array(
            'FROM' => array(FORUMS_TABLE => 'f'),
            'ON' => 't.forum_id = f.forum_id'
        ),
    ),
    //'WHERE' => 't.topic_type = 2 || t.topic_type = 3',
    'WHERE' => $db->sql_in_set('t.forum_id', array_keys($auth->acl_getf('f_read', true))) . '
        AND t.topic_status <> ' . ITEM_MOVED . '
        AND t.topic_approved = 1
        OR t.forum_id = 0', //OR t.forum_id = 0, esta linea es para que muestre tambien los globales ya que el id del foro de estos es 0
    'ORDER_BY' => 't.topic_id DESC',
);

$topics = $db->sql_build_query('SELECT', $topics_ary);
$topics_result = $db->sql_query_limit($topics, $search_limit);

while ($topics_row = $db->sql_fetchrow($topics_result)) {
    $forum_id = $topics_row['forum_id'];
    $topic_id = $topics_row['topic_id'];
    $forum_image = "{$phpbb_root_path}" . $topics_row['forum_image'];

    $topic_title = $topics_row['topic_title'];
    $topic_title = censor_text($topic_title);
     if (strlen($topic_title) > 50)
      $topic_title = substr($topic_title, 0, 49) . "...+"; // 49 es el numero de caracteres a mostrar por titulo
    $topic_type = $topics_row['topic_type'];
    // www.phpBB-SEO.com SEO TOOLKIT BEGIN
    $phpbb_seo->set_url(!empty($forum_name), $forum_id, $phpbb_seo->seo_static['forum']);
    $phpbb_seo->prepare_iurl($topics_row, 'topic', $topic_type == POST_GLOBAL ? $phpbb_seo->seo_static['global_announce'] : $phpbb_seo->seo_url['forum'][$forum_id]);
    // www.phpBB-SEO.com SEO TOOLKIT END
    $view_topic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $forum_id . '&t=' . $topic_id);
//Texto o titulo a recortar Ej: $cadena="Texto a recortar.";
//Donde mostramos el titulo recortado en el HTML llamamos a la funcion estableciendo la cantidad de caracteres a mostrar:  echo cut_string($cadena, 25);
?>
    <style type="text/css">
        <!--
        a:link {
            color: #666;
            text-decoration: none;
        }
        a:visited {
            text-decoration: none;
            color: #09C;
        }
        a:hover {
            text-decoration: underline;
            color: #09F;
        }
        a:active {
            text-decoration: none;
        }
        -->
    </style>

    <div>
        <table width="100%" cellspacing="2">
            <tr>
                <td style="font-family:Tahoma, Geneva, sans-serif; color:#333; font-size:11px"><img src="<?= $forum_image ?>" width="20" height="20" alt="" title="<?= $forum_name; ?>" /> &raquo;&nbsp;<a href="<?=$view_topic_url ?>" target="_blank"><em><b><?= $topic_title ?></b></em></a><br /></td>
            </tr>
        </table>
    </div>
<?
}
?>
No tiene errores, se basa en código phpBB, excepto por el manejo de plantillas, no usa el comando de conexión a la base de datos ya que lo llama desde las funciones de phpBB, mucho mas optimo y funciona como lo quieres, excepto por la paginación que no tengo idea como se hace.
También ya puse una validación diferente para que recorte los títulos.
Hice algunos comentarios en el código para que lo entiendas mejor, pero en si, esta basado en el código que me has pasado anteriormente, aa y obviamente funciona con SEO.

Ahora voy de salida, si respondes lo leo en la noche. :ok:

Elpingo
Asiduo/a
Mensajes: 184
Registrado: 04 Nov 2009, 21:03

Re: Modificar script para mostrar URL amigables en portal

#7

Mensaje por Elpingo »

Bien Alorse, muchas gracias! Ahora si quieres me puedes ayudar con el paginador, primero te cuento que le hice algunos cambios, le agregué una variable para mostrar el título completo al posar el mouse sobre el enlace, o sea en el atributo title="" después le agregué un paginador que encontré pero aquí se me hizo la nube, con tantas variables estoy mareado.

Puedes verlo aqui: http://crakinet.com/prueba_index_portal.php

Lo que habría que solucionar sería que el paginador ejecute el limit de la BD, es decir, suponiendo que tengo 1000 temas publicados, el paginador deberia mostrar:

Hay 1000 temas, mostrando del 1 al 50

Mi confusión viene en que el paginador tiene una variable $cantidad=5 y el limit del script tiene la variable $search_limit = 50;
entonces al tener la variable de paginador en 5 y la variable del script en 50, el paginador crea los enlaces en números del 1 al 10 como habrás visto. Aquí es donde tengo la nube, por que en todo caso para que este script sea útil para otros, deberiamos poder asignar un valor a la variable $search_limit o en su defecto comentarla y que arroje el resultado total de temas, y en ese caso asignar el valor a la variable $cantidad que será la lista visible en el portal con el respectivo paginador debajo.

Se entiende o la lié mucho? :oops:

Te paso los archivos por si quieres probar
Ultimos_temas_con_paginador.zip
(3.27 KiB) Descargado 79 veces

Avatar de Usuario
Alorse
Ex Staff
Mensajes: 5144
Registrado: 22 Mar 2008, 02:14
Género:
Edad: 36

Listar últimos temas con paginador

#8

Mensaje por Alorse »

La verdad es que no tengo idea como se hace, me tocaría estudiarlo y ando algo copado de trabajo.
Si alguien mas te responde bien, o sino te tocara esperar unos días a que me desocupe.
Por ahora quedo funcionando loas importante a mi parecer que es el SEO.

Avatar de Usuario
Alorse
Ex Staff
Mensajes: 5144
Registrado: 22 Mar 2008, 02:14
Género:
Edad: 36

Listar últimos temas con paginador

#9

Mensaje por Alorse »

Ya he hecho el paginador, cambia el codigo que te di anteriormente, por este:

Código: Seleccionar todo

<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './'; // Agregar a ./ la ruta de phpBB3
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// phpBB :: ULTIMOS TEMAS ::
$user->session_begin();
$auth->acl($user->data);
$user->setup();

$search_limit = 22; // Cantidad de post a mostrar
$start = request_var('start', 0);
$topics_ary = array(
    'SELECT' => 'f.*, t.*, u.username, u.user_colour',
    'FROM' => array(
        TOPICS_TABLE => 't',
    ),
    'LEFT_JOIN' => array(
        array(
            'FROM' => array(USERS_TABLE => 'u'),
            'ON' => 'u.user_id = t.topic_poster'
        ),
        array(
            'FROM' => array(FORUMS_TABLE => 'f'),
            'ON' => 't.forum_id = f.forum_id'
        ),
    ),
    'WHERE' => $db->sql_in_set('t.forum_id', array_keys($auth->acl_getf('f_read', true))) . '
        AND t.topic_status <> ' . ITEM_MOVED . '
        AND t.topic_approved = 1
        OR t.forum_id = 0', //OR t.forum_id = 0, esta linea es para que muestre tambien los globales ya que el id del foro de estos es 0
    'ORDER_BY' => 't.topic_id DESC',
);

$topics = $db->sql_build_query('SELECT', $topics_ary);
$topics_result = $db->sql_query_limit($topics, $search_limit, $start);

while ($topics_row = $db->sql_fetchrow($topics_result)) {
    $forum_id = $topics_row['forum_id'];
    $topic_id = $topics_row['topic_id'];
    $forum_image = "{$phpbb_root_path}" . $topics_row['forum_image'];

    $topic_title = $topics_row['topic_title'];
    $topic_title = censor_text($topic_title);
    if (strlen($topic_title) > 50)
        $topic_title = substr($topic_title, 0, 49) . "...+";
    $topic_type = $topics_row['topic_type'];
    // www.phpBB-SEO.com SEO TOOLKIT BEGIN
    $phpbb_seo->set_url(!empty($forum_name), $forum_id, $phpbb_seo->seo_static['forum']);
    $phpbb_seo->prepare_iurl($topics_row, 'topic', $topic_type == POST_GLOBAL ? $phpbb_seo->seo_static['global_announce'] : $phpbb_seo->seo_url['forum'][$forum_id]);
    // www.phpBB-SEO.com SEO TOOLKIT END
    $view_topic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $forum_id . '&t=' . $topic_id);
?>
    <style type="text/css">
        <!--
        a:link {
            color: #666;
            text-decoration: none;
        }
        a:visited {
            text-decoration: none;
            color: #09C;
        }
        a:hover {
            text-decoration: underline;
            color: #09F;
        }
        a:active {
            text-decoration: none;
        }
        -->
    </style>

    <div>
        <table width="100%" cellspacing="2">
            <tr>
                <td style="font-family:Tahoma, Geneva, sans-serif; color:#333; font-size:11px"><img src="<?= $forum_image ?>" width="20" height="20" alt="" title="<?= $forum_name; ?>" /> &raquo;&nbsp;<a href="<?= $view_topic_url ?>" target="_blank"><em><b><?= $topic_title ?></b></em></a><br /></td>
            </tr>
        </table>
    </div>
<?php
}
$total_topics = $config['num_topics'];
$pagination_url = append_sid("{$phpbb_root_path}elpingo.$phpEx"); // cambiar 'elpingo' por el nombre del archivo .php
$pagination = generate_pagination($pagination_url, $total_topics, $search_limit, $start);
$page_number = on_page($total_topics, $search_limit, $start);
echo "$total_topics temas &bull; $page_number &bull; $pagination";
?>
También esta comentado para que puedas modificar el numero de temas por pagina y otras cosas mas a tu gusto.

Elpingo
Asiduo/a
Mensajes: 184
Registrado: 04 Nov 2009, 21:03

Re: Modificar script para mostrar URL amigables en portal

#10

Mensaje por Elpingo »

Muchas Gracias Alorse! Ahora te cuento que me sale este error debug al ingresar al index del sitio, una vez que comienzas a navegar y vuelves al index ya no sale o en su defecto si refrescas el index desaparece el error, como puedo solucionarlo?

Código: Seleccionar todo

[phpBB Debug] PHP Notice: in file /includes/session.php on line 1046: Cannot modify header information - headers already sent by (output started at /home/crack/public_html/index.php:6)
 [phpBB Debug] PHP Notice: in file /includes/session.php on line 1046: Cannot modify header information - headers already sent by (output started at /home/crack/public_html/index.php:6)
 [phpBB Debug] PHP Notice: in file /includes/session.php on line 1046: Cannot modify header information - headers already sent by (output started at /home/crack/public_html/index.php:6)
De la linea 4 a la 86 del index.php tengo la cabecera, o sea lo que está entre las etiquetas <head>

Avatar de Usuario
Alorse
Ex Staff
Mensajes: 5144
Registrado: 22 Mar 2008, 02:14
Género:
Edad: 36

Re: Modificar script para mostrar URL amigables en portal

#11

Mensaje por Alorse »

Antes del primer <?php no debe ir nada de html, yo probé el script y funciona perfecto, así que aparte de lo que te comento no se que pueda ser, ademas te recomiendo que lo conviertas en una pagina personalizada de phpBB y no embebiendo código como lo estas haciendo hasta ahora, para que no te suceda eso, en el foro de guías puedes encontrar como hacerlo.

Saludos.

Elpingo
Asiduo/a
Mensajes: 184
Registrado: 04 Nov 2009, 21:03

Re: Modificar script para mostrar URL amigables en portal

#12

Mensaje por Elpingo »

Si bien puedo personalizar el index en phpBB me surge el problema de como incluir el script de los ultimos temas, un código que tiene PHP y HTML entiendo que habría que separarlos, lo que no entiendo es como crear el array de plantilla - $template->assign_vars(array( - y como crear el HTML, supongo que es esto lo que habría que hacer :nolose: Hay alguna guia para esto?

Avatar de Usuario
Alorse
Ex Staff
Mensajes: 5144
Registrado: 22 Mar 2008, 02:14
Género:
Edad: 36

Re: Modificar script para mostrar URL amigables en portal

#13

Mensaje por Alorse »

Elpingo escribió:Hay alguna guia para esto?
Si, claro que la hay, en el foro de Guías la puedes encontrar como pagina personalizada.

Elpingo
Asiduo/a
Mensajes: 184
Registrado: 04 Nov 2009, 21:03

Re: Modificar script para mostrar URL amigables en portal

#14

Mensaje por Elpingo »

Alorse escribió:Si, claro que la hay, en el foro de Guías la puedes encontrar como pagina personalizada.
Bueno casualmente esa guia es la que he leído para personalizar el portal, el asunto es que para mostrar los últimos temas dentro de esa página personalizada, entiedo que debería hacer un archivo PHP y un HTML y luego incluirlos con algo como esto: <!-- INCLUDE ultimos_temas.html --> la duda se me presenta cuando tengo que integrar el PHP con el HTML, por ejemplo:

En el script que me pasaste tiene la parte del HTML y dentro del HTML está embebido el PHP, o sea como hago para cambiar

esto:

Código: Seleccionar todo

<table width="100%" cellspacing="2">
    			<tr>
    				<td style="font-family:Tahoma, Geneva, sans-serif; color:#333; font-size:11px"><img src="<?= $forum_image ?>" width="20" height="20" alt="" title="<?= $forum_name; ?>" /> &raquo;&nbsp;<a href="<?= $view_topic_url ?>" title="<?= $topic_title_explain ?>" target="_blank"><em><b><?= $topic_title ?></b></em></a><br /></td>
    			</tr>
    		</table>
por esto:

Código: Seleccionar todo

<table width="100%" cellspacing="2">
    			<tr>
    				<td style="font-family:Tahoma, Geneva, sans-serif; color:#333; font-size:11px"><img src="{URL_IMG_FORUM}" width="20" height="20" alt="" title="{FORUM_NAME}" /> &raquo;&nbsp;<a href="{URL_SEO}" title="{TOPIC_TITLE}" target="_blank"><em><b>{TOPIC_TITLE}</b></em></a><br /></td>
    			</tr>
    		</table>
Que debería agregar al archivo PHP de últimos temas para poder incluir en la plantilla. Entiendo que debería ser así, o me equivoco?

Perdona que moleste con esta pregunta, solo que en la guia no menciona como hacer lo que pregunto. Solamente tú haces mención a como agregar los archivos del lenguaje.

Avatar de Usuario
Alorse
Ex Staff
Mensajes: 5144
Registrado: 22 Mar 2008, 02:14
Género:
Edad: 36

Re: Modificar script para mostrar URL amigables en portal

#15

Mensaje por Alorse »

Te paso el código espero sepas entenderlo, porque ando algo corto de tiempo para explicarlo igual es lo mismo que lo anterior pero creando variables para el template.
Archivo: portal.php

Código: Seleccionar todo

<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './'; // Agregar a ./ la ruta de phpBB3
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// phpBB :: ULTIMOS TEMAS ::
$user->session_begin();
$auth->acl($user->data);
$user->setup();

page_header('Elpingo');

$search_limit = 22; // Cantidad de post a mostrar
$start = request_var('start', 0);
$topics_ary = array(
    'SELECT' => 'f.*, t.*, u.username, u.user_colour',
    'FROM' => array(
        TOPICS_TABLE => 't',
    ),
    'LEFT_JOIN' => array(
        array(
            'FROM' => array(USERS_TABLE => 'u'),
            'ON' => 'u.user_id = t.topic_poster'
        ),
        array(
            'FROM' => array(FORUMS_TABLE => 'f'),
            'ON' => 't.forum_id = f.forum_id'
        ),
    ),
    'WHERE' => $db->sql_in_set('t.forum_id', array_keys($auth->acl_getf('f_read', true))) . '
        AND t.topic_status <> ' . ITEM_MOVED . '
        AND t.topic_approved = 1
        OR t.forum_id = 0', //OR t.forum_id = 0, esta linea es para que muestre tambien los globales ya que el id del foro de estos es 0
    'ORDER_BY' => 't.topic_id DESC',
);

$topics = $db->sql_build_query('SELECT', $topics_ary);
$topics_result = $db->sql_query_limit($topics, $search_limit, $start);

while ($topics_row = $db->sql_fetchrow($topics_result)) {
    $forum_id = $topics_row['forum_id'];
    $topic_id = $topics_row['topic_id'];
    $forum_image = "{$phpbb_root_path}" . $topics_row['forum_image'];

    $topic_title = $topics_row['topic_title'];
    $topic_title = censor_text($topic_title);
    if (strlen($topic_title) > 50)
        $topic_title = substr($topic_title, 0, 49) . "...+";
    $topic_type = $topics_row['topic_type'];
    // www.phpBB-SEO.com SEO TOOLKIT BEGIN
    $phpbb_seo->set_url(!empty($forum_name), $forum_id, $phpbb_seo->seo_static['forum']);
    $phpbb_seo->prepare_iurl($topics_row, 'topic', $topic_type == POST_GLOBAL ? $phpbb_seo->seo_static['global_announce'] : $phpbb_seo->seo_url['forum'][$forum_id]);
    // www.phpBB-SEO.com SEO TOOLKIT END
    $view_topic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $forum_id . '&t=' . $topic_id);

    $template->assign_block_vars('elpingo', array(
        'FORUM_IMG' => $forum_image,
        'TOPIC_TITLE' => censor_text($topic_title),
        'POST_LINK' => $view_topic_url,
    ));
}
$total_topics = $config['num_topics'];
$pagination_url = append_sid("{$phpbb_root_path}elpingo.$phpEx"); // cambiar 'elpingo' por el nombre del archivo .php
$pagination = generate_pagination($pagination_url, $total_topics, $search_limit, $start);
$page_number = on_page($total_topics, $search_limit, $start);
//echo "$total_topics temas &bull; $page_number &bull; $pagination";

$template->assign_vars(array(
    'TOTAL_TOPICS' => $total_topics,
    'PAGINATION' => generate_pagination($pagination_url, $total_topics, $search_limit, $start),
    'PAGE_NUMBER' => on_page($total_topics, $search_limit, $start),
));

$template->set_filenames(array(
    'body' => 'elpingo.html', //nombre del archivo html
));

make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
page_footer();
?>
Y el HTML (este debes ponerlo en la carpeta foro/styles/TUPLANTILLA/template/: elpingo.html

Código: Seleccionar todo

<!-- INCLUDE overall_header.html -->

<h2>Elpingo</h2>

<div class="panel">
    <div class="inner"><span class="corners-top"><span></span></span>
        <div class="content">
            <p>
                TU CONTENIDO IRÍA AQUÍ. PUEDE SER TEXTO O CÓDIGO
            </p>
        </div>
        <span class="corners-bottom"><span></span></span></div>
</div>
<div class="forabg">
    <div class="inner"><span class="corners-top"><span></span></span>
        <ul class="topiclist">
            <li class="header">
                <dl class="icon"><dt>Ultimos temas</dt></dl>
            </li>
        </ul>
        <div class="panel" style="padding:6px;">
            <!-- BEGIN elpingo -->
            <img src="{elpingo.FORUM_IMG}" width="16" height="16" alt="{elpingo.TOPIC_TITLE}" title="{elpingo.TOPIC_TITLE}" /> &nbsp;&#187;&nbsp;<a href="{elpingo.POST_LINK}" class="forumtitle">{elpingo.TOPIC_TITLE}</a>
            <br  />
            <!-- END elpingo -->
        </div>
        <span class="corners-bottom"><span></span></span>
    </div>
</div>
<!-- IF PAGINATION -->
<div class="pagination">
    <!-- IF PAGE_NUMBER -->
    <!-- IF PAGINATION -->{TOTAL_TOPICS} &bull; <a href="#" onclick="jumpto(); return false;" title="{L_JUMP_TO_PAGE}">{PAGE_NUMBER}</a> &bull; <span>{PAGINATION}</span><!-- ELSE --> &bull; {PAGE_NUMBER}<!-- ENDIF -->
    <!-- ENDIF -->
</div>
<!-- ENDIF -->
<!-- INCLUDE jumpbox.html -->
<!-- INCLUDE overall_footer.html -->
Si tienes mas dudas puedes ponerlas en un nuevo tema, ya que ya resolvimos la duda principal de este tema. :ok:

Cerrado

Volver a “Foros de Soporte 3.0.x”