Seite 1 von 2
Wer ist online: Avatare statt Username
Verfasst: 18.06.2009 02:47
von Greyhound76
Hallo,
ich wollte mal nachhaken ob wer weiss wie man, statt den Usernames, die jeweiligen Avatare als Thumb in der wer ist online Liste im index_body.html (also nicht die Liste wenn man auf dem wer ist online draufklickt, also schon im Index) auslesen lassen kann. Mein Style basiert auf prosilver.
Ich selbst hab zwar schon ein, zwei kleinere Versuche gestartet, aber da ich in Sachen php & html kein Crack bin, hat´s natürlich nicht gefunzt

.
Wäre schön wenn mir da wer einen guten Tipp geben könnte, danke.
Re: Wer ist online: Avatare statt Username
Verfasst: 18.06.2009 04:08
von Mahony
Hallo
Meinst du vielleicht so etwas
Avatars in Who is Online?
Grüße: Mahony
Re: Wer ist online: Avatare statt Username
Verfasst: 18.06.2009 20:01
von Greyhound76
Nee, den hab ich ja schon drinne. Der Mod setzt lediglich Avatare vor den Usernames in der who is online Auflistung, also dort wo man auch sehen kann, wo wer genau auch sich im Board aufhält. Ich meine aber die in der Foren-Übersicht.
Re: Wer ist online: Avatare statt Username
Verfasst: 20.06.2009 02:45
von Greyhound76
*push*
Re: Wer ist online: Avatare statt Username
Verfasst: 20.06.2009 09:54
von JFooty
Das dürfte mit einer einfachen Template-Anpassung nicht machbar sein.
Damit ist das wohl eher ein Fall für die MOD-Suche.
Re: Wer ist online: Avatare statt Username
Verfasst: 20.06.2009 19:58
von lefty74
Greyhound76 hat geschrieben:Hallo,
ich wollte mal nachhaken ob wer weiss wie man, statt den Usernames, die jeweiligen Avatare als Thumb in der wer ist online Liste im index_body.html (also nicht die Liste wenn man auf dem wer ist online draufklickt, also schon im Index) auslesen lassen kann. Mein Style basiert auf prosilver.
Ich selbst hab zwar schon ein, zwei kleinere Versuche gestartet, aber da ich in Sachen php & html kein Crack bin, hat´s natürlich nicht gefunzt

