Les archives de FluxBB.fr
Vous n'êtes pas identifié(e).
Pages : 1
En m'inspirant de quelques portions de code que j'ai pu trouver ici, j'ai commencer à créer une page qui transforme tous les messages d'un forum en news.
<?php
define('PUN_ROOT', './');
require PUN_ROOT.'include/common.php';
// Affiche l'annonce de l'admin si le forum est fermé
if ($pun_user['g_read_board'] == '0')
message($lang_common['No view']);
// Définit le titre de votre page qui est par défaut : "Nom du forum / Ce que vous voulez"
$page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / Titre du mod a remplacer';
define('PUN_ALLOW_INDEX', 1); // Inclut la balise meta autorisant les moteurs de recherche à indexer ce fichier.
$forum_id = 2; // id du forum dont vous voulez afficher les news
$nb_post = 10; // nombre de news à afficher
?>
<div style="padding:5px;margin:0;">
<?php
$result = $db->query('SELECT message FROM '.$db->prefix.'posts ORDER BY posted DESC') or error('Impossible de lister les news2', __FILE__, __LINE__, $db->error());
$result2 = $db->query('SELECT id, subject, num_replies, posted FROM '.$db->prefix.'topics ORDER BY posted DESC') or error('Impossible de lister les news', __FILE__, __LINE__, $db->error());
while ($data_posts_infos2 = $db->fetch_assoc($result))
{
while ($data_posts_infos = $db->fetch_assoc($result2))
{
echo '<a href="viewtopic.php?id='.$data_posts_infos['id'].'">'.$data_posts_infos['subject'].'</a> - '.format_time($data_posts_infos['posted']).'<br />';
echo nl2br('<div>'.$data_posts_infos2['message'].'</div>');
}}
?>
</div>Ce qui donne pour l'instant : http://billytalent.fr/forum/news.php
Comme vous pouvez le vori le message affiché est deux fois le même, je ne trouve pas le problème avec mon petit niveau php...
Merci d'avance si vous avez une idée !
Hors ligne
Il y a ce plugin qui fait la même chose : http://www.punbb.fr/mods/mod.php?id=4
Avant de poser une question, avez-vous consulté la FAQ ou fait une recherche ?
Pas de support si pas d'adresse de forum !
Hors ligne
Celui là créé un fichier .html lorsque l'on appuie dans l'admin sur générer les news, moi je veux vraiment que ce soit automatique.
Hors ligne
A moins qu'il ait une fonction dynamique?
Hors ligne
Puntal en a une il me semble.
:canon: Mangafan : Mettez un chat dans votre processeur ! 
Hors ligne
Oui j'ai vu ça mais je n'ai pas réussi à correctement l'extraire..
Vous ne voyez pas quelle serait l'erreur de mon code ? Car la base y est..
Dernière modification par justme (11-10-2006 15:53:20)
Hors ligne
$result correspond aux posts de ta base de donnée
$result2 correspond aux topics de ta base de donnée
La première boucle (while ($data_posts_infos2...) va lister tes posts les 1 à la suite des autres tant qu'il y en a.
Mais, tu as une boucle imbriqué (while($data_posts_infos..)) qui elle liste tes topics tant qu'il y en a, et c'est ca qui te fait foiré ce que tu veux faire
Je vais essayer de l'expliquer, mais j'sais pas si je vais réussir à le dire correctement 
- On rentre dans le premier while. Le premier post est listé (pas encore affiché, il est juste dans la variable $data_posts_infos2).
-- On rentre dans le deuxième while, le premier topics est listé. On affiche ce topic avec le post précédement listé.
-- On se trouve toujours dans le deuxième while (car ton forum possède 2 topics, et que ce while doit listé tout les topics), ben on recommence ce qu'il y a dans ce 2ème while, en changeant juste le sujet, mais on garde toujours le même post.
-- Fin du 2ème while, car plus de topics à listé
- On se retrouve dans le 1er while, il reste encore un post à listé
-- Le 2ème while ne possède plus rien à faire (car déjà fait le tour précédent), donc il n'affiche pas le 2ème post
- Fin du 1er while, car plus de posts à listé
Voila ce que fait ton script. Mais en fait, ce sont tes 2 requêtes qu'il faut que tu fusionnes en 1 seul pour que ton script fonctionne correctement. (il ne resterait alors plus qu'1 boucle while, donc plus de problème)
Faut que tu fusionnes la requête avec un INNER JOIN (jointure naturel) 
Hors ligne
Je pense avoir à peu près compris, je vais faire quelques tests pour j'espère pouvoir créer un mod
.
Merci.
Hors ligne
Je pense avoir à peu près compris, je vais faire quelques tests pour j'espère pouvoir créer un mod
.
Merci.
Une mod !
Avant de poser une question, avez-vous consulté la FAQ ou fait une recherche ?
Pas de support si pas d'adresse de forum !
Hors ligne
déésooollééé (a).
Hors ligne
CA MARCHE !
Merci pour ton aide Lyconide, ce n'est pas comme si c'était la première fois que tu m'aidais donc vraiment MERCI !
<?php
define('PUN_ROOT', './');
require PUN_ROOT.'include/common.php';
// Affiche l'annonce de l'admin si le forum est fermé
if ($pun_user['g_read_board'] == '0')
message($lang_common['No view']);
// Définit le titre de votre page qui est par défaut : "Nom du forum / Ce que vous voulez"
$page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / Titre du mod a remplacer';
define('PUN_ALLOW_INDEX', 1); // Inclut la balise meta autorisant les moteurs de recherche à indexer ce fichier.
$forum_id = 2; // id du forum dont vous voulez afficher les news
$nb_post = 10; // nombre de news à afficher
?>
<div style="padding:5px;margin:0;">
<?php
$result = $db->query('SELECT pun_posts.message, pun_topics.id, pun_topics.subject, pun_topics.num_replies, pun_topics.posted FROM pun_posts INNER JOIN pun_topics ON pun_posts.topic_id = pun_topics.id') or error('Impossible de lister les news2', __FILE__, __LINE__, $db->error());
while ($data_posts_infos = $db->fetch_assoc($result))
{
echo '<a href="viewtopic.php?id='.$data_posts_infos['id'].'">'.$data_posts_infos['subject'].'</a> - '.format_time($data_posts_infos['posted']).'<br />';
echo nl2br('<div>'.$data_posts_infos['message'].'</div>');
}
?>
</div>Je vais faire un truc classe et valide xhtml w3c avant de le mettre entant que mod.
Hors ligne
Il manque le "limit $nb_post" dans ta requete 
J'avais fait un script sympa, bcp + avancé, avec gestion du nombre de commentaires et sur mon site on peut aussi savoir si la news a été lue, s'il y a de nouveaux commentaires...
Hors ligne
Par rapport à ton script j'ai une question, il est marqué qu'on a besoin du script mark all topic as read mais dans les novuelles versions de punbb on peut le faire directement...
EDIT : J'avais pas vu ce qu'il faisait exactement désolé..
Dernière modification par justme (13-10-2006 20:38:19)
Hors ligne
Il manque le "limit $nb_post" dans ta requete
J'avais fait un script sympa, bcp + avancé, avec gestion du nombre de commentaires et sur mon site on peut aussi savoir si la news a été lue, s'il y a de nouveaux commentaires...
Petite question mis à par le limit du nombre de post, comment faire pour qu'il affiche seulement le premier post et non toutes les réponses?
EDIT : c'est bon j'ai réussi
.
Dernière modification par justme (12-11-2006 21:29:43)
Hors ligne
Pages : 1