Conectarse por FTP al servidor y editar el index.php (en la zona donde quieras que se muestren los últimos mensajes) con este código que he encontrado en esta propia página:
Código:
El código fuente final de nuestro index.php podría quedar de esta forma (podéis hasta copiar todo este código y guardarlo en index.php solo cambiando lo que he puesto en negrita).// phpBB :: MOSTRAR ULTIMOS 10 MENSAJES // :: :: $con=mysql_connect("TU BASE DE DATOS", USUARIO, PASSWORD); mysql_select_db("NOMBRE DE LA BASE DE DATOS",$con); // Cantidad de post a mostrar y prefijo de las tablas $ultimos = 10; $prefijo = "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); ?> <font face="verdana" size="2"> <a href="viewtopic.php?t=<?=$topic;?>" target="_blank"><? echo $mostrar_m["topic_title"]; ?></a><br> en <i><b><?=$forum_name;?></b></i></font><br> <? } // Cerramos conexión mysql_free_result($result_mensaje); mysql_close($con);
Código:
Esta parte es la generación en HTML del título del mensaje, y la categoría del foro de los últimos mensajes, la podéis modificar a vuestro antojo, cambiando el tipo de letra, el tamaño, y sobretodo, también elegir el directorio de vuestro foro si os da problemas al clicar, puesto que esta linea por defecto se presupone que tenéis el PHPBB3 en la raíz del servidor, ejemplo www.hola.com/(los ficheros del PHPBB), con lo que si tienes tu foro en una carpeta por ejemplo llamada "phpbb" tendrías que añadir "phpbb/" delante de "viewtopic.php"<?php // phpBB :: MOSTRAR ULTIMOS 10 MENSAJES // :: :: $con=mysql_connect("TU BASE DE DATOS", USUARIO, PASSWORD); mysql_select_db("NOMBRE DE LA BASE DE DATOS",$con); // Cantidad de post a mostrar y prefijo de las tablas $ultimos = 10; $prefijo = "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); ?> <font face="verdana" size="2"> <a href="viewtopic.php?t=<?=$topic;?>" target="_blank"><? echo $mostrar_m["topic_title"]; ?></a><br> en <i><b><?=$forum_name;?></b></i></font><br> <? } // Cerramos conexión mysql_free_result($result_mensaje); mysql_close($con); /** * * @package phpBB3 * @version $Id: index.php,v 1.176 2007/10/05 14:30:06 acydburn Exp $ * @copyright (c) 2005 phpBB Group * @license http://opensource.org/licenses/gpl-license.php GNU Public License * */ /** */ /** * @ignore */ 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/functions_display.' . $phpEx); // Start session management $user->session_begin(); $auth->acl($user->data); $user->setup('viewforum'); display_forums('', $config['load_moderators']); // Set some stats, get posts count from forums data if we... hum... retrieve all forums data $total_posts = $config['num_posts']; $total_topics = $config['num_topics']; $total_users = $config['num_users']; $l_total_user_s = ($total_users == 0) ? 'TOTAL_USERS_ZERO' : 'TOTAL_USERS_OTHER'; $l_total_post_s = ($total_posts == 0) ? 'TOTAL_POSTS_ZERO' : 'TOTAL_POSTS_OTHER'; $l_total_topic_s = ($total_topics == 0) ? 'TOTAL_TOPICS_ZERO' : 'TOTAL_TOPICS_OTHER'; // Grab group details for legend display if ($auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel')) { $sql = 'SELECT group_id, group_name, group_colour, group_type FROM ' . GROUPS_TABLE . ' WHERE group_legend = 1 ORDER BY group_name ASC'; } else { $sql = 'SELECT g.group_id, g.group_name, g.group_colour, g.group_type FROM ' . GROUPS_TABLE . ' g LEFT JOIN ' . USER_GROUP_TABLE . ' ug ON ( g.group_id = ug.group_id AND ug.user_id = ' . $user->data['user_id'] . ' AND ug.user_pending = 0 ) WHERE g.group_legend = 1 AND (g.group_type <> ' . GROUP_HIDDEN . ' OR ug.user_id = ' . $user->data['user_id'] . ') ORDER BY g.group_name ASC'; } $result = $db->sql_query($sql); $legend = ''; while ($row = $db->sql_fetchrow($result)) { $colour_text = ($row['group_colour']) ? ' style="color:#' . $row['group_colour'] . '"' : ''; if ($row['group_name'] == 'BOTS') { $legend .= (($legend != '') ? ', ' : '') . '<span' . $colour_text . '>' . $user->lang['G_BOTS'] . '</span>'; } else { $legend .= (($legend != '') ? ', ' : '') . '<a' . $colour_text . ' href="' . append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group&g=' . $row['group_id']) . '">' . (($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['group_name']] : $row['group_name']) . '</a>'; } } $db->sql_freeresult($result); // Generate birthday list if required ... $birthday_list = ''; if ($config['load_birthdays'] && $config['allow_birthdays']) { $now = getdate(time() + $user->timezone + $user->dst - date('Z')); $sql = 'SELECT user_id, username, user_colour, user_birthday FROM ' . USERS_TABLE . " WHERE user_birthday LIKE '" . $db->sql_escape(sprintf('%2d-%2d-', $now['mday'], $now['mon'])) . "%' AND user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ')'; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $birthday_list .= (($birthday_list != '') ? ', ' : '') . get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']); if ($age = (int) substr($row['user_birthday'], -4)) { $birthday_list .= ' (' . ($now['year'] - $age) . ')'; } } $db->sql_freeresult($result); } // Assign index specific vars $template->assign_vars(array( 'TOTAL_POSTS' => sprintf($user->lang[$l_total_post_s], $total_posts), 'TOTAL_TOPICS' => sprintf($user->lang[$l_total_topic_s], $total_topics), 'TOTAL_USERS' => sprintf($user->lang[$l_total_user_s], $total_users), 'NEWEST_USER' => sprintf($user->lang['NEWEST_USER'], get_username_string('full', $config['newest_user_id'], $config['newest_username'], $config['newest_user_colour'])), 'LEGEND' => $legend, 'BIRTHDAY_LIST' => $birthday_list, 'FORUM_IMG' => $user->img('forum_read', 'NO_NEW_POSTS'), 'FORUM_NEW_IMG' => $user->img('forum_unread', 'NEW_POSTS'), 'FORUM_LOCKED_IMG' => $user->img('forum_read_locked', 'NO_NEW_POSTS_LOCKED'), 'FORUM_NEW_LOCKED_IMG' => $user->img('forum_unread_locked', 'NO_NEW_POSTS_LOCKED'), 'S_LOGIN_ACTION' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=login'), 'S_DISPLAY_BIRTHDAY_LIST' => ($config['load_birthdays']) ? true : false, 'U_MARK_FORUMS' => ($user->data['is_registered'] || $config['load_anon_lastread']) ? append_sid("{$phpbb_root_path}index.$phpEx", 'mark=forums') : '', 'U_MCP' => ($auth->acl_get('m_') || $auth->acl_getf_global('m_')) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=main&mode=front', true, $user->session_id) : '') ); // Output page page_header($user->lang['INDEX']); $template->set_filenames(array( 'body' => 'index_body.html') ); page_footer(); ?>
Código:
Podéis ver un ejemplo de como queda el foro con el index.php modificado de esta forma en la web que estoy haciendo *** Ahora el problema reside en los acentos, en mi foro se utilizará bastante la palabra "barça", pero aun agregando esta palabra en las censuras y reemplazándola por "barcelona" el script de "últimos mensajes" sigue escribiendo "bar(símbolo raro)a" yo me pregunto... existe alguna forma posible para poder evitar que se produzca este problema? He leído algunos cosas sobre una función de carácteres ascii que he encontrado mysql_query("SET character_set_connection=utf8, character_set_results=latin1, character_set_client=binary"); pero si meto esto me da error. Tambien decir que proximamente intentaré mejorar el script este de últimos mensajes adaptando la parter HTML para que se integre en el foro de forma que los últimos mensajes se encuentren dentro de las tablas azules del foro con el fondo de color gris y lo publicaré cuando lo termine. (aunque si alguien tiene un código que haga algo similar directamente pegándolo al index.php agradecería si me lo pudiera mandar por e-mail a: *** Gracias. <font face="verdana" size="2"> <a href="viewtopic.php?t=<?=$topic;?>" target="_blank"><? echo $mostrar_m["topic_title"]; ?></a><br> en <i><b><?=$forum_name;?></b></i></font><br>