global $vbulletin, $bbcode, $parser, $path, $db;
$g_limit = 5;
$g_champs_limit = 5;
$g_news_limit = 5;
$g_scores_limit = 5;
function get_games ($as_handle, $as_title, $limit) {
global $vbulletin;
switch ($as_handle) {
case 'recent':
$orderby = "dateadded DESC";
break;
case 'played':
$orderby = "sessioncount DESC";
break;
case 'popular':
$orderby = "votepoints DESC";
break;
default:
$orderby = "gameid ASC";
break;
}
$getgames = $vbulletin->db->query("
SELECT games.* FROM " . TABLE_PREFIX . "v3arcade_games AS games
ORDER BY " . $orderby . "
LIMIT $limit
");
while ($game = $vbulletin->db->fetch_array($getgames))
{
$game['gamename'] = fetch_trimmed_title(stripslashes($game['title']),$maxtitlechars);
$game['gamedate'] = vbdate($vbulletin->options['dateformat'], $game['dateadded']);
$getbgrow = exec_switch_bg();
switch ($as_handle) {
case 'recent':
$as_game_data = $game['gamedate'];
break;
case 'played':
$as_game_data = "Played " . $game['sessioncount'] . " times";
break;
case 'popular':
$as_game_data = $game['votepoints'] . " votes";
break;
default:
$as_game_data = "";
break;
}
//eval('$as_gamebits .= "' . fetch_template('adv_portal_as_gamebits') . '";');
$templater = vB_Template::create('adv_portal_as_gamebits');
$templater->register('as_game_data',$as_game_data);
$templater->register('game',$game);
$as_gamebits .= $templater->render();
}
$vbulletin->db->free_result($getgames);
// eval('$gametable = "' . fetch_template("adv_portal_as_{$as_handle}_gametable") . '";');
$templater = vB_Template::create('adv_portal_as_' . $as_handle . '_gametable');
$templater->register('as_title',$as_title);
$templater->register('as_gamebits',$as_gamebits);
$gametable = $templater->render();
return $gametable;
}
function get_champs ($limit) {
global $vbulletin;
$champs = $vbulletin->db->query_read("
SELECT COUNT(games.highscorerid) AS count, user.username, user.userid
FROM " . TABLE_PREFIX . "v3arcade_games AS games
LEFT JOIN " . TABLE_PREFIX . "user AS user ON user.userid = games.highscorerid
WHERE user.userid IS NOT NULL
GROUP BY user.username, user.userid
ORDER BY count DESC, user.userid ASC
LIMIT " . $limit
);
$row = '0';
$awards = '0';
$leaders = '0';
while ($champ = $vbulletin->db->fetch_array($champs)) {
$leaders++;
if ($awards != $champ['count']) {
$row = $leaders;
}
$awards = $champ['count'];
$getbgrow = exec_switch_bg();
//eval('$as_champbits .= "' . fetch_template('adv_portal_as_champbits') . '";');
$templater = vB_Template::create('adv_portal_as_champbits');
$templater->register('getbrow',$getbrow);
$templater->register('champ',$champ);
$as_champbits .= $templater->render();
}
$vbulletin->db->free_result($champs);
//eval('$champstable = "' . fetch_template("adv_portal_as_champstable") . '";');
$templater = vB_Template::create('adv_portal_as_champstable');
$templater->register('as_champbits',$as_champbits);
$champstable = $templater->render();
return $champstable;
}
function get_random_game () {
global $vbulletin;
$random_game = $vbulletin->db->query_first("
SELECT gameid,title,description,stdimage,highscore,user.userid,user.username
FROM " . TABLE_PREFIX . "v3arcade_games AS games
LEFT JOIN " . TABLE_PREFIX . "user AS user ON user.userid = games.highscorerid
ORDER BY RAND()
LIMIT 1
");
$as_random_gameid = $random_game[gameid];
$as_random_gametitle = $random_game[title];
$as_random_stdimage = $random_game[stdimage];
$as_random_description = $random_game[description];
if($random_game[highscore] == 0)
{
$as_random_highscore = "No Score";
$as_random_highscorer = "";
$as_random_userid = "";
}
else
{
$as_random_highscore = intval($random_game[highscore]);
$as_random_highscorer = "(" . $random_game[username] . ")";
$as_random_userid = $random_game[userid];
}
$vbulletin->db->free_result($random_game);
//eval('$random_table = "' . fetch_template('adv_portal_as_random') . '";');
$templater = vB_Template::create('adv_portal_as_random');
$templater->register('as_random_gameid',$as_random_gameid);
$templater->register('as_random_gametitle',$as_random_gametitle);
$templater->register('as_random_highscore',$as_random_highscore);
$templater->register('as_random_userid',$as_random_userid);
$templater->register('as_random_highscorer',$as_random_highscorer);
$templater->register('as_random_stdimage',$as_random_stdimage);
$templater->register('as_random_description',$as_random_description);
$random_table = $templater->render();
return $random_table;
}
function get_latest_champs ($limit)
{
global $vbulletin, $bbcode_parser;
//var_dump($vbulletin);
//highlight_file('./modules/arcadestats.php');
//exit;
$news_items = $vbulletin->db->query_read("
SELECT *
FROM " . TABLE_PREFIX . "v3arcade_news
WHERE newstext LIKE '%is the new%'
ORDER BY datestamp DESC
LIMIT $limit
");
while ($news_item = $vbulletin->db->fetch_array($news_items)) {
//$as_news_text = $bbcode_parser->do_parse($news_item['newstext'], 1, 1, 1, 0);
$as_news_text = $news_item['newstext'];
$as_news_text = str_replace("arcade.php", $vbulletin->options['bburl'] . "/arcade.php", $as_news_text);
$as_news_date = vbdate($vbulletin->options['dateformat'],$news_item['datestamp']);
$as_news_time = vbdate($vbulletin->options['timeformat'],$news_item['datestamp']);
$getbgrow = exec_switch_bg();
//eval('$as_newsbits .= "' . fetch_template('adv_portal_as_newsbits') . '";');
$templater = vB_Template::create('adv_portal_as_newsbits');
$templater->register('getbrow',$getbrow);
$templater->register('as_news_text',$as_news_text);
$templater->register('as_news_date',$as_news_date);
$templater->register('as_news_time',$as_news_time);
$as_newsbits .= $templater->render();
}
$vbulletin->db->free_result($news_items);
//eval('$news_table = "' . fetch_template('adv_portal_as_newstable') . '";');
$templater = vB_Template::create('adv_portal_as_newstable');
$templater->register('as_newsbits',$as_newsbits);
$news_table = $templater->render();
return $news_table;
}
function get_latest_scores ($limit)
{
global $vbulletin;
$latest_scores = $vbulletin->db->query_read("
SELECT sessions.userid, sessions.gamename, sessions.gameid, sessions.score, sessions.start, sessions.finish,
user.username,
games.title
FROM " . TABLE_PREFIX . "v3arcade_sessions as sessions
LEFT JOIN " . TABLE_PREFIX . "user AS user
ON (sessions.userid = user.userid)
LEFT JOIN " . TABLE_PREFIX . "v3arcade_games as games
on (sessions.gameid = games.gameid)
WHERE sessions.finish <> 0
ORDER BY sessions.sessionid DESC
LIMIT $limit
");
while ($latest_score = $vbulletin->db->fetch_array($latest_scores)) {
$as_score_userid = $latest_score['userid'];
$as_score_gameid = $latest_score['gameid'];
$as_score_name = $latest_score['username'];
$as_score_score = intval($latest_score['score']);
$as_score_gametitle = $latest_score['title'];
$as_score_date = vbdate($vbulletin->options['dateformat'],$latest_score['finish']);
$as_score_time = vbdate($vbulletin->options['timeformat'],$latest_score['finish']);
//echo "foo: $as_score_gametitle<br>\n";
$getbgrow = exec_switch_bg();
//eval('$as_scorebits .= "' . fetch_template('adv_portal_as_scorebits') . '";');
$templater = vB_Template::create('adv_portal_as_scorebits');
$templater->register('getbrow',$getbrow);
$templater->register('as_score_userid',$as_score_userid);
$templater->register('as_score_name',$as_score_name);
$templater->register('as_score_score',$as_score_score);
$templater->register('as_score_gameid',$as_score_gameid);
$templater->register('as_score_gametitle',$as_score_gametitle);
$templater->register('as_score_date',$as_score_date);
$templater->register('as_score_time',$as_score_time);
$as_scorebits .= $templater->render();
}
$vbulletin->db->free_result($latest_scores);
//eval('$score_table = "' . fetch_template('adv_portal_as_scoretable') . '";');
$templater = vB_Template::create('adv_portal_as_scoretable');
$templater->register('as_scorebits',$as_scorebits);
$score_table = $templater->render();
return $score_table;
}
$as_score_table = get_latest_scores($g_scores_limit);
$as_news_table = get_latest_champs($g_news_limit);
$as_random_table = get_random_game();
$as_champs_table = get_champs($g_champs_limit);
$as_recent_table = get_games("recent","Most Recent", $g_limit);
$as_played_table = get_games("played","Most Played", $g_limit);
$as_popular_table = get_games("popular","Most Popular", $g_limit);
$collapseobj_arcadestats = $vbcollapse['collapseobj_arcadestats'];
$collapseimg_arcadestats = $vbcollapse['collapseimg_arcadestats'];
//eval('$home[$mods[\'modid\']][\'content\'] .= "' . fetch_template('adv_portal_arcadestats') . '";');
$templater = vB_Template::create('adv_portal_arcadestats');
$templater->register('as_score_table',$as_score_table);
$templater->register('as_news_table',$as_news_table);
//$templater->register('as_random_table',$as_random_table);
//$templater->register('as_champs_table',$as_champs_table);
//$templater->register('as_recent_table',$as_recent_table);
$templater->register('as_played_table',$as_played_table);
$templater->register('as_popular_table',$as_popular_table);
$output = $templater->render();