Darathor
Citation :
But : Affiche dans le profil publique de chaque membre la liste des forums où il a posté ainsi que le nombre de messages qu'il y a posté. Le lien figurant sur le nombre de posts correspondant à chaque forum renvoie sur la liste des messages postés par ce membre sur ce forum. Dans le cas où le mebre a posté dans des forums privés, ne s'affichent que les fourm que la personne regardant le profil a le droit de voir.
Prérequis : :
- [Sous-MOD] Extended search (1.1)
- [FIX] Recherche par user_id (TEST - A)
Auteur : Darathor (darathor@free.fr)
Version : 1.0 (02/01/2006)
Compatibilité phpBB : 2.0.19
Changements :
1.1 (02/01/2006) :
- correction du code HTML pour le rendre valide XHTML 1.1.
- application du FIX "Recherche par user_id".
Dans "lang_main.php" :
Code :
#
# Trouver
#
?>
#
# Ajouter avant
#
// DEBUT MOD Détail forums
$lang['DeFo_ForumPosted'] = 'Forums où %s a posté';
// FIM MOD Détail forums
Dans "include/usercp_viewprofile.php" :
Code :
#
# Trouver
#
$template->pparse('body');
#
# Ajouter avant
#
// DEBUT MOD Détail forums
// Détermination des forums que l'utilisateur est autorisé à voir.
$sql = "SELECT * FROM " . FORUMS_TABLE;
if(!($result = $db->sql_query($sql)))
{
message_die(GENERAL_ERROR, 'Could not query forums information', '', __LINE__, __FILE__, $sql);
}
$forum_data = $db->sql_fetchrowset($result);
$is_auth_aray = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata, $forum_data);
// Recherche des nombres de posts.
$user_id = $profiledata['user_id'];
$sql = "SELECT f.forum_id AS fid, f.forum_name AS forum, count(p.post_id) AS nbposts
FROM " . FORUMS_TABLE . " f, " . POSTS_TABLE . " p
WHERE f.forum_id = p.forum_id
AND p.poster_id = $user_id
GROUP BY f.forum_id
ORDER BY nbposts desc";
if (!($result = $db->sql_query($sql)))
{
message_die(GENERAL_ERROR, "Could not obtain Forum/Posts data for this user", '', __LINE__, __FILE__, $sql);
}
$i = 0;
while($row_forum = $db->sql_fetchrow($result))
{
// Ajout de la ligne seulement si l'utilisateur est autorisé à voir ce forum.
if($is_auth_aray[$row_forum['fid']]['auth_view'])
{
$i++;
$forum_id = $row_forum['fid'];
$row_color = (!($i % 2)) ? $theme['td_color1'] : $theme['td_color2'];
$row_class = (!($i % 2)) ? $theme['td_class1'] : $theme['td_class2'];
$template->assign_block_vars('row_forum', array(
'ROW_COLOR' => '#' . $row_color,
'ROW_CLASS' => $row_class,
'INDICE' => $i,
'FORUM_NAME' => $row_forum['forum'],
'NB_POST' => $row_forum['nbposts'],
'U_VIEWFORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"),
'U_LIEN_POST' => append_sid("search.$phpEx?user_id=" . $profiledata['user_id'] . "&forum_id=$forum_id"))
);
}
}
$template->assign_vars(array(
'L_FORUM' => sprintf($lang['DeFo_ForumPosted'], $profiledata['username']),
'L_DETAIL_MESSAGES' => $lang['Posts'])
);
// FIM MOD Détail forums
Dans "profile_view_body.tpl" :
Code :
#
# Trouver
#
<table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td align="right"><span class="nav"><br />{JUMPBOX}</span></td>
#
# Ajouter avant
#
<br class="gensmall" />
<table class="forumline gen" cellspacing="1" cellpadding="3" style="width:100%;">
<tr>
<th class="thHead" style="width:5%;"></th>
<th class="thHead" style="width:75%;">{L_FORUM}</th>
<th class="thHead" style="width:20%;">{L_TOTAL_POSTS}</th>
</tr>
<!-- BEGIN row_forum -->
<tr>
<td class="{row_forum.ROW_CLASS}" style="text-align:center;">{row_forum.INDICE}</td>
<td class="{row_forum.ROW_CLASS}"><a href="{row_forum.U_VIEWFORUM}">{row_forum.FORUM_NAME}</a></td>
<td class="{row_forum.ROW_CLASS}" style="text-align:center;"><a href="{row_forum.U_LIEN_POST}">{row_forum.NB_POST}</a></td>
</tr>
<!-- END row_forum -->
</table>