Affichage :
Le laboratoire de Darathor Index du Forum

Le laboratoire de Darathor

Ressources diverses, principalement sur les fourms phpBB
[MOD] Détail forums (1.0)

Poster un nouveau sujet Répondre au sujet

Rechercher dans ce sujet :
Messages
Darathor Sexe : Masculin
Site Admin
Membre

Inscrit le : 02 Nov 2003
Messages : 1101
Localisation : Strasbourg
MessagePosté le : 19 Juin 2005 19:42
Masquer ce messageAfficher ce message
Répondre en citantAjouter à liste des messages à citerRetirer de la liste des messages à citer
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 -->

Revenir en haut Aller en bas
Hors ligne | Profil | MP | E-mail | Site web
  Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum