Seite 125 von 153

Re: [Final] NV "Who Was Here?" 1.0.2

Verfasst: 31.10.2009 01:47
von Springfield
Danke dir NV für die schnelle Hilfe, aber nun möchte er nicht mehr zählen :-?

[ externes Bild ]

Dateien von 1.0.1 auf 1.0.2 wurden getauscht. Die /install/index.php wurde auch korrekt ausgeführt und es wurde kein Fehler angezeigt.

Re: [Final] NV "Who Was Here?" 1.0.2

Verfasst: 31.10.2009 02:17
von nickvergessen
includes/functions.php nicht bearbeitet?

Re: [Final] NV "Who Was Here?" 1.0.2

Verfasst: 31.10.2009 02:33
von Springfield
Doch doch. Die includes/functions.php ist bearbeitet. Habe nur das Update gemacht und vorher hat es ja auch geklappt. Die includes/functions.php muss beim Update ja nicht nochmal bearbeitet werden. Habe dennoch gerade nochmal geprüft und die Zeilen sind ordnungsgemäss vorhanden.
Ich bin deine komplette install nochmal durchgegangen und keinen Fehler mit meinen Dateien finden können.
Meinst du, es könnte eventuell daran liegen, dass ich das MOD in der viewonline.php ausführe?

Re: [Final] NV "Who Was Here?" 1.0.2

Verfasst: 31.10.2009 10:01
von nickvergessen
Nun, also wenn du die viewonline.php und die template datei dafür richtig bearbeitest sollte es dort auch gehen...

Re: [Final] NV "Who Was Here?" 1.0.2

Verfasst: 04.11.2009 00:59
von Springfield
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();

?>

Re: [Final] NV "Who Was Here?" 1.0.2

Verfasst: 04.11.2009 01:30
von nickvergessen
schiebs testweise mal über:

Code: Alles auswählen

$config['load_online'] = false;

Re: [Final] NV "Who Was Here?" 1.0.2

Verfasst: 04.11.2009 02:14
von Springfield
Nein, leider keine Änderung :(

Re: [Final] NV "Who Was Here?" 1.0.2

Verfasst: 24.11.2009 10:13
von DreamPromise
Moin moin

ich hab diese MOD schon seit langer Zeit drin.
Was mich daran immer gestört hat sind die User die nach der Anmeldung gelöscht wurden.
Die erscheinen immer noch in der Liste.
Gibt es dann da schon eine Abhilfe ??

Danke

Re: [Final] NV "Who Was Here?" 1.0.2

Verfasst: 24.11.2009 15:58
von nickvergessen
Die sollten ja nach einem Tag wieder drausen sein.
Man könnte das machen, genauso den Namen farblich anpassen wenn die Gruppe geändert wird oder einen Benutzer umbenannt wird. Mir war der Aufwand den Effekt nicht wert.

Zum löschen:
includes/functions_users.php:
finde (circa Zeile 530):

Code: Alles auswählen

$table_ary = array(USERS_TABLE, USER_GROUP_TABLE, TOPICS_WATCH_TABLE, FORUMS_WATCH_TABLE, ACL_USERS_TABLE, TOPICS_TRACK_TABLE, TOPICS_POSTED_TABLE, FORUMS_TRACK_TABLE, PROFILE_FIELDS_DATA_TABLE, MODERATOR_CACHE_TABLE, DRAFTS_TABLE, BOOKMARKS_TABLE, SESSIONS_KEYS_TABLE);
danach in neuer Zeile einfügen:

Code: Alles auswählen

$table_ary = array_merge($table_ary, array(WWH_TABLE));

Re: [Final] NV "Who Was Here?" 1.0.2

Verfasst: 27.11.2009 09:06
von DreamPromise
Moin moin

funktioniert leider nicht.

Danke