Wird nicht schon in diesem Teil des Codes in der index.php festgelegt was wann wie angezeigt werden soll ?
Der von dir geänderte Code gibt doch nur die Textausgabe vor ( welches Wort wann und wo erscheint )$sql_active = "SELECT u.username, u.user_id, u.user_allow_viewonline, u.user_level, s.session_logged_in, s.session_ip, f.forum_id
FROM ". USERS_TABLE ." u, ". SESSIONS_TABLE ." s, ". FORUMS_TABLE ." f
WHERE u.user_id = s.session_user_id AND s.session_time >= ". (time() - 300) ." AND s.session_page = f.forum_id
ORDER BY u.username ASC, s.session_ip ASC";
if( !($result_active = $db->sql_query($sql_active)) )
{
message_die(GENERAL_ERROR, 'could not obtain user/online information.', '', __LINE__, __FILE__, $sql_active);
}
$userlist_ary = array();
$userlist_visible = array();
$prev_userid = 0;
$prev_userip = $prev_sessionip = '';
while( $active = $db->sql_fetchrow($result_active) )
{
if( $active['session_logged_in'] )
{
if( $active['user_id'] != $prev_userid )
{
if( file_exists(@phpbb_realpath($phpbb_root_path .'includes/functions_color_groups.'.$phpEx)) )
{
include_once($phpbb_root_path .'includes/functions_color_groups.'.$phpEx);
$active['username'] = color_group_colorize_name($active['user_id']);
}
else
{
if( file_exists(@phpbb_realpath($phpbb_root_path .'includes/functions_jr_admin.'.$phpEx)) )
{
include_once($phpbb_root_path .'includes/functions_jr_admin.' . $phpEx);
$jr_admin_userdata = jr_admin_get_user_info($active['user_id']);
}
$style_color = '';
if( $active['user_level'] == ADMIN )
{
$active['username'] = '<b>'. $active['username'] .'</b>';
$style_color = 'style="color:#'. $theme['fontcolor3'] .'"';
}
else if( $active['user_id'] == $jr_admin_userdata['user_id'] || $active['user_level'] == LESS_ADMIN )
{
$active['username'] = '<b>'. $active['username'] .'</b>';
$style_color = 'style="color:#FF0000"';
}
else if( $active['user_level'] == MOD )
{
$active['username'] = '<b>'. $active['username'] .'</b>';
$style_color = 'style="color:#'. $theme['fontcolor2'] .'"';
}
}
if( $active['user_allow_viewonline'] )
{
$onlinerow[$active['forum_id']][] = '<a href="'. append_sid("profile.$phpEx?mode=viewprofile&". POST_USERS_URL ."=". $active['user_id']) .'" '. $style_color .'>'. $active['username'] .'</a>';
$logged_visible_active[$active['forum_id']][]++;
}
else
{
$onlinerow[$active['forum_id']][] = ( $active['user_allow_viewonline'] || $userdata['user_level'] == ADMIN ) ? '<a href="'. append_sid("profile.$phpEx?mode=viewprofile&". POST_USERS_URL ."=". $active['user_id']) .'" '. $style_color .'><i>'. $active['username'] .'</i></a>' : '';
$logged_hidden_active[$active['forum_id']][]++;
}
}
$prev_userid = $active['user_id'];
}
else
{
if( $active['session_ip'] != $prev_sessionip )
{
$guestrow[$active['forum_id']][] = '';
$guests_active[$active['forum_id']][]++;
}
}
$prev_sessionip = $active['session_ip'];
}
$db->sql_freeresult($result_active);
Der von dir entwickelte Code sagt ja im endeffekt das gleiche wie der von Acid nur mit anderen Worten.
Im oberen Teil ist immer der Bezug ( if( $active['session_logged_in'] ) / if( $active['user_allow_viewonline'] ) ) und der Bezug zu Gästen erst in Folge.
Müsste also der Fehler der Ausgabe nicht dort liegen ??
Ich kann leider kein PHP sonst würde ich mich da selbst dran machen !!
Gruß
Red Benz