Nein, geht leider nicht. Hab gerade das komplette MOD deinstalliert, alle 4 Dateien nochmal überprüft, wieder installiert und leider immer noch das gleiche Ergebnis und eigentlich ist dein MOD ja auch kinderleicht zu installieren
Ich hab's gerade dann auch nochmal in die index.php eingebaut und da klappt es. Denke, es wird wohl doch in der viewonline.php liegen.
Da ich recht viele MODs eingebaut habe, könnte es ja dort auch einen Konflikt geben
Ich liste dir hier mal meine viewonline.php auf. Vielleicht hilft's ja
Code: Alles auswählen
<?php
/**
*
* @package phpBB3
* @version $Id: viewonline.php 8705 2008-07-28 16:55:00Z Kellanved $
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('memberlist');
// Get and set some variables
$mode = request_var('mode', '');
$session_id = request_var('s', '');
$start = request_var('start', 0);
$sort_key = request_var('sk', 'b');
$sort_dir = request_var('sd', 'd');
$show_guests= ($config['load_online_guests']) ? request_var('sg', 0) : 0;
// Can this user view profiles/memberlist?
// Member List Permission Detail Mod
if (!$auth->acl_gets('u_viewonline_mod', 'a_user', 'a_useradd', 'a_userdel'))
{
if ($user->data['user_id'] != ANONYMOUS)
{
trigger_error('NO_VIEW_ONLINE_MOD');
}
login_box('', $user->lang['LOGIN_EXPLAIN_VIEWONLINE']);
}
$sort_key_text = array('a' => $user->lang['SORT_USERNAME'], 'b' => $user->lang['SORT_JOINED'], 'c' => $user->lang['SORT_LOCATION']);
$sort_key_sql = array('a' => 'u.username_clean', 'b' => 's.session_time', 'c' => 's.session_page');
// Sorting and order
if (!isset($sort_key_text[$sort_key]))
{
$sort_key = 'b';
}
$order_by = $sort_key_sql[$sort_key] . ' ' . (($sort_dir == 'a') ? 'ASC' : 'DESC');
// Whois requested
if ($mode == 'whois' && $auth->acl_get('a_') && $session_id)
{
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
$sql = 'SELECT u.user_id, u.username, u.user_type, s.session_ip
FROM ' . USERS_TABLE . ' u, ' . SESSIONS_TABLE . " s
WHERE s.session_id = '" . $db->sql_escape($session_id) . "'
AND u.user_id = s.session_user_id";
$result = $db->sql_query($sql);
if ($row = $db->sql_fetchrow($result))
{
$template->assign_var('WHOIS', user_ipwhois($row['session_ip']));
}
$db->sql_freeresult($result);
// Output the page
page_header($user->lang['WHO_IS_ONLINE']);
$template->set_filenames(array(
'body' => 'viewonline_whois.html')
);
make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
page_footer();
}
// Forum info
$sql = 'SELECT forum_id, forum_name, parent_id, forum_type, left_id, right_id
FROM ' . FORUMS_TABLE . '
ORDER BY left_id ASC';
$result = $db->sql_query($sql, 600);
$forum_data = array();
while ($row = $db->sql_fetchrow($result))
{
$forum_data[$row['forum_id']] = $row;
}
$db->sql_freeresult($result);
$guest_counter = 0;
// Get number of online guests (if we do not display them)
if (!$show_guests)
{
switch ($db->sql_layer)
{
case 'sqlite':
$sql = 'SELECT COUNT(session_ip) as num_guests
FROM (
SELECT DISTINCT session_ip
FROM ' . SESSIONS_TABLE . '
WHERE session_user_id = ' . ANONYMOUS . '
AND session_time >= ' . (time() - ($config['load_online_time'] * 60)) .
')';
break;
default:
$sql = 'SELECT COUNT(DISTINCT session_ip) as num_guests
FROM ' . SESSIONS_TABLE . '
WHERE session_user_id = ' . ANONYMOUS . '
AND session_time >= ' . (time() - ($config['load_online_time'] * 60));
break;
}
$result = $db->sql_query($sql);
$guest_counter = (int) $db->sql_fetchfield('num_guests');
$db->sql_freeresult($result);
}
// Get user list
$sql = 'SELECT u.user_id, u.username, u.username_clean, u.user_type, u.user_colour, u.user_avatar, u.user_avatar_type, u.user_avatar_width, u.user_avatar_height, s.session_id, s.session_time, s.session_page, s.session_ip, s.session_browser, s.session_viewonline, s.session_forum_id, s.session_album_id
FROM ' . USERS_TABLE . ' u, ' . SESSIONS_TABLE . ' s
WHERE u.user_id = s.session_user_id
AND s.session_time >= ' . (time() - ($config['load_online_time'] * 60)) .
((!$show_guests) ? ' AND s.session_user_id <> ' . ANONYMOUS : '') . '
ORDER BY ' . $order_by;
$result = $db->sql_query($sql);
$prev_id = $prev_ip = $user_list = array();
$logged_visible_online = $logged_hidden_online = $counter = 0;
// BEGIN: Topic in "Who is online"
$topic_ids = $post_ids = $topic_post_ids = $topic_titles = array();
while ($row = $db->sql_fetchrow($result))
{
if ($row['user_id'] != ANONYMOUS && !isset($prev_id[$row['user_id']]))
{
$view_online = false;
if (!$row['session_viewonline'])
{
$view_online = ($auth->acl_get('u_viewonline')) ? true : false;
}
else
{
$view_online = true;
}
$prev_id[$row['user_id']] = 1;
if (!$view_online)
{
continue;
}
}
else if ($show_guests && $row['user_id'] == ANONYMOUS && !isset($prev_ip[$row['session_ip']]))
{
$prev_ip[$row['session_ip']] = 1;
}
else
{
continue;
}
preg_match('#^([a-z/]+)#i', $row['session_page'], $on_page);
if (!sizeof($on_page))
{
$on_page[1] = '';
}
// Sudoku MOD
if(strpos($row['session_page'], 'sudoku') !== false)
{
$on_page[1] = 'sudoku';
}
// DM Video
if(strpos($row['session_page'], 'dm_video') !== false)
{
$on_page[1] = 'videos';
}
// phpBB Gallery integration
if ((utf8_substr($on_page[1], 0, utf8_strlen(GALLERY_ROOT_PATH))) == GALLERY_ROOT_PATH)
{
$gallery_on_page[1] = $on_page[1];
$on_page[1] = utf8_substr($on_page[1], 0, utf8_strlen(GALLERY_ROOT_PATH));
}
if (!in_array($on_page[1], array('viewtopic', 'posting')))
{
continue;
}
preg_match('#t=([0-9]+)#', $row['session_page'], $on_page);
if (sizeof($on_page))
{
$topic_ids[] = $on_page[1];
continue;
}
preg_match('#p=([0-9]+)#', $row['session_page'], $on_page);
if (sizeof($on_page))
{
$post_ids[] = $on_page[1];
continue;
}
}
unset($prev_id, $prev_ip);
if (sizeof($topic_ids) || sizeof($post_ids))
{
if (sizeof($post_ids))
{
$sql = 'SELECT topic_id, post_id FROM ' . POSTS_TABLE . ' WHERE ' . $db->sql_in_set('post_id', $post_ids);
$post_result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($post_result))
{
$topic_post_ids[$row['post_id']] = $row['topic_id'];
$topic_ids[] = $row['topic_id'];
}
$db->sql_freeresult($post_result);
}
$sql = 'SELECT topic_id, topic_title FROM ' . TOPICS_TABLE . ' WHERE ' . $db->sql_in_set('topic_id', array_unique($topic_ids));
$topic_result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($topic_result))
{
$topic_titles[$row['topic_id']] = $row['topic_title'];
}
$db->sql_freeresult($topic_result);
}
$db->sql_rowseek(0, $result);
// END: Topic in "Who is online"
while ($row = $db->sql_fetchrow($result))
{
if ($row['user_id'] != ANONYMOUS && !isset($prev_id[$row['user_id']]))
{
$view_online = $s_user_hidden = false;
$user_colour = ($row['user_colour']) ? ' style="color:#' . $row['user_colour'] . '" class="username-coloured"' : '';
$username_full = ($row['user_type'] != USER_IGNORE) ? get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']) : '<span' . $user_colour . '>' . $row['username'] . '</span>';
if (!$row['session_viewonline'])
{
$view_online = ($auth->acl_get('u_viewonline')) ? true : false;
$logged_hidden_online++;
$username_full = '<em>' . $username_full . '</em>';
$s_user_hidden = true;
}
else
{
$view_online = true;
$logged_visible_online++;
}
$prev_id[$row['user_id']] = 1;
if ($view_online)
{
$counter++;
}
if (!$view_online || $counter > $start + $config['topics_per_page'] || $counter <= $start)
{
continue;
}
}
else if ($show_guests && $row['user_id'] == ANONYMOUS && !isset($prev_ip[$row['session_ip']]))
{
$prev_ip[$row['session_ip']] = 1;
$guest_counter++;
$counter++;
if ($counter > $start + $config['topics_per_page'] || $counter <= $start)
{
continue;
}
$s_user_hidden = false;
$username_full = get_username_string('full', $row['user_id'], $user->lang['GUEST']);
}
else
{
continue;
}
preg_match('#^([a-z/]+)#i', $row['session_page'], $on_page);
if (!sizeof($on_page))
{
$on_page[1] = '';
}
switch ($on_page[1])
{
case 'index':
$location = $user->lang['INDEX'];
$location_url = append_sid("{$phpbb_root_path}index.$phpEx");
break;
case 'arcade':
include($phpbb_root_path . 'includes/arcade/arcade_viewonline.' . $phpEx);
break;
case 'adm/index':
$location = $user->lang['ACP'];
$location_url = append_sid("{$phpbb_root_path}index.$phpEx");
break;
case 'posting':
case 'viewforum':
case 'viewtopic':
$forum_id = $row['session_forum_id'];
if ($forum_id && $auth->acl_get('f_list', $forum_id))
{
$location = '';
$location_url = append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $forum_id);
if ($forum_data[$forum_id]['forum_type'] == FORUM_LINK)
{
$location = sprintf($user->lang['READING_LINK'], $forum_data[$forum_id]['forum_name']);
break;
}
switch ($on_page[1])
{
case 'posting':
preg_match('#mode=([a-z]+)#', $row['session_page'], $on_page);
$posting_mode = (!empty($on_page[1])) ? $on_page[1] : '';
switch ($posting_mode)
{
case 'reply':
case 'quote':
// BEGIN: Topic in "Who is online"
preg_match('#t=([0-9]+)#', $row['session_page'], $on_page);
preg_match('#p=([0-9]+)#', $row['session_page'], $on_page_p);
if (sizeof($on_page) && isset($topic_titles[$on_page[1]]))
{
$location = sprintf($user->lang['REPLYING_MESSAGE_TOPIC'], $forum_data[$forum_id]['forum_name'], $topic_titles[$on_page[1]]);
$location_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $forum_id . '&t=' . $on_page[1]);
}
else if (sizeof($on_page_p) && isset($topic_post_ids[$on_page_p[1]]))
{
$location = sprintf($user->lang['REPLYING_MESSAGE_TOPIC'], $forum_data[$forum_id]['forum_name'], $topic_titles[$topic_post_ids[$on_page[1]]]);
$location_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $forum_id . '&p=' . $on_page_p[1]);
}
else
{
$location = sprintf($user->lang['REPLYING_MESSAGE'], $forum_data[$forum_id]['forum_name']);
}
// END: Topic in "Who is online"
break;
default:
$location = sprintf($user->lang['POSTING_MESSAGE'], $forum_data[$forum_id]['forum_name']);
break;
}
break;
case 'viewtopic':
// BEGIN: Topic in "Who is online"
preg_match('#t=([0-9]+)#', $row['session_page'], $on_page);
preg_match('#p=([0-9]+)#', $row['session_page'], $on_page_p);
if (sizeof($on_page) && isset($topic_titles[$on_page[1]]))
{
$location = sprintf($user->lang['READING_TOPIC_TOPIC'], $forum_data[$forum_id]['forum_name'], $topic_titles[$on_page[1]]);
$location_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $forum_id . '&t=' . $on_page[1]);
}
else if (sizeof($on_page_p) && isset($topic_post_ids[$on_page_p[1]]))
{
$location = sprintf($user->lang['READING_TOPIC_TOPIC'], $forum_data[$forum_id]['forum_name'], $topic_titles[$topic_post_ids[$on_page_p[1]]]);
$location_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $forum_id . '&p=' . $on_page_p[1]);
}
else
{
$location = sprintf($user->lang['READING_TOPIC'], $forum_data[$forum_id]['forum_name']);
}
// END: Topic in "Who is online"
break;
case 'viewforum':
$location = sprintf($user->lang['READING_FORUM'], $forum_data[$forum_id]['forum_name']);
break;
}
}
else
{
$location = $user->lang['INDEX'];
$location_url = append_sid("{$phpbb_root_path}index.$phpEx");
}
break;
case 'search':
$location = $user->lang['SEARCHING_FORUMS'];
$location_url = append_sid("{$phpbb_root_path}search.$phpEx");
break;
case 'milestones':
$user->add_lang('mods/milestone_congratulations');
$location = $user->lang['VIEWING_MILESTONES'];
$location_url = append_sid("{$phpbb_root_path}milestones.$phpEx");
break;
case 'faq':
$location = $user->lang['VIEWING_FAQ'];
$location_url = append_sid("{$phpbb_root_path}faq.$phpEx");
break;
case 'zocker':
$user->add_lang('mods/zocker_spieler');
$location = $user->lang['VIEWING_BEST_SCORER'];
$location_url = append_sid("{$phpbb_root_path}zocker_spieler.$phpEx");
break;
case KB_FOLDER . '/index':
$location = $user->lang['KNOWLEDGE_BASE'];
$location_url = append_sid("{$phpbb_root_path}" . KB_FOLDER . '/');
break;
case 'viewonline':
$location = $user->lang['VIEWING_ONLINE'];
$location_url = append_sid("{$phpbb_root_path}viewonline.$phpEx");
break;
case 'viewonline':
$location = $user->lang['VIEWING_ONLINE'];
$location_url = append_sid("{$phpbb_root_path}magic_viewonline.$phpEx");
break;
case 'memberlist':
$location = (strpos($row['session_page'], 'mode=viewprofile') !== false) ? $user->lang['VIEWING_MEMBER_PROFILE'] : $user->lang['VIEWING_MEMBERS'];
$location_url = append_sid("{$phpbb_root_path}memberlist.$phpEx");
break;
case 'mcp':
$location = $user->lang['VIEWING_MCP'];
$location_url = append_sid("{$phpbb_root_path}index.$phpEx");
break;
case 'sudoku':
$location = $user->lang['SUDOKU_VIEW_ONLINE'];
$location_url = append_sid("{$phpbb_root_path}sudoku/sudoku.$phpEx");
break;
case 'knuffel':
$location = $user->lang['PLAY_KNUFFEL'];
$location_url = append_sid("{$phpbb_root_path}knuffel.$phpEx");
break;
case 'ucp':
$location = $user->lang['VIEWING_UCP'];
// Grab some common modules
$url_params = array(
'mode=register' => 'VIEWING_REGISTER',
'i=pm&mode=compose' => 'POSTING_PRIVATE_MESSAGE',
'i=pm&' => 'VIEWING_PRIVATE_MESSAGES',
'i=profile&' => 'CHANGING_PROFILE',
'i=prefs&' => 'CHANGING_PREFERENCES',
);
foreach ($url_params as $param => $lang)
{
if (strpos($row['session_page'], $param) !== false)
{
$location = $user->lang[$lang];
break;
}
}
$location_url = append_sid("{$phpbb_root_path}index.$phpEx");
break;
case 'arcade':
if (!isset($arcade))
{
include($phpbb_root_path . 'includes/arcade/arcade_common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
// Initialize arcade auth
$auth_arcade->acl($user->data);
// Initialize arcade class
$arcade = new arcade();
}
// Grab some common modules
$url_params = array(
'mode=play' => 'PLAYING_GAME',
'mode=cat' => 'VIEWING_ARCADE_CAT',
'mode=download' => 'DOWNLOADING_GAME',
'mode=stats' => 'VIEWING_ARCADE_STATS',
'mode=popup' => 'PLAYING_GAME',
'mode=search' => 'VIEWING_ARCADE_SEARCH',
'mode=fav' => 'VIEWING_ARCADE_FAVS',
);
$found_arcade = false;
foreach ($url_params as $param => $lang)
{
if (strpos($row['session_page'], $param) !== false)
{
$found_arcade = true;
if ($param == 'mode=cat')
{
preg_match('#c=([0-9]+)#', $row['session_page'], $cat_id);
$cat_id = (sizeof($cat_id)) ? (int) $cat_id[1] : 0;
if (!$auth_arcade->acl_get('c_view', $cat_id))
{
$found_arcade = false;
break;
}
$cat_name = $arcade->get_cat_name($cat_id);
$location = sprintf($user->lang[$lang], $cat_name);
$location_url = append_sid("{$phpbb_root_path}arcade.$phpEx", 'mode=cat&c=' . $cat_id);
}
else if ($param == 'mode=download')
{
preg_match('#g=([0-9]+)#', $row['session_page'], $game_id);
$game_id = (sizeof($game_id)) ? (int) $game_id[1] : 0;
$game_name = $arcade->get_game_field($game_id, 'game_name');
if (!$game_name)
{
$found_arcade = false;
break;
}
$location = sprintf($user->lang[$lang], $game_name);
$location_url = append_sid("{$phpbb_root_path}arcade.$phpEx", 'mode=download&g=' . $game_id);
}
else if ($param == 'mode=play' || $param == 'mode=popup')
{
preg_match('#g=([0-9]+)#', $row['session_page'], $game_id);
$game_id = (sizeof($game_id)) ? (int) $game_id[1] : 0;
$game_name = $arcade->get_game_field($game_id, 'game_name');
if (!$game_name)
{
$found_arcade = false;
break;
}
$location = sprintf($user->lang[$lang], $game_name);
$location_url = append_sid("{$phpbb_root_path}arcade.$phpEx", 'mode=play&g=' . $game_id);
}
else if ($param == 'mode=stats')
{
preg_match('#g=([0-9]+)#', $row['session_page'], $game_id);
$game_id = (sizeof($game_id)) ? (int) $game_id[1] : 0;
preg_match('#u=([0-9]+)#', $row['session_page'], $user_id);
$user_id = (sizeof($user_id)) ? (int) $user_id[1] : 0;
if ($game_id && $user_id)
{
$game_name = $arcade->get_game_field($game_id, 'game_name');
if (!$game_name)
{
$found_arcade = false;
break;
}
$user_id_ary[] = $user_id;
$arcade_usernames = array();
user_get_id_name($user_id_ary, $arcade_usernames);
$arcade_username = $arcade_usernames[$user_id];
$location = sprintf($user->lang[$lang . '_GAME_USER'], $game_name, $arcade_username);
$location_url = append_sid("{$phpbb_root_path}arcade.$phpEx", "mode=stats&g=$game_id&u=$user_id");
}
else if ($game_id)
{
$game_name = $arcade->get_game_field($game_id, 'game_name');
if (!$game_name)
{
$found_arcade = false;
break;
}
$location = sprintf($user->lang[$lang . '_GAME'], $game_name);
$location_url = append_sid("{$phpbb_root_path}arcade.$phpEx", "mode=stats&g=$game_id");
}
else if ($user_id)
{
$user_id_ary[] = $user_id;
$arcade_usernames = array();
user_get_id_name($user_id_ary, $arcade_usernames);
$arcade_username = $arcade_usernames[$user_id];
$location = sprintf($user->lang[$lang . '_USER'], $arcade_username);
$location_url = append_sid("{$phpbb_root_path}arcade.$phpEx", "mode=stats&u=$user_id");
}
}
else
{
$location = $user->lang[$lang];
$location_url = append_sid("{$phpbb_root_path}arcade.$phpEx");
}
break;
}
}
if (!$found_arcade)
{
$location = $user->lang['VIEWING_ARCADE'];
$location_url = append_sid("{$phpbb_root_path}arcade.$phpEx");
}
break;
case 'download/file':
$location = $user->lang['DOWNLOADING_FILE'];
$location_url = append_sid("{$phpbb_root_path}index.$phpEx");
break;
case 'report':
$location = $user->lang['REPORTING_POST'];
$location_url = append_sid("{$phpbb_root_path}index.$phpEx");
break;
case 'calendar':
preg_match('#view=([a-z]+)#', $row['session_page'], $on_page);
$calendar_mode = (!empty($on_page[1])) ? $on_page[1] : 'month'; /* if no view is defined - they are viewing the month */
switch ($calendar_mode)
{
case 'month':
$location = $user->lang['VIEWING_CALENDAR_MONTH'];
break;
case 'week':
$location = $user->lang['VIEWING_CALENDAR_WEEK'];
break;
case 'day':
$location = $user->lang['VIEWING_CALENDAR_DAY'];
break;
case 'event':
$location = $user->lang['VIEWING_CALENDAR_EVENT'];
break;
default:
$location = $user->lang['VIEWING_CALENDAR'];
break;
}
$location_url = append_sid("{$phpbb_root_path}".$row['session_page']);
break;
case 'calendarpost':
preg_match('#view=([a-z]+)#', $row['session_page'], $on_page);
$calendar_mode = (!empty($on_page[1])) ? $on_page[1] : 'post'; /* if no view is defined - they are creating a new event */
switch ($calendar_mode)
{
case 'edit':
$location = $user->lang['EDITING_CALENDAR_EVENT'];
break;
case 'post':
default:
$location = $user->lang['CREATING_CALENDAR_EVENT'];
break;
}
$location_url = append_sid("{$phpbb_root_path}".$row['session_page']);
break;
//MOD Advanced Forum Statistics
case 'fs':
$location = $user->lang['VIEWING_FS'];
$location_url = append_sid("{$phpbb_root_path}fs.$phpEx");
break;
//END MOD
// phpBB Gallery integration
case GALLERY_ROOT_PATH:
if (!function_exists('integrate_viewonline'))
{
$gallery_root_path = GALLERY_ROOT_PATH;
include($phpbb_root_path . $gallery_root_path . 'includes/phpbb_integration.' . $phpEx);
}
$on_page[1] = $gallery_on_page[1];
integrate_viewonline ($on_page, $row['session_album_id'], $row['session_page']);
break;
case 'portal':
$user->add_lang('mods/lang_portal');
$location = $user->lang['VIEWING_PORTAL'];
$location_url = append_sid("{$phpbb_root_path}portal.$phpEx");
break;
case 'downloads':
$location = $user->lang['DL_PAGE_DOWNLOADS'];
$location_url = append_sid("{$phpbb_root_path}downloads.$phpEx");
break;
case 'hacks_list':
$location = $user->lang['DL_PAGE_DL_HACKSLIST'];
$location_url = append_sid("{$phpbb_root_path}hacks_list.$phpEx");
break;
case 'videos':
$user->add_lang('mods/dm_video');
$location = $user->lang['DMV_VIEW_VIDEOS'];
$location_url = append_sid("{$phpbb_root_path}dm_video/index.$phpEx");
break;
default:
$location = $user->lang['INDEX'];
$location_url = append_sid("{$phpbb_root_path}index.$phpEx");
break;
}
$avatar_max_dimensions = $avatar_width = $avatar_height = '';
if ( !empty($row['user_avatar']) )
{
$avatar_max_dimensions = 40; // here you can change the max-width you would like to have the avatars displayed, change to 0 to use default
if ( $avatar_max_dimensions )
{
if ( $row['user_avatar_width'] >= $row['user_avatar_height'] )
{
$avatar_width = ( $row['user_avatar_width'] > $avatar_max_dimensions ) ? $avatar_max_dimensions : $row['user_avatar_width'] ;
$avatar_height = ( $avatar_width == $avatar_max_dimensions ) ? round($avatar_max_dimensions / $row['user_avatar_width'] * $row['user_avatar_height']) : $row['user_avatar_height'] ;
}
else
{
$avatar_height = ( $row['user_avatar_height'] > $avatar_max_dimensions ) ? $avatar_max_dimensions : $row['user_avatar_height'] ;
$avatar_width = ( $avatar_height == $avatar_max_dimensions ) ? round($avatar_max_dimensions / $row['user_avatar_height'] * $row['user_avatar_width']) : $row['user_avatar_width'] ;
}
}
else
{
$avatar_height = $row['user_avatar_height'];
$avatar_width = $row['user_avatar_width'];
}
}
$template->assign_block_vars('user_row', array(
'USERNAME' => $row['username'],
'ONLINE_AVATAR' => ( $row['user_avatar'] ) ? get_user_avatar($row['user_avatar'], $row['user_avatar_type'], $avatar_width, $avatar_height) : '',
'USERNAME_COLOUR' => $row['user_colour'],
'USERNAME_FULL' => $username_full,
'LASTUPDATE' => $user->format_date($row['session_time']),
'FORUM_LOCATION' => $location,
'USER_IP' => ($auth->acl_get('a_')) ? (($mode == 'lookup' && $session_id == $row['session_id']) ? gethostbyaddr($row['session_ip']) : $row['session_ip']) : '',
'USER_BROWSER' => ($auth->acl_get('a_user')) ? $row['session_browser'] : '',
'U_USER_PROFILE' => ($row['user_type'] != USER_IGNORE) ? get_username_string('profile', $row['user_id'], '') : '',
'U_USER_IP' => append_sid("{$phpbb_root_path}viewonline.$phpEx", 'mode=lookup' . (($mode != 'lookup' || $row['session_id'] != $session_id) ? '&s=' . $row['session_id'] : '') . "&sg=$show_guests&start=$start&sk=$sort_key&sd=$sort_dir"),
'U_WHOIS' => append_sid("{$phpbb_root_path}viewonline.$phpEx", 'mode=whois&s=' . $row['session_id']),
'U_FORUM_LOCATION' => $location_url,
'S_USER_HIDDEN' => $s_user_hidden,
'S_GUEST' => ($row['user_id'] == ANONYMOUS) ? true : false,
'S_USER_TYPE' => $row['user_type'],
));
}
$db->sql_freeresult($result);
unset($prev_id, $prev_ip);
// Generate reg/hidden/guest online text
$vars_online = array(
'REG' => array('logged_visible_online', 'l_r_user_s'),
'HIDDEN'=> array('logged_hidden_online', 'l_h_user_s'),
'GUEST' => array('guest_counter', 'l_g_user_s')
);
// Set some stats, get posts count from forums data if we... hum... retrieve all forums data
$total_posts = $config['num_posts'];
$total_topics = $config['num_topics'];
$total_users = $config['num_users'];
$total_images = $config['num_images'];
$user->add_lang('mods/info_acp_gallery');
$l_total_image_s = ($total_images == 0) ? 'TOTAL_IMAGES_ZERO' : 'TOTAL_IMAGES_OTHER';
$l_total_user_s = ($total_users == 0) ? 'TOTAL_USERS_ZERO' : 'TOTAL_USERS_OTHER';
$l_total_post_s = ($total_posts == 0) ? 'TOTAL_POSTS_ZERO' : 'TOTAL_POSTS_OTHER';
$l_total_topic_s = ($total_topics == 0) ? 'TOTAL_TOPICS_ZERO' : 'TOTAL_TOPICS_OTHER';
foreach ($vars_online as $l_prefix => $var_ary)
{
switch ($$var_ary[0])
{
case 0:
$$var_ary[1] = $user->lang[$l_prefix . '_USERS_ZERO_ONLINE'];
break;
case 1:
$$var_ary[1] = $user->lang[$l_prefix . '_USER_ONLINE'];
break;
default:
$$var_ary[1] = $user->lang[$l_prefix . '_USERS_ONLINE'];
break;
}
}
unset($vars_online);
$pagination = generate_pagination(append_sid("{$phpbb_root_path}viewonline.$phpEx", "sg=$show_guests&sk=$sort_key&sd=$sort_dir"), $counter, $config['topics_per_page'], $start);
// Grab group details for legend display
if ($auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel'))
{
$sql = 'SELECT group_id, group_name, group_colour, group_type
FROM ' . GROUPS_TABLE . '
WHERE group_legend = 1
ORDER BY group_name ASC';
}
else
{
$sql = 'SELECT g.group_id, g.group_name, g.group_colour, g.group_type
FROM ' . GROUPS_TABLE . ' g
LEFT JOIN ' . USER_GROUP_TABLE . ' ug
ON (
g.group_id = ug.group_id
AND ug.user_id = ' . $user->data['user_id'] . '
AND ug.user_pending = 0
)
WHERE g.group_legend = 1
AND (g.group_type <> ' . GROUP_HIDDEN . ' OR ug.user_id = ' . $user->data['user_id'] . ')
ORDER BY g.group_name ASC';
}
$result = $db->sql_query($sql);
$legend = '';
while ($row = $db->sql_fetchrow($result))
{
if ($row['group_name'] == 'BOTS')
{
$legend .= (($legend != '') ? ', ' : '') . '<span style="color:#' . $row['group_colour'] . '">' . $user->lang['G_BOTS'] . '</span>';
}
else
{
$legend .= (($legend != '') ? ', ' : '') . '<a style="color:#' . $row['group_colour'] . '" href="' . append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group&g=' . $row['group_id']) . '">' . (($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['group_name']] : $row['group_name']) . '</a>';
}
}
$db->sql_freeresult($result);
// Refreshing the page every 60 seconds...
meta_refresh(60, append_sid("{$phpbb_root_path}viewonline.$phpEx", "sg=$show_guests&sk=$sort_key&sd=$sort_dir&start=$start"));
include($phpbb_root_path . 'includes/functions_milestones.' . $phpEx);
$user->add_lang('mods/milestone_congratulations');
// Generate birthday list if required ...
$birthday_list = '';
if ($config['load_birthdays'] && $config['allow_birthdays'])
{
$now = getdate(time() + $user->timezone + $user->dst - date('Z'));
$sql = 'SELECT user_id, username, user_colour, user_birthday
FROM ' . USERS_TABLE . "
WHERE user_birthday LIKE '" . $db->sql_escape(sprintf('%2d-%2d-', $now['mday'], $now['mon'])) . "%'
AND user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ')';
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$birthday_list .= (($birthday_list != '') ? ', ' : '') . get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']);
if ($age = (int) substr($row['user_birthday'], -4))
{
$birthday_list .= ' (' . ($now['year'] - $age) . ')';
}
}
$db->sql_freeresult($result);
}
// Send data to template
$template->assign_vars(array(
'BIRTHDAY_LIST' => $birthday_list,
'LEGEND' => $legend,
'MILESTONE_INFO' => milestone_info(),
'MILESTONE_MESSAGE' => milestone_message(),
'MILESTONE_HISTORY' => milestone_history(),
'NEWEST_USER' => sprintf($user->lang['NEWEST_USER'], get_username_string('full', $config['newest_user_id'], $config['newest_username'], $config['newest_user_colour'])),
'TOTAL_REGISTERED_USERS_ONLINE' => sprintf($l_r_user_s, $logged_visible_online) . sprintf($l_h_user_s, $logged_hidden_online),
'TOTAL_GUEST_USERS_ONLINE' => sprintf($l_g_user_s, $guest_counter),
'TOTAL_IMAGES' => ($config['gallery_total_images']) ? sprintf($user->lang[$l_total_image_s], $total_images) : '',
'TOTAL_POSTS' => sprintf($user->lang[$l_total_post_s], $total_posts),
'TOTAL_TOPICS' => sprintf($user->lang[$l_total_topic_s], $total_topics),
'TOTAL_USERS' => sprintf($user->lang[$l_total_user_s], $total_users),
'LEGEND' => $legend,
'PAGINATION' => $pagination,
'PAGE_NUMBER' => on_page($counter, $config['topics_per_page'], $start),
'U_SORT_USERNAME' => append_sid("{$phpbb_root_path}viewonline.$phpEx", 'sk=a&sd=' . (($sort_key == 'a' && $sort_dir == 'a') ? 'd' : 'a') . '&sg=' . ((int) $show_guests)),
'U_SORT_UPDATED' => append_sid("{$phpbb_root_path}viewonline.$phpEx", 'sk=b&sd=' . (($sort_key == 'b' && $sort_dir == 'a') ? 'd' : 'a') . '&sg=' . ((int) $show_guests)),
'U_SORT_LOCATION' => append_sid("{$phpbb_root_path}viewonline.$phpEx", 'sk=c&sd=' . (($sort_key == 'c' && $sort_dir == 'a') ? 'd' : 'a') . '&sg=' . ((int) $show_guests)),
//MOD Advanced Forum Statistics
'U_STATISTICS' => ((!$auth->acl_get('u_viewfs') || $user->data['is_bot'])) ? $user->lang['STATISTICS'] : "<a href=\"{$phpbb_root_path}fs.$phpEx\">" . $user->lang['STATISTICS'] . '</a>',
//END MOD
'U_SWITCH_GUEST_DISPLAY' => append_sid("{$phpbb_root_path}viewonline.$phpEx", 'sg=' . ((int) !$show_guests)),
'L_SWITCH_GUEST_DISPLAY' => ($show_guests) ? $user->lang['HIDE_GUESTS'] : $user->lang['DISPLAY_GUESTS'],
'S_SWITCH_GUEST_DISPLAY' => ($config['load_online_guests']) ? true : false)
);
// We do not need to load the who is online box here. ;)
$config['load_online'] = false;
if (!function_exists('display_who_was_here'))
{
include($phpbb_root_path . 'includes/functions_wwh.' . $phpEx);
}
display_who_was_here();
// Output the page
page_header($user->lang['WHO_IS_ONLINE']);
$template->set_filenames(array(
'body' => 'viewonline_body.html')
);
make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
page_footer();
?>