En Mars 2005...Beaucoup de personnes cherchent à lier les commentaires de leur news avec leur forum (phpBB) pour faire vivre un peu plus leur forum et aussi pour le côté pratique.
| SQL: |
ALTER TABLE phpbb_forums ADD forum_news TINYINT(1) NULL DEFAULT '0' |
| php: |
$host = 'localhost';
$user = 'root'; $pass = ''; $bdd = 'phpbb'; // votre base de donnée @mysql_connect($host, $user, $pass); @mysql_select_db($bdd) or die('Impossible de se connecter'); $table_prefix = 'phpbb_'; $sql = "SELECT t.topic_id, t.forum_id, t.topic_title, t.topic_time, t.topic_replies, t.topic_last_post_id, t.topic_views, t.topic_vote, u.username, u.user_id, u.user_rank, u.user_sig, u.user_sig_bbcode_uid, u.user_allowsmile, p.*, pt.post_text, pt.post_subject, pt.bbcode_uid FROM " . $table_prefix. "forums f, " . $table_prefix. "topics t, " . $table_prefix. "posts p, " . $table_prefix. "users u, " . $table_prefix. "posts_text pt WHERE f.forum_news = '" . TRUE . "' AND t.forum_id = f.forum_id AND p.topic_id = t.topic_id AND p.post_id = t.topic_first_post_id AND pt.post_id = p.post_id AND u.user_id = p.poster_id AND t.topic_type = '0' ORDER BY topic_time DESC"; $req = mysql_query($sql); |
| php: |
while($data = mysql_fetch_array($req))
{ //Affichage du titre echo '<h2>'.$data['topic_title'].'</h2>'; //Affichage du contenu de la news echo '<p>'.$data['post_text'].'</p>'; } |
| php: |
//Initialisation de la variable "qui compte les news"
$j = 1; while($data = @mysql_fetch_array($req)) { //Affichage du titre echo '<h2>'.$data['topic_title'].'</h2>'; //Affichage du contenu de la news echo '<p>'.$data['post_text'].'</p>'; //Si on atteints 5 news, on arrête if($j >= 5) { break; } $j++; } @mysql_free_result($req); |
| php: |
//Initialisation de la variable "qui compte les news"
$j = 1; while($data = @mysql_fetch_array($req)) { //Affichage du titre echo '<h2>'.$data['topic_title'].'</h2>'; //Affichage du contenu de la news echo '<p>'.$data['post_text'].'</p>'; //Affichage de l'auteur echo '<h3>Poster par <a href="'.$phpbb_root_path; echo 'profile.php?mode=viewprofile&u='.$data['user_id'].'">'.$data['username'].'</a>'; //De l'heure echo ' le '.date('d/m/y à H:i', $data['topic_time']).' - '; //Des commentaires echo '<a href="'.$phpbb_root_path.'viewtopic.php?t='; echo $data['topic_id'].'">['.$data['topic_replies'].'] commentaire(s)</a></h3>'; //Si on atteints 5 news, on arrête if($j >= 5) { break; } $j++; } @mysql_free_result($req); |
| php: |
define('IN_PHPBB', true);
$phpbb_root_path = 'forum/'; $theme = 'subSilver'; include_once($phpbb_root_path.'includes/template.php'); include($phpbb_root_path.'includes/functions.php'); $template = new Template($phpbb_root_path.'templates/'.$theme); include_once($phpbb_root_path.'includes/bbcode.php'); |
| php: |
//Initialisation de la variable "qui compte les news"
$j = 1; while($data = @mysql_fetch_array($req)) { //Affichage du titre echo '<h2>'.$data['topic_title'].'</h2>'; //On parse la news pour y interprété le BBcode $message = bbencode_second_pass($data['post_text'], $data['bbcode_uid']); $message = str_replace("\n\r", "\n", $message); $message = str_replace("\n", "<br />\n", $message); //Affichage du contenu de la news echo '<p>'.$message.'</p>'; //Affichage de l'auteur echo '<h3>Poster par <a href="'.$phpbb_root_path; echo 'profile.php?mode=viewprofile&u='.$data['user_id'].'">'.$data['username'].'</a>'; //De l'heure echo ' le '.date('d/m/y à H:i', $data['topic_time']).' - '; //Des commentaires echo '<a href="'.$phpbb_root_path.'viewtopic.php?t='; echo $data['topic_id'].'">['.$data['topic_replies'].'] commentaire(s)</a></h3>'; //Si on atteints 5 news, on arrête if($j >= 5) { break; } $j++; } @mysql_free_result($req); |
| php: |
//Initialisation de la variable "qui compte les news"
$j = 1; while($data = @mysql_fetch_array($req)) { //Affichage du titre echo '<h2>'.$data['topic_title'].'</h2>'; //On parse la news pour y interprété le BBcode $message = bbencode_second_pass($data['post_text'], $data['bbcode_uid']); $message = str_replace("\n\r", "\n", $message); $message = str_replace("\n", "<br />\n", $message); //On s'occupe des smileys $req_smilies = mysql_query('SELECT smilies_id, code, smile_url, emoticon FROM '.$table_prefix.'smilies'); $k = 0; while($data_smilies = mysql_fetch_array($req_smilies)) { $smilies[$k]['code'] = $data_smilies['code']; $smilies[$k]['smile_url'] = $data_smilies['smile_url']; $smilies[$k]['emoticon'] = $data_smilies['emoticon']; $k ++; } if (count($smilies)) { usort($smilies, 'smiley_sort'); } for ($i = 0; $i < count($smilies); $i++) { $orig[] = "/(?<=.\W|\W.|^\W)".phpbb_preg_quote($smilies[$i]['code'], "/")."(?=.\W|\W.|\W$)/"; $repl[] = '<img src="'.$phpbb_root_path.'images/smiles/'.$smilies[$i]['smile_url'].'" alt="'.$smilies[$i]['emoticon'].'" />'; } $message = preg_replace($orig, $repl, ' '.$message.' '); $message = substr($message, 1, -1); //Affichage du contenu de la news echo '<p>'.$message.'</p>'; //Affichage de l'auteur echo '<h3>Poster par <a href="'.$phpbb_root_path; echo 'profile.php?mode=viewprofile&u='.$data['user_id'].'">'.$data['username'].'</a>'; //De l'heure echo ' le '.date('d/m/y à H:i', $data['topic_time']).' - '; //Des commentaires echo '<a href="'.$phpbb_root_path.'viewtopic.php?t='; echo $data['topic_id'].'">['.$data['topic_replies'].'] commentaire(s)</a></h3>'; //Si on atteints 5 news, on arrête if($j >= 5) { break; } $j++; } @mysql_free_result($req); |