$timecheck['startcount']); $user = array_merge($user, $timecheck); $user['avgping'] = round($user['avgping']); // Most played game check. $game = $db->query_first("SELECT COUNT(*) AS playcount, arcade_games.title FROM " . TABLE_PREFIX . "arcade_sessions AS arcade_sessions LEFT JOIN " . TABLE_PREFIX . "arcade_games AS arcade_games ON (arcade_games.gameid=arcade_sessions.gameid) WHERE start>0 AND finish>0 AND valid=1 AND userid=" . $vbulletin->GPC['userid'] . " GROUP BY arcade_sessions.gameid ORDER BY playcount DESC LIMIT 1"); $game['pcplayed'] = round(($game['playcount']/$user['playcount'])*100); eval('print_output("' . fetch_template('arcade_miniuserinfo') . '");'); } // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- // BAR SWITCH // Makes that front page more (or less) crowded. // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- if (isset($_GET['barsize'])) { $vbulletin->input->clean_array_gpc('r', array( 'barsize' => TYPE_UINT, 'categoryid' => TYPE_INT )); $barsize = $vbulletin->GPC['barsize']; // Allows choosing the mini mode by default. if ($vbulletin->options['minibydefault']) { $barsize_c = iif($barsize==1, 0, 1); } else { $barsize_c = $vbulletin->GPC['barsize']; } // Set the cookie so the new value is remembered. vbsetcookie('barsize', $barsize_c); } else { $vbulletin->input->clean_gpc('c', COOKIE_PREFIX . 'barsize', INT); // Simple variable names for cookies. $barsize = $vbulletin->GPC[COOKIE_PREFIX . 'barsize']; // Allows choosing the mini mode by default. if ($vbulletin->options['minibydefault']) { $barsize = iif($barsize==1, 0, 1); } } // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- // ARCADE_MAIN // There's no place like home. // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- if (!$_REQUEST['do']) { ($hook = vBulletinHook::fetch_hook('arcade_main_start')) ? eval($hook) : false; // Let's get the navbar out of the way. $navbits['arcade.php'] = $vbphrase['arcade']; $navbits = construct_navbits($navbits); eval('$navbar = "' . fetch_template($navbartemplate) . '";'); $favcache = unserialize($vbulletin->userinfo['favcache']); // AJAX game searching include code. eval('$ajaxinclude = "' . fetch_template('arcade_ajaxsearch') . '";'); // Just to make things a little easier when userinfo starts flying everywhere. (Sorry Kier!) $player = $vbulletin->userinfo; // Format the player's join date. $player['joindate'] = vbdate('F j, Y', $player['joindate']); // Get the player's avatar URL. $avatarurl = fetch_avatar_url($player['userid']); if ($avatarurl == '') { $show['avatar'] = true; $player['avatarurl'] = $vbulletin->options['arcadeimages'] . '/noavatar.gif'; } else { $show['avatar'] = true; $player['avatarsize'] = $avatarurl[1]; $player['avatarurl'] = $avatarurl[0]; } eval('$playerbox = "' . fetch_template('arcade_main_user') . '";'); // Get challenges for display. $challenges = $db->query_read("SELECT arcade_challenges.*, touser.username AS tousername, fromuser.username AS fromusername, arcade_games.miniimage, arcade_games.title FROM " . TABLE_PREFIX . "arcade_challenges AS arcade_challenges LEFT JOIN " . TABLE_PREFIX . "user AS touser ON (touser.userid=arcade_challenges.touserid) LEFT JOIN " . TABLE_PREFIX . "user AS fromuser ON (fromuser.userid=arcade_challenges.fromuserid) LEFT JOIN " . TABLE_PREFIX . "arcade_games AS arcade_games ON (arcade_games.gameid=arcade_challenges.gameid) WHERE status=3 ORDER BY datestamp DESC LIMIT " . $vbulletin->options['frontminichallenges']); while ($challenge = $db->fetch_array($challenges)) { exec_switch_bg(); $challenge['toscore'] = sprintf((float)$challenge['toscore']); $challenge['fromscore'] = sprintf((float)$challenge['fromscore']); eval('$mcbits .= "' . fetch_template('arcade_challenge_minibit') . '";'); } // Set the viewing mode status icons. $barstatus[(int)$barsize] = '_on'; // We'll want to parse that BBCode in those news items. require_once('./includes/class_bbcode.php'); $parser =& new vB_BbCodeParser($vbulletin, fetch_tag_list()); // Fetch the latest news. $newsbits = ''; $newsquery = $db->query_read("SELECT * FROM " . TABLE_PREFIX . "arcade_news AS arcade_news ORDER BY datestamp DESC LIMIT " . $vbulletin->options['quicksearchresults']); while ($news = $db->fetch_array($newsquery)) { exec_switch_bg(); // Format the news date/time. $news['date'] = vbdate($vbulletin->options['logdateformat'], $news['datestamp']); $news['newstext'] = unhtmlspecialchars($parser->do_parse($news['newstext'], false, true, true, false, true, false)); eval('$newsbits .= "' . fetch_template('arcade_news_bit') . '";'); } // Now, let's get the games. $vbulletin->input->clean_array_gpc('r', array( 'categoryid' => TYPE_INT )); $categoryid = $vbulletin->GPC['categoryid']; if (!($permissions['arcadepermissions'] & $vbulletin->bf_ugp['arcadepermissions']['canoverridepermissions'])) { // Game bitfield check. (Is Active.) $bitfieldcheck = '(arcade_games.gamepermissions & 1)'; } // Let's take care of what we're viewing now. (We use this for remembering the last page and category we were viewing.) $pagenumber = $vbulletin->input->clean_gpc('r', 'pagenumber', TYPE_UINT); set_bbarray_cookie('arcade_viewdata', 'categoryid', $vbulletin->GPC['categoryid']); set_bbarray_cookie('arcade_viewdata', 'pagenumber', iif($pagenumber, $pagenumber, 1)); $gamebits = ''; if (!$vbulletin->GPC['categoryid']) { // No category id, so show a random selection of games. $games = $db->query_read("SELECT arcade_games.*, user.username, arcade_categories.catname FROM " . TABLE_PREFIX . "arcade_games AS arcade_games LEFT JOIN " . TABLE_PREFIX . "user AS user ON (arcade_games.highscorerid=user.userid) LEFT JOIN " . TABLE_PREFIX . "arcade_categories AS arcade_categories ON (arcade_games.categoryid=arcade_categories.categoryid) " . iif($bitfieldcheck, "WHERE $bitfieldcheck") . " ORDER BY RAND() LIMIT ".$vbulletin->options['gamesperpage']); } else if ($vbulletin->GPC['categoryid']==2) { // Favorites $gamecount = count($favcache); if ($gamecount>0) { $perpage = $vbulletin->input->clean_gpc('r', 'perpage', TYPE_UINT); // set defaults sanitize_pageresults($gamecount, $pagenumber, $perpage, 100, $vbulletin->options['gamesperpage']); $start = (int)($perpage*$pagenumber)-$perpage; $pagenav = construct_page_nav($pagenumber, $perpage, $gamecount, 'arcade.php?' . $vbulletin->session->vars['sessionurl'], "" . (!empty($vbulletin->GPC['categoryid']) ? "&categoryid=" . $vbulletin->GPC['categoryid'] : "") . (!empty($vbulletin->GPC['perpage']) ? "&pp=$perpage" : "") ); $gids = implode(',', (array)$favcache); if ($gids) { $games = $db->query_read("SELECT arcade_games.*, user.username, arcade_categories.catname FROM " . TABLE_PREFIX . "arcade_games AS arcade_games LEFT JOIN " . TABLE_PREFIX . "user AS user ON (arcade_games.highscorerid=user.userid) LEFT JOIN " . TABLE_PREFIX . "arcade_categories AS arcade_categories ON (arcade_games.categoryid=arcade_categories.categoryid) WHERE arcade_games.gameid IN ($gids) " . iif($bitfieldcheck, "AND $bitfieldcheck") . " LIMIT $start,".$vbulletin->options['gamesperpage']); } } } else { // Get games only from the specified category id. // First of all, get a total game count. $gamecountquery = $db->query_read("SELECT arcade_games.gameid FROM " . TABLE_PREFIX . "arcade_games AS arcade_games " . iif($vbulletin->GPC['categoryid']!=-1, "WHERE arcade_games.categoryid=" . $vbulletin->GPC['categoryid'] . iif($bitfieldcheck, " AND $bitfieldcheck"), iif($bitfieldcheck, "WHERE $bitfieldcheck"))); $gamecount = $db->num_rows($gamecountquery); $perpage = $vbulletin->input->clean_gpc('r', 'perpage', TYPE_UINT); $pagenumber = $vbulletin->input->clean_gpc('r', 'pagenumber', TYPE_UINT); // set defaults sanitize_pageresults($gamecount, $pagenumber, $perpage, 100, $vbulletin->options['gamesperpage']); $start = (int)($perpage*$pagenumber)-$perpage; $pagenav = construct