Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.5 > vBulletin 3.5 Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Browser on Who's Online Details »»
Browser on Who's Online
Version: 1.0.2, by derekivey derekivey is offline
Developer Last Online: Jan 2010 Show Printable Version Email this Page

Version: 3.5.5 Rating:
Released: 12-28-2005 Last Update: 03-01-2006 Installs: 79
DB Changes Uses Plugins Template Edits
Code Changes Additional Files  
No support by the author.

Browser on Who's Online
Developers: derekivey
Version: 1.0.2
vBulletin Version: 3.5.5 (3.6.0 version available here)
File Edits: 2
Template Edits: 1
New Phrases: 8
Uses Plugins: Yes
Difficulty: Easy

Description: This hack will show each user's browser in the Who's Online Box beside their name. It supports IE, Firefox, Opera, Camino, Safari, Konqueror, and Netscape. If the user is using a browser that is unsupported with this hack, it will show a Question mark icon, which means its an Unknown browser.

*** I Strongly Recommend That You Backup Before Installing/Upgrading This Hack! ***

Planned features for a later release:
  • Add support for more browsers.
  • Add browser to online.php
  • Show only 1 image for each browser when there is more than 1 person with that browser.
  • Whatever is suggested.
Features/Changes in Version 1.0.2:
  • Fixed SQL bug
Features/Changes in Version 1.0.1:
  • Moved browsers to session table.
  • Removed 'Unknown' from being stored in database, replaced it with Psionic Vision's suggestion.
This was a hack request by ReadOrDie.

Note: If you are using vBadvanced CMPS, please follow 350Chevy's post to get this hack working on it, if you want to show their browser on the CMPS' Who's Online.

I have added screen shots of this hack in action below.

Please click If you installed this hack.

Thanks!

Supporters / CoAuthors

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #162  
Old 04-30-2006, 05:10 PM
saba saba is offline
 
Join Date: Oct 2005
Location: Lebanon,Tripoli
Posts: 59
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

i edit all that stuff but i just get that database error

here my index.php code it seems right to me

Code:
<?php
/*======================================================================*\
|| #################################################################### ||
|| # vBulletin 3.5.4 - Licence Number ***********
|| # ---------------------------------------------------------------- # ||
|| # Copyright ?2000-2006 Jelsoft Enterprises Ltd. All Rights Reserved. ||
|| # This file may not be redistributed in whole or significant part. # ||
|| # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # ||
|| # http://www.vbulletin.com | http://www.vbulletin.com/license.html # ||
|| #################################################################### ||
\*======================================================================*/

// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);

// #################### DEFINE IMPORTANT CONSTANTS #######################
define('THIS_SCRIPT', 'index');

// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array('holiday','adv_gallery');