.
Wäre schön wenn mir da wer einen guten Tipp geben könnte, danke.
wie meinst das jetzt genau, avatare sind clickable und fuehren zum profil? wie hast dir das denn vorgestellt fuer benutzer die keinen avatar haben oder versteckte benutzer?
Re: Wer ist online: Avatare statt Username
Verfasst: 21.06.2009 15:08
von Greyhound76
Ich hab mir des wie folgt vorgestellt ... Member die online sind werden als ihr Avatar (ca 80x80pix/thumb) dargestellt, ebenfalls so das man per Klick aufs Ava zu deren Profil gelangt. Member die Unsichtbar bleiben wollen, werden nach wie vor nur vom Admin erkannt und Member ohne Avatar erhalten auf dem Index einfach ein obligatorisches NO IMAGE Avatar.
Re: Wer ist online: Avatare statt Username
Verfasst: 21.06.2009 21:46
von 4seven
bin schon nah dran. obwohl ich persönlich ein transition-pic mit dem avatar in originalgröße beim überstreichen des user-links mit der maus viel schicker finde. aber nu..
Re: Wer ist online: Avatare statt Username
Verfasst: 21.06.2009 21:55
von lefty74
Du kannst die obtain_users_online_string funktion mit dieser ersetzen wenn du willst, habs allerdings nicht besonders getestet und weiss nicht wie es mit der server load aussieht wenn du sehr viele besucher hast...
damit hast du allerdings ueberall avatare, nicht nur auf der index seite sonder auch z.b. in der forum seite.
Code: Alles auswählen
function obtain_users_online_string($online_users, $forum_id = 0)
{
global $config, $db, $user, $auth;
$user_online_link = $online_userlist = $user_online_avatar = '';
if (sizeof($online_users['online_users']))
{
$sql = 'SELECT username, username_clean, user_id, user_type, user_allow_viewonline, user_colour, user_avatar, user_avatar_type, user_avatar_width, user_avatar_height
FROM ' . USERS_TABLE . '
WHERE ' . $db->sql_in_set('user_id', $online_users['online_users']) . '
ORDER BY username_clean ASC';
$result = $db->sql_query($sql);
$max_avatar_online_users = $avatar_width_online_users = $avatar_height_online_users = '';
while ($row = $db->sql_fetchrow($result))
{
// User is logged in and therefore not a guest
if ($row['user_id'] != ANONYMOUS)
{
$max_avatar_online_users = 40; // here you can change the max-width you would like to have the avatars displayed, change to 0 to use default
if ( !empty($row['user_avatar']) )
{
if ( $max_avatar_online_users )
{
if ( $row['user_avatar_width'] >= $row['user_avatar_height'] )
{
$avatar_width_online_users = ( $row['user_avatar_width'] > $max_avatar_online_users ) ? $max_avatar_online_users : $row['user_avatar_width'] ;
$avatar_height_online_users = ( $avatar_width_online_users == $max_avatar_online_users ) ? round($max_avatar_online_users / $row['user_avatar_width'] * $row['user_avatar_height']) : $row['user_avatar_height'] ;
}
else
{
$avatar_height_online_users = ( $row['user_avatar_height'] > $max_avatar_online_users ) ? $max_avatar_online_users : $row['user_avatar_height'] ;
$avatar_width_online_users = ( $avatar_height_online_users == $max_avatar_online_users ) ? round($max_avatar_online_users / $row['user_avatar_height'] * $row['user_avatar_width']) : $row['user_avatar_width'] ;
}
}
else
{
$avatar_height_online_users = $row['user_avatar_height'];
$avatar_width_online_users = $row['user_avatar_width'];
}
}
if (isset($online_users['hidden_users'][$row['user_id']]))
{
// $row['username'] = '<em>' . $row['username'] . '</em>';
$row['username'] = $row['username'] . ' [hidden]';
}
global $phpbb_root_path, $phpEx;
if (!isset($online_users['hidden_users'][$row['user_id']]) || $auth->acl_get('u_viewonline'))
{
if ( !function_exists('get_user_avatar'))
{
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
}
$user_online_link = get_username_string(($row['user_type'] <> USER_IGNORE) ? 'profile' : 'no_profile', $row['user_id'], $row['username'], $row['user_colour']);
$user_online_avatar = (empty($row['user_avatar']) || $row['user_type'] == USER_IGNORE ) ? '<img src="' . $phpbb_root_path . 'styles/' . $user->theme['imageset_path'] . '/theme/images/no_avatar.gif" height="' . $max_avatar_online_users . '" width="' . $max_avatar_online_users . '" title="'. $row['username'] . '" alt="" />' : get_user_avatar($row['user_avatar'],$row['user_avatar_type'], $avatar_width_online_users, $avatar_height_online_users, $row['username']);
$online_userlist .= ($online_userlist != '') ? ' <a href="' . $user_online_link . '" title = "'. $row['username'] . '">' . $user_online_avatar . '</a>' : '<a href="' . $user_online_link . '" title = "'. $row['username'] . '">' . $user_online_avatar . '</a>';
}
}
}
$db->sql_freeresult($result);
}
if (!$online_userlist)
{
$online_userlist = $user->lang['NO_ONLINE_USERS'];
}
if ($forum_id === 0)
{
$online_userlist = $user->lang['REGISTERED_USERS'] . ' ' . $online_userlist;
}
else if ($config['load_online_guests'])
{
$l_online = ($online_users['guests_online'] === 1) ? $user->lang['BROWSING_FORUM_GUEST'] : $user->lang['BROWSING_FORUM_GUESTS'];
$online_userlist = sprintf($l_online, $online_userlist, $online_users['guests_online']);
}
else
{
$online_userlist = sprintf($user->lang['BROWSING_FORUM'], $online_userlist);
}
// Build online listing
$vars_online = array(
'ONLINE' => array('total_online', 'l_t_user_s', 0),
'REG' => array('visible_online', 'l_r_user_s', !$config['load_online_guests']),
'HIDDEN' => array('hidden_online', 'l_h_user_s', $config['load_online_guests']),
'GUEST' => array('guests_online', 'l_g_user_s', 0)
);
foreach ($vars_online as $l_prefix => $var_ary)
{
if ($var_ary[2])
{
$l_suffix = '_AND';
}
else
{
$l_suffix = '';
}
switch ($online_users[$var_ary[0]])
{
case 0:
${$var_ary[1]} = $user->lang[$l_prefix . '_USERS_ZERO_TOTAL' . $l_suffix];
break;
case 1:
${$var_ary[1]} = $user->lang[$l_prefix . '_USER_TOTAL' . $l_suffix];
break;
default:
${$var_ary[1]} = $user->lang[$l_prefix . '_USERS_TOTAL' . $l_suffix];
break;
}
}
unset($vars_online);
$l_online_users = sprintf($l_t_user_s, $online_users['total_online']);
$l_online_users .= sprintf($l_r_user_s, $online_users['visible_online']);
$l_online_users .= sprintf($l_h_user_s, $online_users['hidden_online']);
if ($config['load_online_guests'])
{
$l_online_users .= sprintf($l_g_user_s, $online_users['guests_online']);
}
return array(
'online_userlist' => $online_userlist,
'l_online_users' => $l_online_users,
);
}
p.s. ab 3.0.6 wird die funktion etwas anders aussehen und es waere wahrscheinlich besser die originale version wieder reinzupacken bevor du upgradest...
edit: @4seven, sorry, lass dich bitte nicht hiervon abzubringen aufzuhalten, deine version ist mit sicherheit besser getested als meine...
Re: Wer ist online: Avatare statt Username
Verfasst: 21.06.2009 22:05
von 4seven
ich machs grad ganz klassisch in der index.php mit braver sql abfrage. deine modifizierte function ist allerdings nicht von schlechten eltern
