Afficher les derniers sujets du forum dans une page web séparée

ibanson
Invité n'ayant pas de compte PHPfrance

03 mars 2008, 23:12

Salut tout le monde !

Je viens juste de m'inscrire, et, étant débutant, j'ai eu l'aide de quelqu'un de plus expérimenté que moi pour un script des affichages des derniers posts ... Cependant, j'aimerai ajouter en dessous de "plus de messages " les utilisateurs connectés dans leurs couleurs respectives ... Alors, j'ai le code pour afficher les posts, et d'un autre coté j'ai le code pour les couleurs, mais j'aimerai de l'aide pour fusionner les deux parties...

Enfin, si ce n'est pas trop abuser de votre temps, j'aimerai également qu'il soit indiqué derrière chaque titre le nombre de réponses au topic (par exemple :

Message posté à 10:13 par ibanson
les ampli et effets de Steve Vai... (3 réponses)

Vous voyez ?

alors comme je suis débutant en php et que j'essaie de comprendre, je vous envoie les différents codes sources pour que vous puissiez voir un peu ou ca en est pour le moment ... J'espère que ca en intéressera d'autres que moi !

Alors on commence avec le code pour afficher les x derniers messages :

Code : Tout sélectionner

<?php function getBrolLastPosts($itemMax, $titleMaxChar) { if (!defined("IN_PHPBB")) { define("IN_PHPBB", true); } $hiddenForums='59';//exemple, ne pas afficher les forums 2 8 ni 5 $phpbb_root_path = "forum/"; include_once ($phpbb_root_path . "config.php"); include_once ($phpbb_root_path . 'includes/constants.php'); $sql = 'SELECT t.topic_id, t.topic_title, t.topic_replies, t.topic_last_post_id, f.forum_id, f.forum_name, p.post_time, u.user_id, u.username'; $sql .=' FROM '.TOPICS_TABLE.' AS t, '.FORUMS_TABLE.' AS f, '.POSTS_TABLE.' AS p, '.USERS_TABLE.' AS u'; $sql .=' WHERE t.forum_id = f.forum_id'; $sql .=' AND t.topic_moved_id = 0 '; $sql .=' AND p.post_id = t.topic_last_post_id '; $sql .=' AND u.user_id = p.poster_id'; $sql .=' AND f.forum_id NOT IN('.$hiddenForums.') '; $sql .=' ORDER BY t.topic_last_post_id DESC LIMIT ' .$itemMax; $dbConnection=mysql_connect($dbhost, $dbuser, $dbpasswd) or die ("connexion impossible"); mysql_select_db ($dbname) or die ("impossible de sélectionner la db"); mysql_query("SET NAMES 'utf8'"); $result=mysql_query($sql); if(empty($result)) { $disp.='<p>Donn&eacute;es indisponibles</p>'; } else { while(($obj=@mysql_fetch_object($result))){ $title=$obj->topic_title; $authorDisp=($obj->username!='Anonymous')?$obj->username:'un invit&eacute;'; $disp.='Message post&eacute; &agrave; '.strftime('%H:%M',$obj->post_time).' par '; $disp.=($obj->username!='Anonymous')?$obj->username:'un invit&eacute; '; $disp.='<BR /> <a href=\''.$phpbb_root_path.'viewtopic.php?p='.$obj->topic_last_post_id.'#'.$obj->topic_last_post_id.'\' '; $disp.='title=\'Lire le message\'>'.substr($title,0,$titleMaxChar).'</a> <BR />'; } } if(isset($dbConnection)) { mysql_close($dbConnection); } return $disp.'<p><a href=\''.$phpbb_root_path.'\'>Voir plus de messages...</a></p>'; } echo getBrolLastPosts(30,90);//modifier ces valeurs : ici cela signifie les 20 derniers messages, et 40 caractères maximum ?>
ensuite le code pour afficher qui est en ligne avec leurs couleurs respectives :
que j'ai trouvé sur phpBB-fr.com et qui correspond a mes attentes .

Code : Tout sélectionner

<?php define('IN_PHPBB', TRUE); $phpbb_root_path = 'forum/'; $phpEx = substr(strrchr(__FILE__, '.'), 1); include($phpbb_root_path . 'common.' . $phpEx); $sql = 'SELECT u.username, u.username_clean, u.user_id, u.user_type, u.user_allow_viewonline, u.user_colour, s.session_ip, s.session_viewonline FROM ' . USERS_TABLE . ' u, ' . SESSIONS_TABLE . ' s WHERE s.session_time >= ' . (time() - (intval($config['load_online_time']) * 60)) . ((!$config['load_online_guests']) ? ' AND s.session_user_id <> ' . ANONYMOUS : '') . ' AND u.user_id = s.session_user_id ORDER BY u.username_clean ASC, s.session_ip ASC'; $result = $db->sql_query($sql); $online_userlist = $prev_user_id = ''; while ($row = $db->sql_fetchrow($result)) { if ($row['user_id'] != ANONYMOUS) { if ($row['user_id'] != $prev_user_id) { $url = ' '.get_username_string('no_profile', $row['user_id'], $row['username'], $row['user_colour']). ''; $online_userlist .= ($online_userlist != '') ? ', ' . $url : $url; } $prev_user_id = $row['user_id']; } $prev_session_ip = $row['session_ip']; } echo $online_userlist; ?>
Voila, d'avance merci pour ceux qui vondront me prêter main forte ! :)
Si ca peut vous aider, voici l'url de mon site : http://www.ibanson.com
Nous sommes à la recherche d'un développeur php/mysql également pour notre site ... Contactez moi pour plus d'informations !

ibanson.