// get special data templates from the datastore
$specialtemplates = array(
	'userstats',
	'birthdaycache',
	'maxloggedin',
	'iconcache',
	'eventcache',
	'mailqueue',  
                'gallery_c_cache',  
               ' adv_gallery_opt',  
                'gallery_ugroups
');              

// pre-cache templates used by all actions
$globaltemplates = array(
	'FORUMHOME',
	'forumhome_event',
	'forumhome_forumbit_level1_nopost',
	'forumhome_forumbit_level1_post',
	'forumhome_forumbit_level2_nopost',
	'forumhome_forumbit_level2_post',
	'forumhome_lastpostby',
	'forumhome_loggedinuser',
	'forumhome_moderator',
	'forumhome_pmloggedin',
	'forumhome_subforumbit_nopost',
	'forumhome_subforumbit_post',
	'forumhome_subforumseparator_nopost',
	'forumhome_subforumseparator_post'
);

// pre-cache templates used by specific actions
$actiontemplates = array();

// ######################### REQUIRE BACK-END ############################
require_once('./global.php');
require_once(DIR . '/includes/functions_bigthree.php');
require_once(DIR . '/includes/functions_forumlist.php');

// #######################################################################
// ######################## START MAIN SCRIPT ############################
// #######################################################################

($hook = vBulletinHook::fetch_hook('forumhome_start')) ? eval($hook) : false;

// get permissions to view forumhome
if (!($permissions['forumpermissions'] & $vbulletin->bf_ugp_forumpermissions['canview']))
{
	print_no_permission();
}

if (empty($foruminfo['forumid']))
{
	// show all forums
	$forumid = -1;
}
else
{
	// check forum permissions
	$_permsgetter_ = 'index';
	$forumperms = fetch_permissions($foruminfo['forumid']);

	if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canview']))
	{
		print_no_permission();
	}

	// check if there is a forum password and if so, ensure the user has it set
	verify_forum_password($foruminfo['forumid'], $foruminfo['password']);

	// draw nav bar
	$navbits = array();
	$parentlist = array_reverse(explode(',', substr($foruminfo['parentlist'], 0, -3)));
	foreach ($parentlist AS $forumID)
	{
		$forumTitle =& $vbulletin->forumcache["$forumID"]['title'];
		$navbits['forumdisplay.php?' . $vbulletin->session->vars['sessionurl'] . "f=$forumID"] = $forumTitle;
	}

	// pop the last element off the end of the $nav array so that we can show it without a link
	array_pop($navbits);

	$navbits[''] = $foruminfo['title'];
	$navbits = construct_navbits($navbits);
}

$today = vbdate('Y-m-d', TIMENOW, false, false);

// ### TODAY'S BIRTHDAYS #################################################
if ($vbulletin->options['showbirthdays'])
{
	if (!is_array($vbulletin->birthdaycache) OR ($today != $vbulletin->birthdaycache['day1'] AND $today != $vbulletin->birthdaycache['day2']))
	{
		// Need to update!
		require_once(DIR . '/includes/functions_databuild.php');
		$birthdaystore = build_birthdays();
		DEVDEBUG('Updated Birthdays');
	}
	else
	{
		$birthdaystore = $vbulletin->birthdaycache;
	}

	switch ($today)
	{
		case $birthdaystore['day1']:
			$birthdays = $birthdaystore['users1'];
			break;

		case $birthdaystore['day2']:
			$birthdays = $birthdaystore['users2'];
			break;
	}
	// memory saving
	unset($birthdaystore);

	if ($stylevar['dirmark'])
	{
		$birthdays = str_replace('<!--rlm-->', $stylevar['dirmark'], $birthdays);
	}

	$show['birthdays'] = iif ($birthdays, true, false);
}
else
{
	$show['birthdays'] = false;
}

// ### TODAY'S EVENTS #################################################
if ($vbulletin->options['showevents'])
{
	require_once(DIR . '/includes/functions_calendar.php');

	$future = gmdate('n-j-Y' , TIMENOW + 86400 * $vbulletin->options['showevents']);

	if (!is_array($vbulletin->eventcache) OR $future != $vbulletin->eventcache['date'])
	{
		// Need to update!
		require_once(DIR . '/includes/functions_databuild.php');
		$eventstore = build_events();
		DEVDEBUG('Updated Events');
	}
	else
	{
		$eventstore = $vbulletin->eventcache;
	}

	unset($eventstore['date']);
	$events = array();
	$eventcount = 0;
	foreach ($eventstore AS $eventid => $eventinfo)
	{
		$offset = $eventinfo['utc'] ? $vbulletin->userinfo['timezoneoffset'] : ($vbulletin->userinfo['timezoneoffset'] ? $vbulletin->userinfo['tzoffset'] : $vbulletin->userinfo['timezoneoffset']);
		$eventstore["$eventid"]['dateline_from_user'] = $eventinfo['dateline_from_user'] = $eventinfo['dateline_from'] + $offset * 3600;
		$eventstore["$eventid"]['dateline_to_user'] = $eventinfo['dateline_to_user'] = $eventinfo['dateline_to'] + $offset * 3600;
		$gettime = TIMENOW - $vbulletin->options['hourdiff'];
		$iterations = 0;
		$todaydate = getdate($gettime);

		if ($vbulletin->userinfo['calendarpermissions']["$eventinfo[calendarid]"] & $vbulletin->bf_ugp_calendarpermissions['canviewcalendar'] OR ($eventinfo['holidayid'] AND $vbulletin->options['showholidays']))
		{
			if ($eventinfo['userid'] == $vbulletin->userinfo['userid'] OR $vbulletin->userinfo['calendarpermissions']["$eventinfo[calendarid]"] & $vbulletin->bf_ugp_calendarpermissions['canviewothersevent'] OR ($eventinfo['holidayid'] AND $vbulletin->options['showholidays']))
			{
				if (!$eventinfo['recurring'] AND !$vbulletin->options['showeventtype'] AND !$eventinfo['singleday'] AND cache_event_info($eventinfo, $todaydate['mon'], $todaydate['mday'], $todaydate['year']))
				{
					$events["$eventid"][] = $gettime;
				}
				else
				{
					while ($iterations < $vbulletin->options['showevents'])
					{
						$addcache = false;

						$todaydate = getdate($gettime);
						if ($eventinfo['holidayid'] AND $eventinfo['recurring'] == 6)
						{
							if ($eventinfo['recuroption'] == "$todaydate[mon]|$todaydate[mday]")
							{
								$addcache = true;
							}
						}
						else if (cache_event_info($eventinfo, $todaydate['mon'], $todaydate['mday'], $todaydate['year']))
						{
							$addcache = true;
						}



						if ($addcache)
						{
							if (!$vbulletin->options['showeventtype'])
							{
								$events["$eventid"][] = $gettime;
							}
							else
							{
								$events["$gettime"][] = $eventid;
							}
							$eventcount++;
						}

						$iterations++;
						$gettime += 86400;
					}
				}
			}
		}
	}

	if (!empty($events))
	{
		if ($vbulletin->options['showeventtype'])
		{
			ksort($events, SORT_NUMERIC);
		}
		else
		{
			function groupbyevent($a, $b)
			{
				if ($a[0] == $b[0]) { return 0; }
				else { return ($a[0] < $b[0]) ? -1 : 1; }
			}
			uasort($events, 'groupbyevent');
		}

		foreach($events AS $index => $value)
		{
			$pastevent = 0;
			$pastcount = 0;

			$comma = $eventdates = $daysevents = '';
			if (!$vbulletin->options['showeventtype'])
			{	// Group by Event // $index = $eventid
				$eventinfo = $eventstore["$index"];
				if (empty($eventinfo['recurring']) AND empty($eventinfo['singleday']))
				{	// ranged event -- show it from its real start and real end date (vbgmdate)
					$eventdates = construct_phrase($vbphrase['event_x_to_y'], vbdate($vbulletin->options['dateformat'], $eventinfo['dateline_from_user'], false, true, false, true), vbdate($vbulletin->options['dateformat'], $eventinfo['dateline_to_user'], false, true, false, true));
					$day = vbdate('Y-n-j', $eventinfo['dateline_from_user'], false, false);
				}
				else
				{
					unset($day);
					foreach($value AS $key => $dateline)
					{
						if (($dateline - 86400) == $pastevent AND !$eventinfo['holidayid'])
						{
							$pastevent = $dateline;
							$pastcount++;
							continue;
						}
						else
						{
							if ($pastcount)
							{
								$eventdates = construct_phrase($vbphrase['event_x_to_y'], $eventdates, vbdate($vbulletin->options['dateformat'], $pastevent, false, true, false));
							}
							$pastcount = 0;
							$pastevent = $dateline;
						}
						if (!$day)
						{
							$day = vbdate('Y-n-j', $dateline, false, false, false);
						}
						$eventdates .= $comma . vbdate($vbulletin->options['dateformat'], $dateline, false, true, false);
						$comma = ', ';
					}
					if ($pastcount)
					{
						$eventdates = construct_phrase($vbphrase['event_x_to_y'], $eventdates, vbdate($vbulletin->options['dateformat'], $pastevent, false, true, false));
					}
				}

				if ($eventinfo['holidayid'])
				{
					$callink = '<a href="calendar.php?' . $vbulletin->session->vars['sessionurl'] . "do=getinfo&amp;day=$day\">" . $vbphrase['holiday_title_' . $eventinfo['varname']] . "</a>";
				}
				else
				{
					$callink = '<a href="calendar.php?' . $vbulletin->session->vars['sessionurl'] . "do=getinfo&amp;day=$day&amp;e=$eventinfo[eventid]&amp;c=$eventinfo[calendarid]\">$eventinfo[title]</a>";
				}
			}
			else
			{	// Group by Date
				$eventdate = vbdate($vbulletin->options['dateformat'], $index, false, true, false);

				$day = vbdate('Y-n-j', $index, false, true, false);
				foreach($value AS $key => $eventid)
				{
					$eventinfo = $eventstore["$eventid"];
					if ($eventinfo['holidayid'])
					{
						$daysevents .= $comma . '<a href="calendar.php?' . $vbulletin->session->vars['sessionurl'] . "do=getinfo&amp;day=$day\">" . $vbphrase['holiday_title_' . $eventinfo['varname']] . "</a>";
					}
					else
					{
						$daysevents .= $comma . '<a href="calendar.php?' . $vbulletin->session->vars['sessionurl'] . "do=getinfo&amp;day=$day&amp;e=$eventinfo[eventid]&amp;c=$eventinfo[calendarid]\">$eventinfo[title]</a>";
					}
					$comma = ', ';
				}
			}

			($hook = vBulletinHook::fetch_hook('forumhome_event')) ? eval($hook) : false;
			eval('$upcomingevents .= "' . fetch_template('forumhome_event') . '";');
		}
		// memory saving
		unset($events, $eventstore);
	}
	$show['upcomingevents'] = iif ($upcomingevents, true, false);
	$show['todaysevents'] = iif ($vbulletin->options['showevents'] == 1, true, false);
}
else
{
	$show['upcomingevents'] = false;
}

// ### LOGGED IN USERS #################################################
$activeusers = '';
if ($vbulletin->options['displayloggedin'] AND !$show['search_engine'])
{
	$datecut = TIMENOW - $vbulletin->options['cookietimeout'];
	$numbervisible = 0;
	$numberregistered = 0;
	$numberguest = 0;

	$forumusers = $db->query_read("
		SELECT
			user.username, (user.options & " . $vbulletin->bf_misc_useroptions['invisible'] . ") AS invisible, user.usergroupid,
			session.userid,session.browser, session.inforum, session.lastactivity,
			IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid
		FROM " . TABLE_PREFIX . "session AS session
		LEFT JOIN " . TABLE_PREFIX . "user AS user ON(user.userid = session.userid)
		WHERE session.lastactivity > $datecut
		" . iif($vbulletin->options['displayloggedin'] == 1, "ORDER BY username ASC") . "
	");

	if ($vbulletin->userinfo['userid'])
	{
		// fakes the user being online for an initial page view of index.php
		$vbulletin->userinfo['joingroupid'] = iif($vbulletin->userinfo['displaygroupid'], $vbulletin->userinfo['displaygroupid'], $vbulletin->userinfo['usergroupid']);
		$userinfos = array
		(
			$vbulletin->userinfo['userid'] => array
			(
				'userid' => $vbulletin->userinfo['userid'],
				'username' => $vbulletin->userinfo['username'],'browser' => $vbulletin->session->vars['browser'],
				'invisible' => $vbulletin->userinfo['invisible'],
				'inforum' => 0,
				'lastactivity' => TIMENOW,
				'usergroupid' => $vbulletin->userinfo['usergroupid'],
				'displaygroupid' => $vbulletin->userinfo['displaygroupid'],
			)
		);
	}
	else
	{
		$userinfos = array();
	}
	$inforum = array();

	while ($loggedin = $db->fetch_array($forumusers))
	{
		$userid = $loggedin['userid'];
		if (!$userid)
		{	// Guest
			$numberguest++;
			$inforum["$loggedin[inforum]"]++;
		}
		else if (empty($userinfos["$userid"]) OR ($userinfos["$userid"]['lastactivity'] < $loggedin['lastactivity']))
		{
			$userinfos["$userid"] = $loggedin;
		}
	}

	if (!$vbulletin->userinfo['userid'] AND $numberguest == 0)
	{
		$numberguest++;
	}

	foreach ($userinfos AS $userid => $loggedin)
	{
		$numberregistered++;
		if ($userid != $vbulletin->userinfo['userid'])
		{
			$inforum["$loggedin[inforum]"]++;
		}
		$loggedin['musername'] = fetch_musername($loggedin);

		($hook = vBulletinHook::fetch_hook('forumhome_loggedinuser')) ? eval($hook) : false;

		if (fetch_online_status($loggedin))
		{
			$numbervisible++;
			eval('$activeusers .= ", ' . fetch_template('forumhome_loggedinuser') . '";');
		}
	}

	// memory saving
	unset($userinfos, $loggedin);

	$activeusers = substr($activeusers, 2); // get rid of initial comma

	$db->free_result($forumusers);

	$totalonline = $numberregistered + $numberguest;
	$numberinvisible = $numberregistered - $numbervisible;

	// ### MAX LOGGEDIN USERS ################################
	if (intval($vbulletin->maxloggedin['maxonline']) <= $totalonline)
	{
		$vbulletin->maxloggedin['maxonline'] = $totalonline;
		$vbulletin->maxloggedin['maxonlinedate'] = TIMENOW;
		build_datastore('maxloggedin', serialize($vbulletin->maxloggedin));
	}

	$recordusers = vb_number_format($vbulletin->maxloggedin['maxonline']);;
	$recorddate = vbdate($vbulletin->options['dateformat'], $vbulletin->maxloggedin['maxonlinedate'], true);
	$recordtime = vbdate($vbulletin->options['timeformat'], $vbulletin->maxloggedin['maxonlinedate']);

	$show['loggedinusers'] = true;
}
else
{
	$show['loggedinusers'] = false;
}

// ### GET FORUMS & MODERATOR iCACHES ########################
cache_ordered_forums(1);
if ($vbulletin->options['showmoderatorcolumn'])
{
	cache_moderators();
}
else
{
	cache_moderators($vbulletin->userinfo['userid']);
}

// define max depth for forums display based on $vbulletin->options[forumhomedepth]
define('MAXFORUMDEPTH', $vbulletin->options['forumhomedepth']);

$forumbits = construct_forum_bit($forumid);

// ### BOARD STATISTICS #################################################

// get total threads & posts from the forumcache
$totalthreads = 0;
$totalposts = 0;
if (is_array($vbulletin->forumcache))
{
	foreach ($vbulletin->forumcache AS $forum)
	{
		$totalthreads += $forum['threadcount'];
		$totalposts += $forum['replycount'];
	}
}
$totalthreads = vb_number_format($totalthreads);
$totalposts = vb_number_format($totalposts);

// get total members and newest member from template
$numbermembers = vb_number_format($vbulletin->userstats['numbermembers']);
$newusername = $vbulletin->userstats['newusername'];
$newuserid = $vbulletin->userstats['newuserid'];
$activemembers = vb_number_format($vbulletin->userstats['activemembers']);
$show['activemembers'] = ($vbulletin->options['activememberdays'] > 0 AND ($vbulletin->options['activememberoptions'] & 2)) ? true : false;

// ### ALL DONE! SPIT OUT THE HTML AND LET'S GET OUTTA HERE... ###
($hook = vBulletinHook::fetch_hook('forumhome_complete')) ? eval($hook) : false;

eval('$navbar = "' . fetch_template('navbar') . '";');
eval('print_output("' . fetch_template('FORUMHOME') . '");');

/*======================================================================*\
|| ####################################################################
|| # Downloaded: 04:57, Sun Feb 26th 2006
|| # CVS: $RCSfile: index.php,v $ - $Revision: 1.172.2.3 $
|| ####################################################################
\*======================================================================*/
?>
Reply With Quote
  #163  
Old 05-01-2006, 12:18 PM
bashy bashy is offline
 
Join Date: Nov 2005
Posts: 2,544
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hi

I am trying to uninstall this but i get
Code:
Database error in vBulletin 3.5.4:

Invalid SQL:
ALTER TABLE `session` DROP `browser`;;

MySQL Error  : Can't DROP 'browser'; check that column/key exists
Error Number : 1091
Date         : Monday, May 1st 2006 @ 07:17:07 AM
Script       : http://www.bashys-place.com/forums/admincp/plugin.php
Referrer     : http://www.bashys-place.com/forums/admincp/plugin.php?do=pr
Please advise?
Reply With Quote
  #164  
Old 05-01-2006, 12:47 PM
Tyegurl's Avatar
Tyegurl Tyegurl is offline
 
Join Date: Mar 2006
Location: NY
Posts: 480
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by 350Chevy
Looks good.. One problem though, vBAdvanced CMPS v2.0.0 needed to be modified as well if you use it and would like it to show properly on your home page.

For those who use vbAdvanced and would like it to work for your home page do the following.

in /modules/onlineusers.php find:

Code:
			SELECT session.userid, username, usergroupid, (user.options & " . $vbulletin->bf_misc_useroptions['invisible'] . ") AS invisible, IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid
and replace it with:

Code:
			SELECT session.userid, session.browser, username, usergroupid, (user.options & " . $vbulletin->bf_misc_useroptions['invisible'] . ") AS invisible, IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid
again in /modules/onlineusers.php find:

Code:
				'username' => $vbulletin->userinfo['username'],
add after:

Code:
				'browser' => $vbulletin->session->vars['browser'],
That should do it.

* Clicks install.

thanks so much! didn't see this post had been added...hoped to get an update email when this had been fixed! but thanks it worked perfect
Reply With Quote
  #165  
Old 05-01-2006, 06:54 PM
derekivey derekivey is offline
 
Join Date: Apr 2005
Location: Pennsylvania, USA
Posts: 1,186
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by saba
i edit all that stuff but i just get that database error

here my index.php code it seems right to me

Code:
<?php
/*======================================================================*\
|| #################################################################### ||
|| # vBulletin 3.5.4 - Licence Number ***********
|| # ---------------------------------------------------------------- # ||
|| # Copyright ?2000-2006 Jelsoft Enterprises Ltd. All Rights Reserved. ||
|| # This file may not be redistributed in whole or significant part. # ||
|| # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # ||
|| # http://www.vbulletin.com | http://www.vbulletin.com/license.html # ||
|| #################################################################### ||
\*======================================================================*/
 
// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);
 
// #################### DEFINE IMPORTANT CONSTANTS #######################
define('THIS_SCRIPT', 'index');
 
// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array('holiday','adv_gallery');
 
// get special data templates from the datastore
$specialtemplates = array(
    'userstats',
    'birthdaycache',
    'maxloggedin',
    'iconcache',
    'eventcache',
    'mailqueue',  
                'gallery_c_cache',  
               ' adv_gallery_opt',  
                'gallery_ugroups
');              
 
// pre-cache templates used by all actions
$globaltemplates = array(
    'FORUMHOME',
    'forumhome_event',
    'forumhome_forumbit_level1_nopost',
    'forumhome_forumbit_level1_post',
    'forumhome_forumbit_level2_nopost',
    'forumhome_forumbit_level2_post',
    'forumhome_lastpostby',
    'forumhome_loggedinuser',
    'forumhome_moderator',
    'forumhome_pmloggedin',
    'forumhome_subforumbit_nopost',
    'forumhome_subforumbit_post',
    'forumhome_subforumseparator_nopost',
    'forumhome_subforumseparator_post'
);
 
// pre-cache templates used by specific actions
$actiontemplates = array();
 
// ######################### REQUIRE BACK-END ############################
require_once('./global.php');
require_once(DIR . '/includes/functions_bigthree.php');
require_once(DIR . '/includes/functions_forumlist.php');
 
// #######################################################################
// ######################## START MAIN SCRIPT ############################
// #######################################################################
 
($hook = vBulletinHook::fetch_hook('forumhome_start')) ? eval($hook) : false;
 
// get permissions to view forumhome
if (!($permissions['forumpermissions'] & $vbulletin->bf_ugp_forumpermissions['canview']))
{
    print_no_permission();
}
 
if (empty($foruminfo['forumid']))
{
    // show all forums
    $forumid = -1;
}
else
{
    // check forum permissions
    $_permsgetter_ = 'index';
    $forumperms = fetch_permissions($foruminfo['forumid']);
 
    if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canview']))
    {
        print_no_permission();
    }
 
    // check if there is a forum password and if so, ensure the user has it set
    verify_forum_password($foruminfo['forumid'], $foruminfo['password']);
 
    // draw nav bar
    $navbits = array();
    $parentlist = array_reverse(explode(',', substr($foruminfo['parentlist'], 0, -3)));
    foreach ($parentlist AS $forumID)
    {
        $forumTitle =& $vbulletin->forumcache["$forumID"]['title'];
        $navbits['forumdisplay.php?' . $vbulletin->session->vars['sessionurl'] . "f=$forumID"] = $forumTitle;
    }
 
    // pop the last element off the end of the $nav array so that we can show it without a link
    array_pop($navbits);
 
    $navbits[''] = $foruminfo['title'];
    $navbits = construct_navbits($navbits);
}
 
$today = vbdate('Y-m-d', TIMENOW, false, false);
 
// ### TODAY'S BIRTHDAYS #################################################
if ($vbulletin->options['showbirthdays'])
{
    if (!is_array($vbulletin->birthdaycache) OR ($today != $vbulletin->birthdaycache['day1'] AND $today != $vbulletin->birthdaycache['day2']))
    {
        // Need to update!
        require_once(DIR . '/includes/functions_databuild.php');
        $birthdaystore = build_birthdays();
        DEVDEBUG('Updated Birthdays');
    }
    else
    {
        $birthdaystore = $vbulletin->birthdaycache;
    }
 
    switch ($today)
    {
        case $birthdaystore['day1']:
            $birthdays = $birthdaystore['users1'];
            break;
 
        case $birthdaystore['day2']:
            $birthdays = $birthdaystore['users2'];
            break;
    }
    // memory saving
    unset($birthdaystore);
 
    if ($stylevar['dirmark'])
    {
        $birthdays = str_replace('<!--rlm-->', $stylevar['dirmark'], $birthdays);
    }
 
    $show['birthdays'] = iif ($birthdays, true, false);
}
else
{
    $show['birthdays'] = false;
}
 
// ### TODAY'S EVENTS #################################################
if ($vbulletin->options['showevents'])
{
    require_once(DIR . '/includes/functions_calendar.php');
 
    $future = gmdate('n-j-Y' , TIMENOW + 86400 * $vbulletin->options['showevents']);
 
    if (!is_array($vbulletin->eventcache) OR $future != $vbulletin->eventcache['date'])
    {
        // Need to update!
        require_once(DIR . '/includes/functions_databuild.php');
        $eventstore = build_events();
        DEVDEBUG('Updated Events');
    }
    else
    {
        $eventstore = $vbulletin->eventcache;
    }
 
    unset($eventstore['date']);
    $events = array();
    $eventcount = 0;
    foreach ($eventstore AS $eventid => $eventinfo)
    {
        $offset = $eventinfo['utc'] ? $vbulletin->userinfo['timezoneoffset'] : ($vbulletin->userinfo['timezoneoffset'] ? $vbulletin->userinfo['tzoffset'] : $vbulletin->userinfo['timezoneoffset']);
        $eventstore["$eventid"]['dateline_from_user'] = $eventinfo['dateline_from_user'] = $eventinfo['dateline_from'] + $offset * 3600;
        $eventstore["$eventid"]['dateline_to_user'] = $eventinfo['dateline_to_user'] = $eventinfo['dateline_to'] + $offset * 3600;
        $gettime = TIMENOW - $vbulletin->options['hourdiff'];
        $iterations = 0;
        $todaydate = getdate($gettime);
 
        if ($vbulletin->userinfo['calendarpermissions']["$eventinfo[calendarid]"] & $vbulletin->bf_ugp_calendarpermissions['canviewcalendar'] OR ($eventinfo['holidayid'] AND $vbulletin->options['showholidays']))
        {
            if ($eventinfo['userid'] == $vbulletin->userinfo['userid'] OR $vbulletin->userinfo['calendarpermissions']["$eventinfo[calendarid]"] & $vbulletin->bf_ugp_calendarpermissions['canviewothersevent'] OR ($eventinfo['holidayid'] AND $vbulletin->options['showholidays']))
            {
                if (!$eventinfo['recurring'] AND !$vbulletin->options['showeventtype'] AND !$eventinfo['singleday'] AND cache_event_info($eventinfo, $todaydate['mon'], $todaydate['mday'], $todaydate['year']))
                {
                    $events["$eventid"][] = $gettime;
                }
                else
                {
                    while ($iterations < $vbulletin->options['showevents'])
                    {
                        $addcache = false;
 
                        $todaydate = getdate($gettime);
                        if ($eventinfo['holidayid'] AND $eventinfo['recurring'] == 6)
                        {
                            if ($eventinfo['recuroption'] == "$todaydate[mon]|$todaydate[mday]")
                            {
                                $addcache = true;
                            }
                        }
                        else if (cache_event_info($eventinfo, $todaydate['mon'], $todaydate['mday'], $todaydate['year']))
                        {
                            $addcache = true;
                        }
 
 
 
                        if ($addcache)
                        {
                            if (!$vbulletin->options['showeventtype'])
                            {
                                $events["$eventid"][] = $gettime;
                            }
                            else
                            {
                                $events["$gettime"][] = $eventid;
                            }
                            $eventcount++;
                        }
 
                        $iterations++;
                        $gettime += 86400;
                    }
                }
            }
        }
    }
 
    if (!empty($events))
    {
        if ($vbulletin->options['showeventtype'])
        {
            ksort($events, SORT_NUMERIC);
        }
        else
        {
            function groupbyevent($a, $b)
            {
                if ($a[0] == $b[0]) { return 0; }
                else { return ($a[0] < $b[0]) ? -1 : 1; }
            }
            uasort($events, 'groupbyevent');
        }
 
        foreach($events AS $index => $value)
        {
            $pastevent = 0;
            $pastcount = 0;
 
            $comma = $eventdates = $daysevents = '';
            if (!$vbulletin->options['showeventtype'])
            {    // Group by Event // $index = $eventid
                $eventinfo = $eventstore["$index"];
                if (empty($eventinfo['recurring']) AND empty($eventinfo['singleday']))
                {    // ranged event -- show it from its real start and real end date (vbgmdate)
                    $eventdates = construct_phrase($vbphrase['event_x_to_y'], vbdate($vbulletin->options['dateformat'], $eventinfo['dateline_from_user'], false, true, false, true), vbdate($vbulletin->options['dateformat'], $eventinfo['dateline_to_user'], false, true, false, true));
                    $day = vbdate('Y-n-j', $eventinfo['dateline_from_user'], false, false);
                }
                else
                {
                    unset($day);
                    foreach($value AS $key => $dateline)
                    {
                        if (($dateline - 86400) == $pastevent AND !$eventinfo['holidayid'])
                        {
                            $pastevent = $dateline;
                            $pastcount++;
                            continue;
                        }
                        else
                        {
                            if ($pastcount)
                            {
                                $eventdates = construct_phrase($vbphrase['event_x_to_y'], $eventdates, vbdate($vbulletin->options['dateformat'], $pastevent, false, true, false));
                            }
                            $pastcount = 0;
                            $pastevent = $dateline;
                        }
                        if (!$day)
                        {
                            $day = vbdate('Y-n-j', $dateline, false, false, false);
                        }
                        $eventdates .= $comma . vbdate($vbulletin->options['dateformat'], $dateline, false, true, false);
                        $comma = ', ';
                    }
                    if ($pastcount)
                    {
                        $eventdates = construct_phrase($vbphrase['event_x_to_y'], $eventdates, vbdate($vbulletin->options['dateformat'], $pastevent, false, true, false));
                    }
                }
 
                if ($eventinfo['holidayid'])
                {
                    $callink = '<a href="calendar.php?' . $vbulletin->session->vars['sessionurl'] . "do=getinfo&amp;day=$day\">" . $vbphrase['holiday_title_' . $eventinfo['varname']] . "</a>";
                }
                else
                {
                    $callink = '<a href="calendar.php?' . $vbulletin->session->vars['sessionurl'] . "do=getinfo&amp;day=$day&amp;e=$eventinfo[eventid]&amp;c=$eventinfo[calendarid]\">$eventinfo[title]</a>";
                }
            }
            else
            {    // Group by Date
                $eventdate = vbdate($vbulletin->options['dateformat'], $index, false, true, false);
 
                $day = vbdate('Y-n-j', $index, false, true, false);
                foreach($value AS $key => $eventid)
                {
                    $eventinfo = $eventstore["$eventid"];
                    if ($eventinfo['holidayid'])
                    {
                        $daysevents .= $comma . '<a href="calendar.php?' . $vbulletin->session->vars['sessionurl'] . "do=getinfo&amp;day=$day\">" . $vbphrase['holiday_title_' . $eventinfo['varname']] . "</a>";
                    }
                    else
                    {
                        $daysevents .= $comma . '<a href="calendar.php?' . $vbulletin->session->vars['sessionurl'] . "do=getinfo&amp;day=$day&amp;e=$eventinfo[eventid]&amp;c=$eventinfo[calendarid]\">$eventinfo[title]</a>";
                    }
                    $comma = ', ';
                }
            }
 
            ($hook = vBulletinHook::fetch_hook('forumhome_event')) ? eval($hook) : false;
            eval('$upcomingevents .= "' . fetch_template('forumhome_event') . '";');
        }
        // memory saving
        unset($events, $eventstore);
    }
    $show['upcomingevents'] = iif ($upcomingevents, true, false);
    $show['todaysevents'] = iif ($vbulletin->options['showevents'] == 1, true, false);
}
else
{
    $show['upcomingevents'] = false;
}
 
// ### LOGGED IN USERS #################################################
$activeusers = '';
if ($vbulletin->options['displayloggedin'] AND !$show['search_engine'])
{
    $datecut = TIMENOW - $vbulletin->options['cookietimeout'];
    $numbervisible = 0;
    $numberregistered = 0;
    $numberguest = 0;
 
    $forumusers = $db->query_read("
        SELECT
            user.username, (user.options & " . $vbulletin->bf_misc_useroptions['invisible'] . ") AS invisible, user.usergroupid,
            session.userid,session.browser, session.inforum, session.lastactivity,
            IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid
        FROM " . TABLE_PREFIX . "session AS session
        LEFT JOIN " . TABLE_PREFIX . "user AS user ON(user.userid = session.userid)
        WHERE session.lastactivity > $datecut
        " . iif($vbulletin->options['displayloggedin'] == 1, "ORDER BY username ASC") . "
    ");
 
    if ($vbulletin->userinfo['userid'])
    {
        // fakes the user being online for an initial page view of index.php
        $vbulletin->userinfo['joingroupid'] = iif($vbulletin->userinfo['displaygroupid'], $vbulletin->userinfo['displaygroupid'], $vbulletin->userinfo['usergroupid']);
        $userinfos = array
        (
            $vbulletin->userinfo['userid'] => array
            (
                'userid' => $vbulletin->userinfo['userid'],
                'username' => $vbulletin->userinfo['username'],'browser' => $vbulletin->session->vars['browser'],
                'invisible' => $vbulletin->userinfo['invisible'],
                'inforum' => 0,
                'lastactivity' => TIMENOW,
                'usergroupid' => $vbulletin->userinfo['usergroupid'],
                'displaygroupid' => $vbulletin->userinfo['displaygroupid'],
            )
        );
    }
    else
    {
        $userinfos = array();
    }
    $inforum = array();
 
    while ($loggedin = $db->fetch_array($forumusers))
    {
        $userid = $loggedin['userid'];
        if (!$userid)
        {    // Guest
            $numberguest++;
            $inforum["$loggedin[inforum]"]++;
        }
        else if (empty($userinfos["$userid"]) OR ($userinfos["$userid"]['lastactivity'] < $loggedin['lastactivity']))
        {
            $userinfos["$userid"] = $loggedin;
        }
    }
 
    if (!$vbulletin->userinfo['userid'] AND $numberguest == 0)
    {
        $numberguest++;
    }
 
    foreach ($userinfos AS $userid => $loggedin)
    {
        $numberregistered++;
        if ($userid != $vbulletin->userinfo['userid'])
        {
            $inforum["$loggedin[inforum]"]++;
        }
        $loggedin['musername'] = fetch_musername($loggedin);
 
        ($hook = vBulletinHook::fetch_hook('forumhome_loggedinuser')) ? eval($hook) : false;
 
        if (fetch_online_status($loggedin))
        {
            $numbervisible++;
            eval('$activeusers .= ", ' . fetch_template('forumhome_loggedinuser') . '";');
        }
    }
 
    // memory saving
    unset($userinfos, $loggedin);
 
    $activeusers = substr($activeusers, 2); // get rid of initial comma
 
    $db->free_result($forumusers);
 
    $totalonline = $numberregistered + $numberguest;
    $numberinvisible = $numberregistered - $numbervisible;
 
    // ### MAX LOGGEDIN USERS ################################
    if (intval($vbulletin->maxloggedin['maxonline']) <= $totalonline)
    {
        $vbulletin->maxloggedin['maxonline'] = $totalonline;
        $vbulletin->maxloggedin['maxonlinedate'] = TIMENOW;
        build_datastore('maxloggedin', serialize($vbulletin->maxloggedin));
    }
 
    $recordusers = vb_number_format($vbulletin->maxloggedin['maxonline']);;
    $recorddate = vbdate($vbulletin->options['dateformat'], $vbulletin->maxloggedin['maxonlinedate'], true);
    $recordtime = vbdate($vbulletin->options['timeformat'], $vbulletin->maxloggedin['maxonlinedate']);
 
    $show['loggedinusers'] = true;
}
else
{
    $show['loggedinusers'] = false;
}
 
// ### GET FORUMS & MODERATOR iCACHES ########################
cache_ordered_forums(1);
if ($vbulletin->options['showmoderatorcolumn'])
{
    cache_moderators();
}
else
{
    cache_moderators($vbulletin->userinfo['userid']);
}
 
// define max depth for forums display based on $vbulletin->options[forumhomedepth]
define('MAXFORUMDEPTH', $vbulletin->options['forumhomedepth']);
 
$forumbits = construct_forum_bit($forumid);
 
// ### BOARD STATISTICS #################################################
 
// get total threads & posts from the forumcache
$totalthreads = 0;
$totalposts = 0;
if (is_array($vbulletin->forumcache))
{
    foreach ($vbulletin->forumcache AS $forum)
    {
        $totalthreads += $forum['threadcount'];
        $totalposts += $forum['replycount'];
    }
}
$totalthreads = vb_number_format($totalthreads);
$totalposts = vb_number_format($totalposts);
 
// get total members and newest member from template
$numbermembers = vb_number_format($vbulletin->userstats['numbermembers']);
$newusername = $vbulletin->userstats['newusername'];
$newuserid = $vbulletin->userstats['newuserid'];
$activemembers = vb_number_format($vbulletin->userstats['activemembers']);
$show['activemembers'] = ($vbulletin->options['activememberdays'] > 0 AND ($vbulletin->options['activememberoptions'] & 2)) ? true : false;
 
// ### ALL DONE! SPIT OUT THE HTML AND LET'S GET OUTTA HERE... ###
($hook = vBulletinHook::fetch_hook('forumhome_complete')) ? eval($hook) : false;
 
eval('$navbar = "' . fetch_template('navbar') . '";');
eval('print_output("' . fetch_template('FORUMHOME') . '");');
 
/*======================================================================*\
|| ####################################################################
|| # Downloaded: 04:57, Sun Feb 26th 2006
|| # CVS: $RCSfile: index.php,v $ - $Revision: 1.172.2.3 $
|| ####################################################################
\*======================================================================*/
?>
You didn't do the last file edit for that file.
Reply With Quote
  #166  
Old 05-01-2006, 06:56 PM
derekivey derekivey is offline
 
Join Date: Apr 2005
Location: Pennsylvania, USA
Posts: 1,186
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by bashy
Hi

I am trying to uninstall this but i get
Code:
Database error in vBulletin 3.5.4:
 
Invalid SQL:
ALTER TABLE `session` DROP `browser`;;
 
MySQL Error  : Can't DROP 'browser'; check that column/key exists
Error Number : 1091
Date         : Monday, May 1st 2006 @ 07:17:07 AM
Script       : http://www.bashys-place.com/forums/admincp/plugin.php
Referrer     : http://www.bashys-place.com/forums/admincp/plugin.php?do=pr
Please advise?
Just remove that code from the uninstall code in the product manager. It doesn't look like you have that field for some reason.

Derek
Reply With Quote
  #167  
Old 05-01-2006, 07:21 PM
bashy bashy is offline
 
Join Date: Nov 2005
Posts: 2,544
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Cheers Derek, that sorted it
Reply With Quote
  #168  
Old 05-02-2006, 02:03 AM
derekivey derekivey is offline
 
Join Date: Apr 2005
Location: Pennsylvania, USA
Posts: 1,186
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

No Problem
Reply With Quote
  #169  
Old 05-28-2006, 08:57 AM
Danecookie Danecookie is offline
 
Join Date: Oct 2005
Location: France
Posts: 141
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I am having very dreadfull problems with this MOD.

The mod has some problem with tables something, when installed, it gives session table, when i removed this mod, some of it tables were not gettin removed from database, i installed again, and removed again, but still the mod is not gettin outa database completely..

my members are hving problems with it.. please inform me with the compelte code of this mod, so that i can install and then remove it compeltely form my database..
Reply With Quote
  #170  
Old 05-28-2006, 10:47 AM
derekivey derekivey is offline
 
Join Date: Apr 2005
Location: Pennsylvania, USA
Posts: 1,186
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hello,

Sorry to hear that you are having problems with this mod. To remove it simply remove all of the files that this mod added, undo the file edits and template edits, and then uninstall the product from vB's Product Manager. It should remove the stuff it added to the database. The only thing that was added was a field in the session table called browser.

Hope this helps.

Derek
Reply With Quote
  #171  
Old 06-23-2006, 12:49 AM
Tyegurl's Avatar
Tyegurl Tyegurl is offline
 
Join Date: Mar 2006
Location: NY
Posts: 480
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

small request....can you either update this for 3.6.0 or can you tell me how to uninstall it lmfao....i can't seem to...i did everything you said above...but blah it didn't work....
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 10:42 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05609 seconds
  • Memory Usage 2,393KB
  • Queries Executed 26 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (8)bbcode_code
  • (3)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete