Ce code vous permet d'afficher les x derniers sujets de l'ensemble du forum. Vous pouvez choisir le nombre à afficher.
Code : Tout sélectionner
/**
* Extract last topics from forum
*
* @param int $limit return a certain number of topics
*
* @author Dakin Quelia
*/
function latest_topics_forum($limit)
{
global $cache, $user, $db, $template, $phpbb_root_path, $phpEx;
$topics = $cache->get('_topics');
if ($topics === false)
{
// SQL Query
$sql = 'SELECT forum_id, topic_id, topic_time, topic_title, topic_poster, topic_first_poster_name, topic_first_poster_colour
FROM ' . TOPICS_TABLE . ' WHERE topic_status <>' . ITEM_MOVED . '
ORDER BY topic_time DESC';
$result = $db->sql_query_limit($sql, $limit);
$topics = array();
while($data = $db->sql_fetchrow($result))
{
$topics[$data['topic_id']] = array(
'topic_id' => $data['topic_id'],
'topic_poster' => $data['topic_poster'],
'topic_title' => $data['topic_title'],
'topic_time' => $data['topic_time'],
'topic_first_poster_name' => $data['topic_first_poster_name'],
'topic_first_poster_colour' => $data['topic_first_poster_colour'],
);
}
$db->sql_freeresult($result);
// Cache for 1 hour
$cache->put('_topics', $topics, 3600);
}
foreach ($topics as $topic)
{
$template->assign_block_vars('topics', array(
'TOPIC_TITLE' => $topic['topic_title'],
'TOPIC_TIME' => $user->format_date($topic['topic_time'], 'd/m/Y'),
'TOPIC_POSTER' => get_username_string('full', $topic['topic_poster'], $topic['topic_first_poster_name'], $topic['topic_first_poster_colour']),
'U_TOPIC' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", 't=' . $topic['topic_id']),
)
);
}
}