[Members_List] afficher le nombres ...

07.12.2005, 18:05 Afficher les posts de chaque inscrit dans la liste des membres

I. But



De façon à valoriser les gens qui participent le plus à la vie du forum, nous allons afficher la liste des membres en l'ordonnant par rapport au nombres de posts de chaque inscrit du plus gros posteurs au plus petit, la lanterne rouge :) . Remarquez que ca va aussi dans l'optique d'un site de flood ;) .

II. Explication



Nous allons réaliser un hack du module Members_List. Nous réaliserons ce hack de la façon la plus propre possible. Ainsi, si par hasard vous désinstaller pnforum, cela ne provoquera pas de bugs d'affichage sur la liste des membres.

III. Implémentation





III. 1. Ordonnancement des utilisateurs par rapport au nombres de posts



Tout d'abord, éditer le fichier module/Members_List/pnuserapi.php, ensuite, chercher
Code$sql = "SELECT $userscolumn[uid] FROM $pntable[users] ";
rajouter aprés
Code// mumuri : topflood.free.fr hack
if (pnModAvailable('pnForum'))
{ pnModDBInfoLoad('pnForum');;
$pnfuser = $pntable['pnforum_users'];
$pnfusercol = $pntable['pnforum_users_column'];

$sql .= " INNER JOIN $pnfuser ON $userscolumn[uid] = ".$pnfusercol['user_id']." " ;
}// mumuri : hack
Rechercher
Code$sort = "ORDER BY $userscolumn[$sortby] " . $sortorder;
remplacer par
Code// mumuri
if (pnModAvailable('pnForum'))
{
$sort =" ORDER BY ".$pnfusercol[user_posts]." DESC" ;
}else
{
$sort = "ORDER BY $userscolumn[$sortby] " . $sortorder; //sorty by .....
}

III. 2. Affichage du nombres de posts

Editez le fichier modules/pnforum/pnuserapi.phpAvant "?>", rajoutez
Code// mumuri hack : récupération du nombre de posts
function pnForum_userapi_getNbPosts($args)
{
extract($args);
pnModDBInfoLoad('pnForum');

$dbconn =& pnDBGetConn(true);
$pntable =& pnDBGetTables();

$pnfusercol = $pntable['pnforum_users_column'];
$pnfuser= $pntable['pnforum_users'];

$sql = " SELECT $pnfusercol[user_posts]
FROM $pnfuser
WHERE $pnfusercol[user_id] = $userid ";

$result =& $dbconn->Execute($sql);

// Check for an error with the database code, and if so set an appropriate
// error message and return
if ($dbconn->ErrorNo() != 0) {
pnSessionSetVar('errormsg', _GETFAILED);
return false;
}


// Obtain the number of items
list($numposts) = $result->fields;
return $numposts;
}
Ensuite, dans le fichier module/Members_List/pnuser.phpChercher
Codeif(!$user['url'] or $user['url']=="http://" or $user['url']=="http:///" ) {
$user['url'] = '';
}
Rajouter aprés
Code// mumuri hack : récupération du nombre de posts
$user['nbposts'] = pnModAPIFunc('pnForum',
'user',
'getNbPosts',
array('userid' => $userid['uid']));

// mumuri hack
Il ne reste plus qu'à afficher notre nombre de posts dans le template de Members_ListEditez module/Members_List/templates/memberslist_user_view.htmRechercher
Code<th class="thTop" ><!--[pnml name="_MEMBERSLISTREALNAME"]--></th>
Rajouter aprés
Code<!--[pnmodavailable mod="pnForum" assign="ispnforum"]-->

<!--[if $ispnforum]-->
<th class="thTop" ><!--[pnml name="_MEMBERSLISTNBPOSTS"]--></th>
<!--[/if]-->
Rechercher
Code<td class="row1c" ><span class="gen">
<!--[$users[users].name|pnvarprepfordisplay|default:"&nbsp;"]-->
</span></td>
Rajouter aprés
Code<!--[if $ispnforum]--><td class="row1c" ><span class="gen"><!--[$users[users].nbposts]--></td> <!--[/if]-->
Il ne reste plus qu'à rajouter la constante de langue dans le fichier user.php dans le dossier 'modules\Members_List\pnlang\fra'
Codedefine('_MEMBERSLISTNBPOSTS','Posts');


License GPL
License M1


That's all folk
mumuri forum.ashots.org
mumuri
mumuri
Messages : 13 307

  • Discussions similaires
  • Pas de message
  • astuces de jeux vidéos
  • dessin animé
  • forum
  • allo ciné
  • séries télé
  • avis livres
  • avis films
  • anime
  • smileys
  • bourse
Tous droits réservés © 2008 . Top flood Crédits des logiciels tiers.   - en partenariat avec flood.fr .