[phpBB3] Fonction latest_topics_forum()

Vous trouverez ici des morceaux de codes qui peuvent être utiles à votre site.
Verrouillé
Avatar du membre
Dakin Quelia
Webmaster
Webmaster
Messages : 565
Enregistré le : ven. 27 nov. 2009 05:47
Localisation : Belgique
Contact :

[phpBB3] Fonction latest_topics_forum()

Message par Dakin Quelia »

» Fonction latest_topics_forum()

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']),
            )
        );
    }
}

Verrouillé

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 19 invités