Seite 1 von 1

Users of the Day Mod (Sortierung)

Verfasst: 21.02.2004 18:03
von Jessica
Hallöle!

Ich habe bei mir den Users of the Day Mod eingebaut:
http://www.phpbbhacks.com/viewhack.php?id=770

Ich habe auch den Junior-Admin Mod installiert. Und nun passiert es, dass der Junior-Admin in der Übersicht, wer in den letzten 24 Stunden im Forum war, vor dem Administrator steht, da die Auflistung der User nach User-Level absteigend vorgenommen wird und der Junior eben Level 9 hat, der Admin Level 1. Wenn ich es aufsteigend sortieren lasse, stehen aber alle normalen User an erster Stelle und erst dann kommen die Admins, das funktioniert also auch nicht.

Kann sich mal jemand bitte folgendes anschauen:

Code: Alles auswählen

$sql = "SELECT user_id, username, user_allow_viewonline, user_level, user_session_time
	FROM ".USERS_TABLE."
	WHERE user_id > 0
	ORDER BY user_level DESC, username ASC";
Wie bekomme ich es nun hin, dass zuerst der Admin, dann der Junior-Admin und dann erst die normalen User angezeigt werden?

Hier mal der ganze Code:

Code: Alles auswählen

//
// Users of the day MOD
//

// ############ Edit below ############
// #
$display_not_day_userlist = 0;	// change to 1 here if you also want the list of the users who didn't visit to be displayed
$users_list_delay = 24;		// change here to the number of hours wanted for the list
// #
// ############ Edit above ############

$sql = "SELECT user_id, username, user_allow_viewonline, user_level, user_session_time
	FROM ".USERS_TABLE."
	WHERE user_id > 0
	ORDER BY user_level DESC, username ASC";
if( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not obtain user/day information', '', __LINE__, __FILE__, $sql);
}

$day_userlist = '';
$day_users = 0;
$not_day_userlist = '';
$not_day_users = 0;

while( $row = $db->sql_fetchrow($result) )
{
	$style_color = '';
	if ( $row['user_level'] == ADMIN )
	{
		$row['username'] = '<b>' . $row['username'] . '</b>';
		$style_color = 'style="color:#00BBBE"';
	}
	else if ( $row['user_level'] == 9 ) 
	{ 
		$row['username'] = '<b>' . $row['username'] . '</b>'; 
		$style_color = 'style="color:#FFC693"'; 
	}
	else if ( $row['user_level'] == MOD )
	{
		$row['username'] = '<b>' . $row['username'] . '</b>';
		$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
	}
	if ( $row['user_allow_viewonline'] )
	{
		$user_day_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'>' . $row['username'] . '</a>';
	}
	else
	{
		$user_day_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'><i>' . $row['username'] . '</i></a>';
	}
	if ( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN )
	{
		if ( $row['user_session_time'] >= ( time() - $users_list_delay * 3600 ) )
		{
			$day_userlist .= ( $day_userlist != '' ) ? ', ' . $user_day_link : $user_day_link;
			$day_users++;
		}
		else
		{
			$not_day_userlist .= ( $not_day_userlist != '' ) ? ', ' . $user_day_link : $user_day_link;
			$not_day_users++;
		}
	}
}

$day_userlist = ( ( isset($forum_id) ) ? '' : sprintf($lang['Day_users'], $day_users, $users_list_delay) ) . ' ' . $day_userlist;

$not_day_userlist = ( ( isset($forum_id) ) ? '' : sprintf($lang['Not_day_users'], $not_day_users, $users_list_delay) ) . ' ' . $not_day_userlist;

if ( $display_not_day_userlist )
{
	$day_userlist .= '<br />' . $not_day_userlist;
}

//
// End of MOD
//
Danke schon mal.
Jessica

Re: Users of the Day Mod (Sortierung)

Verfasst: 21.02.2004 21:29
von Acid
Man kann ja auch explizit die Userlevel angeben.. z.B.

Code: Alles auswählen

$sql = "SELECT user_id, username, user_allow_viewonline, user_level, user_session_time
	FROM ".USERS_TABLE."
	WHERE user_id > 0
	ORDER BY user_level = 1 DESC, user_level = 9 DESC, username ASC";
..musst mal ein wenig testen.

Verfasst: 22.02.2004 00:55
von Jessica
Perfekt Acid! Danke! :)