Seite 1 von 2

[große Grafik] Top10user-MOD mit Mitgliederliste kombinieren

Verfasst: 24.05.2005 20:05
von smart
Liebe Leute,
habe den Top10user-MOD installiert (okay, "installiert" ist vielleicht zu viel gesagt - war ja keine besondere Leistung von mir... :lol:). Jetzt würde ich aber gerne exakt die Auflistung (2), wie sie auf der Top10-Seite ist, vor die normale Mitgliederliste (4) setzen. Und das mit einer kleinen Überschrift für die Top-10-User (1) und die normale Userliste (3).


[Grafik entfernt]

Habt ihr eine Idee, wie ich das anstelle?

Verfasst: 25.05.2005 14:42
von smart
Haben sich jetzt alle von der großen Grafik abschrecken lassen, oder gibt es wirklich keinen, der einen Tipp hat? Muss doch für einen Experten ein Kinderspiel sein - ärgerlich nurn dass ich keiner bin. :cry:

Verfasst: 26.05.2005 19:33
von smart
*schieb*

Verfasst: 26.05.2005 21:07
von punkface
Also dann mal los...

memberlist.php

suchen

Code: Alles auswählen

$mode_types_text = array($lang['Sort_Joined'], $lang['Sort_Username'], $lang['Sort_Location'], $lang['Sort_Posts'], $lang['Sort_Email'],  $lang['Sort_Website'], $lang['Sort_Top_Ten']);
$mode_types = array('joindate', 'username', 'location', 'posts', 'email', 'website', 'topten');
ersetzten mit

Code: Alles auswählen

$mode_types_text = array($lang['Sort_Joined'], $lang['Sort_Username'], $lang['Sort_Location'], $lang['Sort_Posts'], $lang['Sort_Email'],  $lang['Sort_Website']);
$mode_types = array('joindate', 'username', 'location', 'posts', 'email', 'website');
suchen

Code: Alles auswählen

	'L_PM' => $lang['Private_Message'],
danach einfügen

Code: Alles auswählen

  'L_TOPTEN' => $lang['Sort_Top_Ten'],
suchen

Code: Alles auswählen

  case 'topten':
		$order_by = "user_posts $sort_order LIMIT 10";
		break;
Das kannst du jetzt einfach löschen oder mit /* und */ auskommentieren.

suchen

Code: Alles auswählen

$sql = "SELECT username, user_id, user_viewemail, user_posts, user_regdate, user_from, user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_avatar, user_avatar_type, user_allowavatar 
	FROM " . USERS_TABLE . "
	WHERE user_id <> " . ANONYMOUS . "
	ORDER BY $order_by";
if( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not query users', '', __LINE__, __FILE__, $sql);
}
ersetzten mit

Code: Alles auswählen

