Fab23 Posté(e) le 27 mars 2006 Partager Posté(e) le 27 mars 2006 Salut à tous! Est-ce que qqun connait un script qui permet d'afficher sur par exemple la page d'accueil de son site, les derniers topic d'une catégorie du forum PHPBB (par exemple une catégorie "news", pour mon cas... comme "programmation" sur ce forum) ? Je m'explique, je suis en train de créer moi-même un "module" de news en RSS 2.0, mais en attendant j'aimerais que moi et mes newsers puissent publier des news en attendant que je finisse le module... à la façon des forums gratuits de chez http://www.forumactif.com Car sur le web je n'ai trouvé que des scripts pour afficher les 10 ou 15 derniers topics mais du forum ENTIER... C'est assez urgent, merci d'avance... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fab23 Posté(e) le 19 avril 2006 Auteur Partager Posté(e) le 19 avril 2006 Up! Personne ne peut m'aider? Lien vers le commentaire Partager sur d’autres sites More sharing options...
EraTisAtoR Posté(e) le 19 avril 2006 Partager Posté(e) le 19 avril 2006 J'ai bien peur qu'il ne te faille le réalisel r toi-même... Etudie la structure des tables de ton forum pour en déduire la requête qui va te permettre cela, avec quelques connaissances en SQL ca doit pas être bien compliqué... Il doit y avoir une table qui contient tous les articles avec un champ qui contient un code de sous-forum ou de catégorie. Tu indiques dans ta clause WHERE le code du sous forum, tu tries les résultats par date de parution par ordre décroissant et tu utilises la clause LIMIT afin de n'avoir qu'un certain nombre de résultats... J'ai pas trop le temps pour le moment mais ce week end je pourrai jeter un oeil la dessus, ca me parait pas insurmontable... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fab23 Posté(e) le 20 avril 2006 Auteur Partager Posté(e) le 20 avril 2006 Merci c'est gentil à toi! Car rien que pour la mettre en symbiose la zone membre du site avec les nom d'utilisateurs du forum (avec les varables de session etc...), j'ai pété les plombs! Lien vers le commentaire Partager sur d’autres sites More sharing options...
EraTisAtoR Posté(e) le 21 avril 2006 Partager Posté(e) le 21 avril 2006 Salut! Voici un petit script qui te permettra d'afficher les 5 derniers topics d'un forum donné, que tu auras choisi avec la liste déroulante qui contient les noms de tous les forums. Je considère que le topic le plus récent est celui ou l'id du dernier post est le plus grand (les id de posts sont auto-incrémentés donc le plus récent a l'id le + élevé). Dans l'absolu, cela n'est pas vrai puisque si l'on édite un post, l'id du post édité ne change pas mais le post sera plus récent que les posts postés entre le moment ou l'on a soumis le post et celui ou l'on aura édité le post, bien que ceux-ci aient des id de post plus élevés). C'est un choix personnel, libre à toi de le modifier. Je met en ligne sur mon espace free un forum avec quelques messages test, libre à toi d'ajouter des posts et de vérifier que cela fonctionne. L'adresse est http://eratisator.free.fr/forum. Le script est accessible sur http://eratisator.free.fr/test.php. Et voici le code du script... <?php // Sélection de l'ensemble des forums et création d'une liste déroulante avec bouton de validation $sql = 'SELECT forum_name, forum_id FROM phpbb_forums ORDER BY 1 ASC'; $link = mysql_connect('localhost', 'root', ''); mysql_select_db('phpbb', $link); $result = mysql_query($sql, $link); mysql_close($link); echo '<form method="post" action="http://localhost/test.php">'; echo '<select name="liste">'; while($row = mysql_fetch_assoc($result)) { echo '<option value="' . $row['forum_id'] . '">' . $row['forum_name'] . '</option>'; } echo '</select>'; echo '<br>'; echo '<input type="submit" value="Afficher">'; echo '</form>'; if($_POST['liste']) { // Affichage des 5 derniers posts du forum sélectionné $sql = 'SELECT topic_title, topic_id FROM phpbb_topics WHERE forum_id = ' . $_POST['liste'] . ' ORDER BY topic_last_post_id DESC LIMIT 0,5'; $link = mysql_connect('localhost', 'root', ''); mysql_select_db('phpbb', $link); $result = mysql_query($sql, $link); mysql_close($link); echo '<table>'; while($row = mysql_fetch_assoc($result)) { echo '<tr><td><a href="http://localhost/viewtopic.php?t=' . $row['topic_id'] . '">' . $row['topic_title'] . '</a></td></tr>'; } echo '</table>'; } ?> N'hésite pas à me faire part de tes remarques ou questions supplémentaires... En esperant que ceci t'aie aidé... Bonne continuation. Mathieu Lien vers le commentaire Partager sur d’autres sites More sharing options...
cb_golden Posté(e) le 23 avril 2006 Partager Posté(e) le 23 avril 2006 Bon je te modif un peu un script, sinon, si tu veux faire propre, télécharge le EZportal sur phpbb.com, tu as l'option de block avec la liste des derniers topics. Biensur celle-ci fonctionne avec les droits ... J'ai pas test ma modif mais elle doit correcte... A l'origine, c'est un block du portal EZportal... Tu peux voir ce script sur le forum www.esaip.com ou www.cb-frag.com Bon développement # #-----[ OPEN ]------------------------------------------------------- # index.php ou ta page d'index du forum ... Ajoute au début : // Number of Recent Topics (not Forum ID) $CFG['number_recent_topics'] = '10'; // Exceptional Forums for Recent Topics, eg. '2,4,10' (note: my Recent Topics script has its own permission checking, so you can leave this variable blank) $CFG['exceptional_forums'] = ''; // // Recent Topics // $sql = "SELECT * FROM ". FORUMS_TABLE . " ORDER BY forum_id"; if (!$result = $db->sql_query($sql)) { message_die(GENERAL_ERROR, 'Could not query forums information', '', __LINE__, __FILE__, $sql); } $forum_data = array(); while( $row = $db->sql_fetchrow($result) ) { $forum_data[] = $row; } $is_auth_ary = array(); $is_auth_ary = auth(AUTH_ALL, AUTH_LIST_ALL, $userdata, $forum_data); if( $CFG['exceptional_forums'] == '' ) { $except_forum_id = '\'start\''; } else { $except_forum_id = $CFG['exceptional_forums']; } for ($i = 0; $i < count($forum_data); $i++) { if ((!$is_auth_ary[$forum_data[$i]['forum_id']]['auth_read']) or (!$is_auth_ary[$forum_data[$i]['forum_id']]['auth_view'])) { if ($except_forum_id == '\'start\'') { $except_forum_id = $forum_data[$i]['forum_id']; } else { $except_forum_id .= ',' . $forum_data[$i]['forum_id']; } } } $sql = "SELECT t.topic_id, t.topic_title, t.topic_last_post_id, t.forum_id, p.post_id, p.poster_id, p.post_time, u.user_id, u.username FROM " . TOPICS_TABLE . " AS t, " . POSTS_TABLE . " AS p, " . USERS_TABLE . " AS u WHERE t.forum_id NOT IN (" . $except_forum_id . ") AND t.topic_status <> 2 AND p.post_id = t.topic_last_post_id AND p.poster_id = u.user_id ORDER BY p.post_id DESC LIMIT " . $CFG['number_recent_topics']; if (!$result = $db->sql_query($sql)) { message_die(GENERAL_ERROR, 'Could not query recent topics information', '', __LINE__, __FILE__, $sql); } $number_recent_topics = $db->sql_numrows($result); $recent_topic_row = array(); while ($row = $db->sql_fetchrow($result)) { $recent_topic_row[] = $row; } for ($i = 0; $i < $number_recent_topics; $i++) { $template->assign_block_vars('recent_topic_row', array( 'U_TITLE' => append_sid("viewtopic.$phpEx?" . POST_POST_URL . '=' . $recent_topic_row[$i]['post_id']) . '#' .$recent_topic_row[$i]['post_id'], 'L_TITLE' => $recent_topic_row[$i]['topic_title'], 'U_POSTER' => append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $recent_topic_row[$i]['user_id']), 'S_POSTER' => $recent_topic_row[$i]['username'], 'S_POSTTIME' => create_date($board_config['default_dateformat'], $recent_topic_row[$i]['post_time'], $board_config['board_timezone']) ) ); } // // END - Recent Topics // // Recent Topics 'L_RECENT_TOPICS' => $lang['Recent_topics'], # #-----[ OPEN ]------------------------------------------------------- # language/lang_english/lang_main.php ou language/lang_french/lang_main.php # #-----[ A LA FIN AJOUTE ]---------------------------------------- # $lang['Recent_topics'] = 'Recent topics'; // Recent Topics # #-----[ OPEN ]------------------------------------------------------- # templates/subSilver/portal_body.tpl ou templates/TON_NOM_DE_THEME/index_body.tpl # #-----[ Ajoute la ou tu veux mettre la liste ]--------------------------------------------- # # # Version avec effet <table width="100%" cellpadding="2" cellspacing="1" border="0" class="forumline"> <tr> <td class="catHead" height="25"><span class="genmed"><b>{L_RECENT_TOPICS}</b></span></td> </tr> <tr> <td class="row1" align="left"><span class="gensmall"> <marquee id="recent_topics" behavior="scroll" direction="up" height="200" scrolldelay="100" scrollamount="2"> <!-- BEGIN recent_topic_row --> » <a href="{recent_topic_row.U_TITLE}" onMouseOver="document.all.recent_topics.stop()" onMouseOut="document.all.recent_topics.start()">{recent_topic_row.L_TITLE}</a><br /> by <a href="{recent_topic_row.U_POSTER}" onMouseOver="document.all.recent_topics.stop()" onMouseOut="document.all.recent_topics.start()">{recent_topic_row.S_POSTER}</a> on {recent_topic_row.S_POSTTIME}<br /><br /> <!-- END recent_topic_row --> </marquee> </span></td> </tr> </table> <br /> # # Classical Version #-----[ OR ]------------------ # <table width="100%" cellpadding="2" cellspacing="1" border="0" class="forumline"> <tr> <td class="catHead" height="25"><span class="genmed"><b>{L_RECENT_TOPICS}</b></span></td> </tr> <tr> <td class="row1" align="left"><span class="gensmall"> <!-- BEGIN recent_topic_row --> » <a href="{recent_topic_row.U_TITLE}">{recent_topic_row.L_TITLE}</a><br /> by <a href="{recent_topic_row.U_POSTER}">{recent_topic_row.S_POSTER}</a> on {recent_topic_row.S_POSTTIME}<br /><br /> <!-- END recent_topic_row --> </span></td> </tr> </table> <br /> # #-----[ SAVE/UPLOAD ALL FILES ]------------------------------------------ # Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fab23 Posté(e) le 24 avril 2006 Auteur Partager Posté(e) le 24 avril 2006 Un GRAND merci à vous 2 je vais tester ça ces prochains jours et je vais vous tenir au courant! Merci encore ! Les INpactiens champions du monde Lien vers le commentaire Partager sur d’autres sites More sharing options...
-SKy- Posté(e) le 25 avril 2006 Partager Posté(e) le 25 avril 2006 bah pour les forum PHPBB il faut allez sur phpbb-fr.com ici tu trouvera tout ce que tu veux en matiere de MOD!! ta mis ta version a jour au faites?? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fab23 Posté(e) le 26 avril 2006 Auteur Partager Posté(e) le 26 avril 2006 bah pour les forum PHPBB il faut allez sur phpbb-fr.com ici tu trouvera tout ce que tu veux en matiere de MOD!! ta mis ta version a jour au faites?? Justement j'ai pas trouvé... et oui mon forum est à jour... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.