<?php
session_name("arcade_games");
session_start();
// Session first run?
if (!isset($_SESSION['firsttime']))
{
// Set defaults
$_SESSION['firsttime'] = true;
$_SESSION['cat']=0;
$_SESSION['nump']=10;
$_SESSION['search']='';
$_SESSION['rsearch']='game_name';
$_SESSION['page']=0;
$_SESSION['sorto']='DESC';
$_SESSION['sortby']='game_id';
}
else
{
// no first run, use post or request
if (isset($_POST['nump'])) $_SESSION['nump']=$_POST['nump'];
if (isset($_POST['cat'])) $_SESSION['cat']=$_POST['cat'];
if (isset($_POST['search'])) $_SESSION['search']=$_POST['search'];
if (isset($_POST['rsearch'])) $_SESSION['rsearch']=$_POST['rsearch'];
if (isset($_REQUEST['page'])) $_SESSION['page']=$_REQUEST['page'];
if (isset($_POST['sorto'])) $_SESSION['sorto']=$_POST['sorto'];
if (isset($_POST['sortby'])) $_SESSION['sortby']=$_POST['sortby'];
}
// Define local vars
$s_nump = $_SESSION['nump'];
$s_cat = $_SESSION['cat'];
$s_search = $_SESSION['search'];
$s_rsearch = $_SESSION['rsearch'];
$s_page = $_SESSION['page'];
$s_sorto = $_SESSION['sorto'];
$s_sortby = $_SESSION['sortby'];
if (!defined('PUN_ROOT')) define('PUN_ROOT','./');
require PUN_ROOT.'include/common.php';
require PUN_ROOT.'lang/'.$pun_user['language'].'/arcade.php';
require PUN_ROOT.'header.php';
$page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / Arcade Games';
if (!function_exists('generate_config_cache'))
require PUN_ROOT.'include/cache.php';
if ($pun_config['arcade_live'] == '0')
message($lang_arcade['arcade disabled']);
if (!$pun_user['is_guest'])
{
// Fetch total game count
$result = $db->query('SELECT COUNT(game_id) FROM '.$db->prefix.'arcade_games') or error('Unable to fetch total game count', __FILE__, __LINE__, $db->error());
$num_games = $db->result($result);
// Arcade Statistic Block
?>
<div class="blockform">
<h2><span><?php echo 'Arcade Games ('.$lang_arcade['number games'].' '.$num_games.')' ?></span></h2>
<div class="box">
<?// Newest games ?>
<table cellspacing="0" style="padding: 2px 2px 2px 2px; border:none;">
<tr style="padding: 2px 2px 2px 2px; border:none;" width="25%">
<td valign="top" width="20%" style="padding: 2px 2px 2px 2px; border:none;">
<fieldset>
<legend align="left"> <?php echo ''.$lang_arcade['new_games'].'' ?> </legend>
<table width="0" border="0" cellspacing="0" cellpadding="0" style="padding: 0px 0px 0px 0px; border:none;">
<?
// Get latest games
$result2 = $db->query('SELECT game_id, game_name, game_image FROM '.$db->prefix.'arcade_games ORDER BY game_id DESC LIMIT '.$pun_config['arcade_numnew'].'') or error('Unable to get latest games', __FILE__, __LINE__, $db->error());
$i = 1;
while($line = $db->fetch_assoc($result2))
{
echo '
<tr style="padding: 0px 0px 0px 0px; border:none;">
<td style="padding: 0px 0px 0px 0px; border:none;"><a href="arcade_play.php?id='.$line['game_id'].'"><img width="15" hight="5" align="center" src="games/images/'.$line['game_image'].'" /></a></td>
<td style="padding: 0px 0px 0px 2px; border:none;"><div align="left"><a href="arcade_play.php?id='.$line['game_id'].'">'.$line['game_name'].'</a></div></td>
</tr>
';
$i++;
}
?></table><p></p>
</td></fieldset>
<?// King of Highscore images ?>
<td valign="top" width="50%" style="padding: 2px 2px 2px 2px; border:none;">
<fieldset>
<legend align="left"> <?php echo ''.$lang_arcade['highscore_champs'].'' ?> </legend><p></p>
<table cellspacing="0" style="padding: 0px 0px 0px 0px; border:none;">
<tr style="padding: 0px 0px 0px 0px; border:none;">
<td class="alt2" align="center" nowrap="nowrap" valign="middle" width="33%" style="padding: 0px 0px 0px 0px; border:none;"><b><img src="./img/arcade/king1.gif" alt="1"></b></td>
<td class="alt2" align="center" nowrap="nowrap" valign="middle" width="33%" style="padding: 0px 0px 0px 0px; border:none;"><b><img src="./img/arcade/king2.gif" alt="2"></b></td>
<td class="alt2" align="center" nowrap="nowrap" valign="middle" width="33%" style="padding: 0px 0px 0px 0px; border:none;"><b><img src="./img/arcade/king3.gif" alt="3"></b></td>
</tr>
<?php
// Count all Highscores per user, display the king of the highscores
$sql = 'SELECT id,username, COUNT(*) AS count_top FROM '.$db->prefix.'arcade_ranking INNER JOIN '.$db->prefix.'users ON ('.$db->prefix.'users.id = '.$db->prefix.'arcade_ranking.rank_player) WHERE '.$db->prefix.'arcade_ranking.rank_topscore = 1 GROUP BY '.$db->prefix.'arcade_ranking.rank_player ORDER BY count_top DESC LIMIT 3';
$query = $db->query($sql) or error("Impossible to collect highscores per user.", __FILE__, __LINE__, $db->error());
$i = 1;
while($line = $db->fetch_assoc($query))
{
echo '<td width="33%" align="center" nowrap="nowrap" valign="middle" style="padding: 0px 0px 0px 0px; margin-top: 0px; margin-left: 0px; margin-right: 0px; margin-bottom: 0px; border:none; "><strong><span style="text-decoration:blink"><a href="profile.php?id='.$line['id'].'">'.$line['username'].'</a></strong></span><br/>'.$lang_arcade['with'].' <b>'.$line['count_top'].'</b> '.$lang_arcade['highscores'].'</td>';
$i++;
}
?>
</table>
</fieldset>
<p></p>
<fieldset>
<legend align="left"> <?php echo ''.$lang_arcade['new_highscore_champs'].'' ?> </legend><table cellspacing="0" style="padding: 2px 2px 2px 2px; border:none;" width="100%"><tr style="padding: 2px 2px 2px 2px; border:none; "><td style="padding: 2px 2px 2px 2px; border:none;" ><strong>User</strong></td><td style="padding: 2px 2px 2px 2px; border:none;" ><strong>Game</strong></td><td style="padding: 2px 2px 2px 2px; border:none;" ><strong>Score</strong></td><td style="padding: 2px 2px 2px 2px; border:none;" ><strong>Date</strong></td></tr>
<?php
// Find the latest Highscores
$sql = 'SELECT game_name, game_id, game_image, rank_topscore, username, id, rank_date, rank_score FROM '.$db->prefix.'arcade_ranking, '.$db->prefix.'arcade_games, '.$db->prefix.'users WHERE rank_topscore = 1 AND rank_game = game_filename AND '.$db->prefix.'users.id = rank_player GROUP BY game_name ORDER BY rank_date DESC LIMIT '.$pun_config['arcade_numchamps'].'';
$query = $db->query($sql) or error("Impossible to select the latest highscores.", __FILE__, __LINE__, $db->error());
$i = 1;
while($line = $db->fetch_assoc($query))
{
// Display the latest Highscores
echo '
<tr style="padding: 0px 0px 0px 0px; border:none; "><td style="padding: 0px 0px 0px 0px; border:none; "><a href="profile.php?id='.$line['id'].'">'.$line['username'].'</a></td><td style="padding: 0px 0px 0px 0px; border:none; "><table style="padding: 0px 0px 0px 0px; border:none; ">
<tr style="padding: 0px 0px 0px 0px; border:none; ">
<td style="padding: 0px 0px 0px 0px; border:none;" width="15"><a href="arcade_play.php?id='.$line['game_id'].'"><img width="15" hight="15" src="games/images/'.$line['game_image'].'" /></a></td>
<td style="padding: 0px 0px 0px 0px; border:none;" align="left"><a href="arcade_play.php?id='.$line['game_id'].'">'.$line['game_name'].'</a></td>
</tr>
</table>
</td><td style="padding: 0px 0px 0px 0px; border:none; ">'.$line['rank_score'].'</td><td style="padding: 0px 0px 0px 0px; border:none; ">('.format_time($line['rank_date']).')</td></tr>';
$i++;
}
?></table>
</fieldset>
<?// Most played games ?>
</td>
<td valign="top" width="25%" style="padding: 2px 2px 2px 2px; border:none;" >
<fieldset>
<legend align="left"> <?php echo ''.$lang_arcade['most_played'].'' ?> </legend><p></p>
<table width="0" border="0" cellspacing="0" cellpadding="0" style="padding: 0px 0px 0px 0px; border:none;">
<?
// Find most played games
$result3 = $db->query('SELECT game_id, game_name, game_played, game_image FROM '.$db->prefix.'arcade_games ORDER BY game_played DESC LIMIT '.$pun_config['arcade_mostplayed'].'') or error('Unable to get most played games', __FILE__, __LINE__, $db->error());
$i = 1;
while($line = $db->fetch_assoc($result3))
{
// Display most played games
echo '
<tr style="padding: 0px 0px 0px 0px; border:none;">
<td style="padding: 0px 0px 0px 0px; border:none;"><a href="arcade_play.php?id='.$line['game_id'].'"><img width="15" hight="5" align="center" src="games/images/'.$line['game_image'].'" /></a></td>
<td style="padding: 0px 0px 0px 2px; border:none;"><div align="left"><a href="arcade_play.php?id='.$line['game_id'].'">'.$line['game_name'].'</a></div></td>
</tr>
';
$i++;
}
?></table><p></p>
</fieldset>
<?// Get random game
$result6 = $db->query('SELECT game_id, game_name,game_image,game_played,rank_topscore,username,id,rank_date,rank_score FROM '.$db->prefix.'arcade_games, '.$db->prefix.'arcade_ranking, '.$db->prefix.'users order by RAND() LIMIT 1') or error('Unable to fetch total game count', __FILE__, __LINE__, $db->error());
$randg = $db->fetch_assoc($result6);?>
<p><fieldset>
<legend align="left"><? echo $lang_arcade['randomg'] ?></legend><p></p>
<table width="0" border="0" cellspacing="0" cellpadding="0" style="padding: 0px 0px 0px 0px; border:none;">
<tr style="padding: 0px 0px 0px 0px; border:none;">
<td style="padding: 0px 0px 0px 0px; border:none;" width="50"><a href="arcade_play.php?id=<? echo $randg['game_id'] ?>" title="<? echo $lang_arcade['Pic Click']?>"><img align="center" src="games/images/<? echo $randg['game_image']?>" /></a></td>
<td style="padding: 2px 2px 2px 2px; border:none;"><div align="left"><a href="arcade_play.php?id=<? echo $randg['game_id']?>"><? echo $randg['game_name']?></a><br><?php echo''.$lang_arcade['times played'].' <strong>'.$randg['game_played'].'</strong><br />
<a href="arcade_ranking.php?id='.$randg['game_id'].'">'.$lang_arcade['View Highscores'].'</a>'; ?>
</div></td>
</tr>
</table>
<p>
</fieldset>
</td>
</tr>
</table>
</div>
</div>
<?php
// Define search query
if (strlen($s_search)>0) $sqlquery .= " WHERE {$s_rsearch} LIKE '%{$s_search}%'";
// Did we use a category or the search box?
if ($s_cat>0)
{
if (strlen($s_search)>0)
{
$sqlquery .= " AND game_cat = {$s_cat} ORDER BY game_name {$s_sorto}";
}
else
{
$sqlquery .= " WHERE game_cat = {$s_cat} ORDER BY game_name {$s_sorto}";
}
}
else
{
$sqlquery .= " ORDER BY {$s_sortby} {$s_sorto}";
}
// Filter Block
?>
<div class="box" style="padding:5px;">
<fieldset>
<legend><? echo $lang_arcade['filter']?></legend>
<div class="infldset">
<form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>" enctype="multipart/form-data">
<table cellspacing="0" style="padding: 0px 0px 0px 0px; margin-top: 0px; margin-left: 0px; margin-right: 0px; margin-bottom: 0px; border:none; ">
<tr>
<td valign="top" align="left" width="20%" style="padding: 0px 0px 0px 0px; margin-top: 0px; margin-left: 0px; margin-right: 0px; margin-bottom: 0px; border:none; "><? echo $lang_arcade['numgames']?><p>
<select id="nump" name="nump">
<option value="10" <?php if ($s_nump == 10) echo ' selected="selected"' ?>>10</option>
<option value="25" <?php if ($s_nump == 25) echo ' selected="selected"' ?>>25</option>
<option value="50" <?php if ($s_nump == 50) echo ' selected="selected"' ?>>50</option>
<option value="100" <?php if ($s_nump == 100) echo ' selected="selected"' ?>>100</option>
</select><p>
<input type="radio" name="sorto" value="ASC" <?php if ($s_sorto == 'ASC') { echo ' checked'; } ?> />
<?echo $lang_arcade['asc']?>
<input type="radio" name="sorto" value="DESC" <?php if ($s_sorto == 'DESC') { echo ' checked'; } ?> />
<?echo $lang_arcade['desc']?>
</td>
<td valign="top" align="left" style="padding: 0px 0px 0px 0px; margin-top: 0px; margin-left: 0px; margin-right: 0px; margin-bottom: 0px; border:none; "><? echo $lang_arcade['sortby']?><p>
<select id="sortby" name="sortby">
<option value="game_name" <?php if ($s_sortby == 'game_name') echo ' selected="selected"' ?>><? echo $lang_arcade['name']?></option>
<option value="game_id" <?php if ($s_sortby == 'game_id') echo ' selected="selected"' ?>><? echo $lang_arcade['date']?></option>
</select><p>
</td>
<td valign="top" align="left" style="padding: 0px 0px 0px 0px; margin-top: 0px; margin-left: 0px; margin-right: 0px; margin-bottom: 0px; border:none; "><? echo $lang_arcade['category']?><p>
<select id="cat" name="cat">
<option value="0" <?php if ($s_cat == 0) echo ' selected="selected"' ?>><? echo $lang_arcade['all cat']?></option>
<option value="1" <?php if ($s_cat == 1) echo ' selected="selected"' ?>><? echo $lang_arcade['cat1']?></option>
<option value="2" <?php if ($s_cat == 2) echo ' selected="selected"' ?>><? echo $lang_arcade['cat2']?></option>
<option value="3" <?php if ($s_cat == 3) echo ' selected="selected"' ?>><? echo $lang_arcade['cat3']?></option>
<option value="4" <?php if ($s_cat == 4) echo ' selected="selected"' ?>><? echo $lang_arcade['cat4']?></option>
<option value="5" <?php if ($s_cat == 5) echo ' selected="selected"' ?>><? echo $lang_arcade['cat5']?></option>
<option value="6" <?php if ($s_cat == 6) echo ' selected="selected"' ?>><? echo $lang_arcade['cat6']?></option>
<option value="7" <?php if ($s_cat == 7) echo ' selected="selected"' ?>><? echo $lang_arcade['cat7']?></option>
<option value="8" <?php if ($s_cat == 8) echo ' selected="selected"' ?>><? echo $lang_arcade['cat8']?></option>
<option value="9" <?php if ($s_cat == 9) echo ' selected="selected"' ?>><? echo $lang_arcade['cat9']?></option>
</select>
</td>
<td valign="top" align="left" style="padding: 0px 0px 0px 0px; margin-top: 0px; margin-left: 0px; margin-right: 0px; margin-bottom: 0px; border:none; "><? echo $lang_arcade['search']?><p>
<input type="text" id="search" name="search" size="20" maxlength="100" value="<?php echo pun_htmlspecialchars($s_search); ?>" />
<p><input type="radio" name="rsearch" value="game_name" <?php if ($s_rsearch == 'game_name') { echo ' checked'; } ?> />
<?echo $lang_arcade['gname']?>
<input type="radio" name="rsearch" value="game_desc" <?php if ($s_rsearch == 'game_desc') { echo ' checked'; } ?> />
<?echo $lang_arcade['gdesc']?>
</td>
</tr>
<tr>
<td valign="bottom" colspan="5" style="padding: 0px 0px 0px 0px; margin-top: 0px; margin-left: 0px; margin-right: 0px; margin-bottom: 0px; border:none; ">
<input type="hidden" name="page" value="0" />
<br><p><input type="submit" name="filter" value="<?echo $lang_arcade['start']?>" /> <input name="filter" type="submit" onclick="nump.value='10';cat.value='0';search.value='';rsearch.value='game_name';elements[5].checked = true;elements[2].checked = true;sortby.value='game_id';window.location='<?php echo $_SERVER['PHP_SELF'] ?>';" value="<?echo $lang_arcade['reset']?>" />
</td>
</tr>
</table>
</form>
</div>
</fieldset>
</div>
<?php
// Fetch game count and generate pages, after using filter
$result = $db->query('SELECT COUNT(game_id) FROM '.$db->prefix.'arcade_games '.$sqlquery) or error('Unable to fetch filter count', __FILE__, __LINE__, $db->error());
$num_games2 = $db->result($result);
$currec = $s_page * $s_nump;
$kolvop = ceil($num_games2 / $s_nump);
$cp = ($kolvop == 0? 1 : $kolvop);
$nump = $s_nump;
// Generate page links
if ($cp>1)
{
echo '<p>', $lang_common['Pages'],':';
for ($i=1;$i<=$cp;$i++)
if (($i-1)==$s_page) echo " $i ";
else echo ' <a href="'.$_SERVER['PHP_SELF'].'?page='.($i-1).'">'.$i.'</a> ';
}
echo '<p>';
?>
<div class="blockform">
<h2><span><?php echo ''.$lang_arcade['Games'].''; ?></span></h2>
<div class="box">
<div class="inbox">
<table cellspacing="0">
<thead>
<tr>
<th class="tc2" scope="col" width="25%" nowrap="nowrap"><?php echo $lang_arcade['Games'] ?></th>
<th class="tc2" scope="col" width="25%" nowrap="nowrap"><?php echo $lang_arcade['Champion'] ?></th>
<th class="tc3" scope="col" width="25%" nowrap="nowrap"><?php echo $lang_arcade['Personal Best'] ?></th>
<th class="tcr" scope="col" width="25%" ><?php echo $lang_arcade['Description'] ?> / <?php echo $lang_arcade['How to play'] ?></th>
</tr>
</thead>
<tbody>
<?php
// Filter query
$result = $db->query('SELECT * FROM '.$db->prefix.'arcade_games '.$sqlquery." LIMIT $currec,$nump") or error("Impossible to filter games", __FILE__, __LINE__, $db->error());
while($line = $db->fetch_assoc($result))
{
// Find Top Highscore of each game
$sql2 = 'SELECT rank_player, rank_score, username, id FROM '.$db->prefix.'arcade_ranking, '.$db->prefix.'users WHERE rank_game = "'.$line['game_filename'].'" AND '.$db->prefix.'users.id = '.$db->prefix.'arcade_ranking.rank_player ORDER BY rank_score DESC LIMIT 1';
$query = $db->query($sql2) or error("Impossible to find the topscore of each game", __FILE__, __LINE__, $db->error());
$resultat = $db->fetch_assoc($query);
if (($resultat['rank_score']) && ($pun_config['arcade_showtop'] > 0))
$h_score = ''.$lang_arcade['Top highscore'].'<strong>'.$resultat['rank_score'].'</strong><i> '.$lang_arcade['by'].' <strong><a href="profile.php?id='.$resultat['id'].'">'.$resultat['username'].'</a></i></strong> <p>'.$lang_arcade['played'].' <strong>'.$line['game_played'].'</strong></p>';
else
$h_score = ' ';
echo ' <thead>
<tr>
<td class="tc1" scope="col" width="25%" ><table style="padding: 0px 0px 0px 0px; border:none; "><tr style="padding: 0px 0px 0px 0px; border:none; ">
<td style="padding: 0px 0px 0px 0px; border:none; " align="left" width="50"><a href="arcade_play.php?id='.$line['game_id'].'" title="'.$lang_arcade['Pic Click'].'"><img src="games/images/'.$line['game_image'].'" alt="'.$line['game_name'].'" /></a></td>
<td style="padding: 0px 0px 0px 0px; border:none; " align="left">'.$lang_arcade['Play'].': "<a href="arcade_play.php?id='.$line['game_id'].'" title="'.$lang_arcade['Pic Click'].'">'.$line['game_name'].'</a>"<br>
'.$lang_arcade['times played'].' <strong>'.$line['game_played'].'</strong></td>
</tr>
</table></td>
<td class="tc2" scope="col" width="25%" nowrap="nowrap">';
if ($resultat['rank_score'] > 0) {
echo''.$lang_arcade['Top highscore'].'<strong>'.$resultat['rank_score'].'</strong><br />
<i> '.$lang_arcade['by'].' <strong><a href="profile.php?id='.$resultat['id'].'">'.$resultat['username'].'</a></i></strong><br />
<a href="arcade_ranking.php?id='.$line['game_id'].'">'.$lang_arcade['View Highscores'].'</a>'; } else { echo ''.$lang_arcade['Top highscore'].'<strong> N/A'; } echo '</td>
<td class="tc2" scope="col" width="25%" nowrap="nowrap">';
$result21 = $db->query('SELECT rank_score, game_id, game_name, game_played FROM '.$db->prefix.'arcade_ranking, '.$db->prefix.'arcade_games WHERE rank_game = "'.$line['game_filename'].'" AND rank_player = "'.$pun_user['id'].'"') or error('Unable to fetch scores info', __FILE__, __LINE__, $db->error());
if(mysql_num_rows($result21) <= 0)
{
?>
<? echo $lang_arcade['Not played Yet'] ?><?php echo '<br />'.$lang_arcade['Play'].': <br />"<a href="arcade_play.php?id='.$line['game_id'].'" title="'.$lang_arcade['Pic Click'].'">'.$line['game_name'].'</a>"'; ?>
<?php
}
else
{
$line21 = $db->fetch_assoc($result21);
?>
<? echo $lang_arcade['Personal Best'],': ' ?> <strong><? echo $line21['rank_score'] ?></strong>
<?php
}
?><?php echo '</td>
<td class="tc1" scope="col" width="25%" ><i>'.$line['game_desc'].'</i></td>
</tr>
</thead>';
}
?>
</tbody></table></div></div></div>
<?php
// Generate page links
if ($cp>1)
{
echo $lang_common['Pages'],':';
for ($i=1;$i<=$cp;$i++)
if (($i-1)==$s_page) echo " $i ";
else echo ' <a href="'.$_SERVER['PHP_SELF'].'?page='.($i-1).'">'.$i.'</a> ';
}
echo '<p>';
require PUN_ROOT.'footer.php';
}
else
message($lang_common['No permission']);