[News phpBB] Affichage sous forme d'archive

8 réponses - 4820 vues
Bien le bonjour! je suis nouveau ^^ et j'aimerais vous présenter votre script modifié qui sers à afficher les news de phpbb en apparence d'archives! EDIT : j'ai oublié de dire que c'était celui du joker, mais je l'ai modifié pour faire le système d'archives!
Voici le code : (ps : j'ai réglé le prob d'affichage des 5 news, les 5 news s'affichent ne vous en faites pas ^^)
**Code **
``<?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');
include_once($phpbb_root_path.'includes/constants.php');
$host = 'XXX';
$user = 'XXX';
$pass = 'XXX';
$bdd = 'XXX'; // votre base de donnée


@mysql_connect($host, $user, $pass);
@mysql_select_db("$bdd") or die('Impossible de se connecter');
$table_prefix = 'phpbb_';
$board_config = array();
$sql2 = 'SELECT * FROM '.$table_prefix.'config';
$req2 = mysql_query($sql2);
while ( $row = @mysql_fetch_array($req2) )
{
$board_config[$row['config_name']] = $row['config_value'];
}
@mysql_free_result($req2);
$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_avatar, u.user_avatar_type, u.user_allowavatar, 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);
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>

<title>j0k3r.n3t - Des news sur votre site grace à phpBB</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
<meta http-equiv="Content-Style-Type" content="text/css" />

<meta http-equiv="Content-Language" content="fr" />
<link rel="StyleSheet" type="text/css" href="style.css" />

</head>
<?php
//Initialisation de la variable "qui compte les news"
$j = 1;
while($data = @mysql_fetch_array($req))
{
//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'].'" />';
}


$poster_avatar = '';
if ( $data['user_avatar_type'] && $data['user_allowavatar'] )
{
switch( $data['user_avatar_type'] )
{
case USER_AVATAR_UPLOAD:
$poster_avatar = ( $board_config['allow_avatar_upload'] ) ? '<img src="' . $board_config['avatar_path'] . '/' . $data['user_avatar'] . '" alt="" border="0" />' : '';
break;
case USER_AVATAR_REMOTE:
$poster_avatar = ( $board_config['allow_avatar_remote'] ) ? '<img src="' . $data['user_avatar'] . '" alt="" border="0" />' : '';
break;
case USER_AVATAR_GALLERY:
$poster_avatar = ( $board_config['allow_avatar_local'] ) ? '<img src="' . $board_config['avatar_gallery_path'] . '/' . $data['user_avatar'] . '" alt="" border="0" />' : '';
break;
}
}


$message = preg_replace($orig, $repl, ' '.$message.' ');
$message = substr($message, 1, -1);

//les archives + quand la news à été postée
echo '<center><small><a href="'.$phpbb_root_path.'viewtopic.php?t=';
echo $data['topic_id'].'">'.$data['topic_title'].'</a> le '.date('d/m/y à H:i', $data['topic_time']).'</h3></center></small>';
//Si on atteinds 5 news, on arrete
if($j >= 5)
{
break;
}
$j++;

}
@mysql_free_result($req);
?>
</div>
</div>
</p>
</body>
</html>

``
Voilà! donc j'ai mit bien sûr le plus important en rouge!
Soyez pas trops méchants je suis new xD
On pourrait avoir un rendu ? :)
c'est pas bête je vais le mettre sur mon ftp! voila : [ici!](http://thid.ifrance.com/index8.php "Lien") attendez j'ai remarqué que le titre s'affiche 2 fois je corrige sa!
Edit : prob reglé! et les news sont celles de mon site : http://www.thid.fr.nf/
Voilà! donc sont reliées au forum de phpbb!
Encore un edit xD : j'utilise le CSS de mon site c'est normal si sa s'affiche en bleu ;)
Eh euh t'as fait quoi de plus que moi ... ?
J'ai pas dit que j'avais fait plus ! j'ai juste dit que je l'ai modifié, en faite c'est simple, le lien des commentaires donne le lien du sujet du forum, donc on remplace [0] commentaires par le titre de la news! et ajoute la date apres! ce qui nous donne un système d'archives!
Ah, d'ac ce que beaucoup veulent souvent faire :) Comme sur mon site un peu quoi !
Eh bien voilà ^^ pour tout ceux qui veulent le script de news phpbb de j0k3r_N0ir modifié par moi pour en créer un système d'archives c'est dans ce sujet :D
Allé un sticky alors :p

(8 résultats)


Catégories


Tags


Liens