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.
Auteur : Darathor (darathor@free.fr)
Version : 1.0 (19/06/2005)
Compatibilité phpBB : 2.0.15
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 = array();
while( $row = $db->sql_fetchrow($result) )
{
$forum_data[] = $row;
}
$is_auth_ary = 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 si l'utilisateur est autorisé à voir ce forum
if ( $is_auth_ary[$row_forum['fid']]['auth_view'] )
{
$i++;
$forum_id = $row_forum['fid'];
$forum_name = $row_forum['forum'];
$nbposts = $row_forum['nbposts'];
$row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
$pname = urlencode($profiledata['username']);
$template->assign_block_vars('row_forum', array(
'ROW_COLOR' => '#' . $row_color,
'ROW_CLASS' => $row_class,
'INDICE' => $i,
'FORUM_NAME' => $forum_name,
'NB_POST' => $nbposts,
'U_VIEWFORUM' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id"),
'U_LIEN_POST' => append_sid("search.$phpEx?search_author=$pname&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" />
<!-- DEBUT MOD Détail forums -->
<table class="forumline" width="100%" cellspacing="1" cellpadding="3" border="0" align="center">
<tr>
<th class="thHead" colspan="2" width="80%" height="25" owrap="nowrap">{L_FORUM}</th>
<th class="thHead" width="20%" nowrap="nowrap">{L_TOTAL_POSTS}</th>
</tr>
<!-- BEGIN row_forum -->
<tr>
<td class="{row_forum.ROW_CLASS}" width="5%" align="center"><span class="gen">{row_forum.INDICE}</span></td>
<td class="{row_forum.ROW_CLASS}" width="75%"><span class="gen"><a href="{row_forum.U_VIEWFORUM}">{row_forum.FORUM_NAME}</a></span></td>
<td class="{row_forum.ROW_CLASS}" width="20%" align="center"><span class="gen"><a href="{row_forum.U_LIEN_POST}">{row_forum.NB_POST}</a></span></td>
</tr>
<!-- END row_forum -->
</table>
<!-- FIN MOD Détail forums -->