Page 1 sur 1
[réalisé] Script de récupération des sujets phpBB
Posté : sam. 10 mai 2025 22:07
par Max
J'aurais besoin d'un script PHP, qui génère les liens vers les derniers sujets (ceux qui ont les réponses les plus récentes) du forum.
Le script ou la fonction doit prendre en paramètres :
- le nombre de sujets à lister
- la liste des forums (numéros) au sein desquels il faut chercher (cela me permettra de faire une liste des sujets RP, et une autre pour les sujets HRP)
Me contacter par MP si besoin.
Merci !
Re: Script de récupération des sujets phpBB
Posté : dim. 11 mai 2025 10:59
par Eleven
Salut Max.
Voici un bout de code qui faut adapter :
Code : Tout sélectionner
<?php
// Paramètres de connexion
$host = 'localhost';
$dbname = 'nom_de_ta_base';
$user = 'utilisateur';
$pass = 'mot_de_passe';
// URL de base du forum
$base_url = 'https://tonsite.com/phpbb/';
// Paramètres GET
$limit = isset($_GET['limit']) ? (int)$_GET['limit'] : 10;
$forums = isset($_GET['forums']) ? explode(',', $_GET['forums']) : [];
// Sécurisation
$limit = max(1, min($limit, 100));
$forums = array_filter(array_map('intval', $forums));
if (empty($forums)) {
echo json_encode(['error' => 'Aucun ID de sous-forum fourni.']);
exit;
}
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$in_clause = implode(',', array_fill(0, count($forums), '?'));
$sql = "
SELECT
t.topic_id,
t.topic_title,
t.topic_time,
t.topic_last_post_time,
f.forum_name
FROM phpbb_topics t
JOIN phpbb_forums f ON t.forum_id = f.forum_id
WHERE t.forum_id IN ($in_clause)
AND t.topic_status <> 2
ORDER BY t.topic_last_post_time DESC
LIMIT ?
";
$stmt = $pdo->prepare($sql);
foreach ($forums as $i => $fid) {
$stmt->bindValue($i + 1, $fid, PDO::PARAM_INT);
}
$stmt->bindValue(count($forums) + 1, $limit, PDO::PARAM_INT);
$stmt->execute();
$topics = [];
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$topics[] = [
'id' => $row['topic_id'],
'title' => $row['topic_title'],
'forum' => $row['forum_name'],
'created' => date('Y-m-d H:i:s', $row['topic_time']),
'last_post' => date('Y-m-d H:i:s', $row['topic_last_post_time']),
'url' => $base_url . 'viewtopic.php?t=' . $row['topic_id']
];
}
header('Content-Type: application/json');
echo json_encode($topics, JSON_PRETTY_PRINT);
} catch (PDOException $e) {
echo json_encode(['error' => 'Erreur DB : ' . $e->getMessage()]);
}
Exemple d'appel du script :
Sortie JSON :
Résumé des champs JSON retournés
Code : Tout sélectionner
id : ID du sujet
title : Titre du sujet
forum : Nom du forum
created : Date de création du sujet
last_post : Date du dernier message
url : Lien direct vers le sujet
Re: Script de récupération des sujets phpBB
Posté : mar. 13 mai 2025 08:52
par Max
Merci Eleven !
Je me demandais si t'étais toujours actif, j'ai ma réponse : fidèle au poste

!
Re: [réalisé] Script de récupération des sujets phpBB
Posté : mar. 13 mai 2025 20:19
par Eleven
Je ne suis pas très "causant", mais je veille...