Affichage :
Le laboratoire de Darathor Index du Forum

Le laboratoire de Darathor

Ressources diverses, principalement sur les fourms phpBB
[MOD] Detail forums (1.1 TEST - A)

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 : 06 Jan 2006 18:00
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 (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>

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