Afficher les titres des dernières discussions d'un forum fluxBB

Avoir les titres des derniers billets d'un forum fluxBB/punBB affichés sur une page du site, la page d'accueil par exemple se réalise très aisément.

Les tables fluxBB

Dans les tables, on veut récupérer le sujet de la discussion, l'auteur et la date de publication.

Contrairement à ce qui se passe avec phpBB, une seule table fournit toutes les informations nécessaires, c'est la table topics.

id
subject
posted
poster
       

id est l'identificateur du premier billet de la discussion, il sert à construire l'URL.
subject est le titre de la discussion.
posted est la date où elle a été ouverte.
poster est le nom du membre du forum qui l'a ouverte.

Définition de la requête

Le paramètre FROM sélectionne la tables topics. Le nom complet est construit en ajoutant le préfixe fournit par config.php.

Le paramètre SELECT définit les données qui seront retournées et affichées, ce sont dans l'ordre l'identificateur du topic, le sujet du billet, la date du billet, le nom du membre qui l'a posté.

Les billets sont classés par date, en ordre décroissant donc en commençant par les plus récents et en se limitant à un nombre donné.

SELECT id, subject, posted, poster 
FROM $top
ORDER BY posted DESC LIMIT $size";

La variable $size est un paramètre du script, c'est le nombre maximum de titres à afficher.

Une telle requête est rapide à exécuter et ne devrait pas ralentir l'affichage de la page.

Obtenir les paramètres d'accès à la base

Les paramètres de l'hôte, le nom de la base de donnée, l'utilisateur et le mot de passe sont récupérés dans le fichier config.php.

Pour ce faire, il suffit de définir le chemin du fichier de configuration, à la racine du forum, et d'inclure ce fichier dans notre script: les variables qu'il contient appartiendront alors au script...

Il est préférable de placer le script à la racine du site pour un accès simplifié aux sous-répertoires.

Comment on affiche les discussions

On a vu dans le tutoriel comment récupérer les données obtenues dans la base avec la fonction mysql_fetch_assoc.

On a dans notre exemple, inclu une feuille de style qui définit un cadre et quelques propriétés pour les données affichées. Ce n'est qu'un exemple et cela doit être adapté selon les besoins.

Pour la feuille de style incluse dans la page de démonstration, le script utilise la ligne suivante:

echo "<a href='$url'>$title</a> by 
<span class='cssuser'>$username</span>  
<span class='cssdate'>$date</span>\n";

Ajouter ou supprimer des span au besoin, et remplacer éventuellement les noms des descripteurs.

Comment utiliser le script

Le script est inclu dans la page où afficher les titres, et à l'endroit où on veut les afficher.

Il doit être configuré selon le site:

$forumdir = "faq/";    
$formatflag = false; 

Changer le nom du répertoire du forum si besoin, et activer l'option de conversion en true si le format de la page est différent de celui du forum (ISO).

Il est aussi possible de choisir le nombre de titres à afficher avec la dernière option de la fonction display:

display($db_host, $db_name , $db_username, $db_password , 10);  

Noter que ces variables en paramètres proviennent directement du fichier config.php inclu et sont utilisées telles quelles.

Le script complet et la démonstration

Voir aussi