[Final] NV "Who Was Here?" 1.2.1

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Springfield
Mitglied
Beiträge: 29
Registriert: 17.04.2008 18:04
Wohnort: Erftstadt

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

Beitrag 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.
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

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

Beitrag von nickvergessen »

includes/functions.php nicht bearbeitet?
kein Support per PN
Springfield
Mitglied
Beiträge: 29
Registriert: 17.04.2008 18:04
Wohnort: Erftstadt

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

Beitrag 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?
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

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

Beitrag von nickvergessen »

Nun, also wenn du die viewonline.php und die template datei dafür richtig bearbeitest sollte es dort auch gehen...
kein Support per PN
Springfield
Mitglied
Beiträge: 29
Registriert: 17.04.2008 18:04
Wohnort: Erftstadt

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

Beitrag 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();

?>
Zuletzt geändert von Springfield am 04.11.2009 02:15, insgesamt 1-mal geändert.
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

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

Beitrag von nickvergessen »

schiebs testweise mal über:

Code: Alles auswählen

$config['load_online'] = false;
kein Support per PN
Springfield
Mitglied
Beiträge: 29
Registriert: 17.04.2008 18:04
Wohnort: Erftstadt

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

Beitrag von Springfield »

Nein, leider keine Änderung :(
Benutzeravatar
DreamPromise
Mitglied
Beiträge: 3793
Registriert: 27.01.2004 17:56

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

Beitrag 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
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

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

Beitrag 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));
kein Support per PN
Benutzeravatar
DreamPromise
Mitglied
Beiträge: 3793
Registriert: 27.01.2004 17:56

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

Beitrag von DreamPromise »

Moin moin

funktioniert leider nicht.

Danke
Antworten

Zurück zu „[3.0.x] Mods in Entwicklung“