$schleife = 'topten';
$weiter = true;
while($weiter)
{
  if($schleife == 'topten')
  {
    $sql = "SELECT username, user_id, user_viewemail, user_posts, user_regdate, user_from, user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_avatar, user_avatar_type, user_allowavatar 
    	FROM " . USERS_TABLE . "
    	WHERE user_id <> " . ANONYMOUS . "
    	ORDER BY user_posts DESC LIMIT 10";
    if( !($result = $db->sql_query($sql)) )
    {
    	message_die(GENERAL_ERROR, 'Could not query users (topten)', '', __LINE__, __FILE__, $sql);
    }
  }
  else
  {
    $sql = "SELECT username, user_id, user_viewemail, user_posts, user_regdate, user_from, user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_avatar, user_avatar_type, user_allowavatar 
    	FROM " . USERS_TABLE . "
    	WHERE user_id <> " . ANONYMOUS . "
    	ORDER BY $order_by";
    if( !($result = $db->sql_query($sql)) )
    {
    	message_die(GENERAL_ERROR, 'Could not query users', '', __LINE__, __FILE__, $sql);
    }
  }
suchen

Code: Alles auswählen

    $template->assign_block_vars('memberrow', array(
ersetzten mit

Code: Alles auswählen

    $template->assign_block_vars($schleife, array(
suchen

Code: Alles auswählen

	while ( $row = $db->sql_fetchrow($result) );
	$db->sql_freeresult($result);
}
danach einfügen

Code: Alles auswählen

  if ($schleife == 'memberrow')
  {
    $weiter = false;
  }
  $schleife = 'memberrow';
}
memberlist_body.tpl
suchen

Code: Alles auswählen

<form method="post" action="{S_MODE_ACTION}">
davor einfügen

Code: Alles auswählen

<div class="nav" style="width:100%;text-align:center;">
{L_TOPTEN}
</div>
<div style="width:100%;margin:4px;">
<span class="nav"><a href="{U_INDEX}" class="nav">{L_INDEX}</a></span>
</div>
<table width="100%" cellpadding="3" cellspacing="1" border="0" class="forumline">
	<tr> 
	  <th height="25" class="thCornerL" nowrap="nowrap">#</th>
	  <th class="thTop" nowrap="nowrap">{L_USERNAME}</th>
	  <th class="thTop" nowrap="nowrap">&nbsp;</th>
	  <th class="thTop" nowrap="nowrap">{L_FROM}</th>
	  <th class="thTop" nowrap="nowrap">{L_JOINED}</th>
	  <th class="thTop" nowrap="nowrap">{L_POSTS}</th>
	  <th class="thCornerR" nowrap="nowrap">{L_WEBSITE}</th>
	</tr>
	<!-- BEGIN topten -->
	<tr> 
	  <td class="{topten.ROW_CLASS}" align="center"><span class="gen">&nbsp;{topten.ROW_NUMBER}&nbsp;</span></td>
	  <td class="{topten.ROW_CLASS}" align="center"><span class="gen"><a href="{topten.U_VIEWPROFILE}" class="gen">{topten.USERNAME}</a></span></td>
	  <td class="{topten.ROW_CLASS}" align="left" valign="middle">{topten.PM_IMG}&nbsp;{topten.EMAIL_IMG}&nbsp;{topten.ICQ_IMG}&nbsp;{topten.AIM_IMG}&nbsp;
{topten.MSN_IMG}&nbsp;{topten.YIM_IMG}</td> 
	  <td class="{topten.ROW_CLASS}" align="center" valign="middle"><span class="gen">{topten.FROM}</span></td>
	  <td class="{topten.ROW_CLASS}" align="center" valign="middle"><span class="gensmall">{topten.JOINED}</span></td>
	  <td class="{topten.ROW_CLASS}" align="center" valign="middle"><span class="gen">{topten.POSTS}</span></td>
	  <td class="{topten.ROW_CLASS}" align="center">&nbsp;{topten.WWW_IMG}&nbsp;</td>
	</tr>
	<!-- END topten -->
	<tr> 
	  <td class="catBottom" colspan="8" height="28">&nbsp;</td>
	</tr>
  </table>
  <table width="100%" cellspacing="2" border="0" align="center" cellpadding="2">
	<tr> 
	  <td align="right" valign="top"></td>
	</tr>
 </table>
<div class="nav" style="width:100%;text-align:center;">
{L_MEMBERLIST}
</div>
Sollte funktionieren .. :D

Verfasst: 26.05.2005 22:04
von smart
Jetzt hast du echt einen gut bei mir!
D A N K E !

Verfasst: 26.05.2005 22:15
von punkface
tata... kleiner "schönheits" Fehler. Wenn z.B. festgelegt ist, dass nur 50 Mitglieder pro Seite angezeigt werden sollen, die Mitgliederliste bei mehr als 50 Mitgliedern aber über mehrere Seiten geht, beginnt die Aufzählung in der Top10 Liste z.B. auf der zweiten Seite nicht mit 1 sondern mit 51.

memberlist.php
suchen

Code: Alles auswählen

      'ROW_NUMBER' => $i + ( $start + 1 ),
ersetzten mit

Code: Alles auswählen

      'ROW_NUMBER' => ($schleife == 'topten') ? $i + 1 : $i + ( $start + 1 ),
sodelle..
smart hat geschrieben:Jetzt hast du echt einen gut bei mir!
D A N K E !
edit: mist dazu wollt ich doch auch noch was sagen: Kein Problem :D

Verfasst: 27.05.2005 02:07
von smart
Danke!

Eine Sache ist mir aufgefallen: Ich hatte mich als Admin vorher aus der Liste ausgeschlossen, weiß aber nicht mehr, wie ich das angestellt habe. Wie kann ich mich denn sowohl aus der TopTen, als auch aus der Mitgliederliste nehmen?

Verfasst: 27.05.2005 02:28
von punkface
memberlist.php
suche (solltest du zweimal finden, wenn du die oben gezeigten Code Änderungen gemacht hast)

Code: Alles auswählen

    	WHERE user_id <> " . ANONYMOUS . "
danach einfügen (ja, bei beiden Stellen)

Code: Alles auswählen

        AND user_id <> 2

Die 2 ggf. durch deine Benutzer ID ersetzten.

Und falls die Frage kommt, wie man rausfindet welche Benutzer ID man hat:
Wenn man z.B. in der Mitgliederliste auf den eigenen Nick klickt, müsste so was ähnliches in der Adressleiste deines Browsers stehen:
http://domain.tld/pfad_zum_forum/profil ... 58103a0e43

Die Zahl hinter u= ist die Benutzer ID, in diesem Fall also 2.

Verfasst: 27.05.2005 02:42
von smart
Dank' dir!

PN bekommen?

Verfasst: 27.05.2005 10:48
von shizo
da muss ich mal punkface mein lob aussprechen einfach so sich die mühe gemacht, echt super! :wink: