<?php
/***************************************************************************
*
* activity.php
* -------------------
* begin : Thursday, July 21, 2004
* copyright : (c) 2004 dEfEndEr
* email :
support@free-game.co.uk
*
* $Id: activity.php,v 2.0.7 2004/07/11 dEfEndEr Exp $
* Support @
http://www.free-game.co.uk
* v 2.0.0 2003/12/18 12:59:59 Napoleon
*
***************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
***************************************************************************
*
* This is a MOD for phpbb v2.0.+ The phpbb group has all rights to the
* phpbb source. They can be contacted at :
*
* I-Net :
http://www.phpbb.com
* E-Mail:
support@phpbb.com
*
***************************************************************************/
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_arcade.' . $phpEx);
include($phpbb_root_path . 'includes/functions_arcade.'.$phpEx);
include($phpbb_root_path . 'includes/bbcode.' .$phpEx);
// Start session management
$userdata = session_pagestart($user_ip, PAGE_ACTIVITY);
init_userprefs($userdata);
$page_title = $board_config['sitename'] . ' - Arcade'; // This is Hard Coded as it is a NAME.
$user_id = $userdata['user_id'];
// End session management
if($board_config['games_offline'] && $userdata[user_level] != ADMIN)
{
message_die(GENERAL_MESSAGE, $lang['games_are_offline'], 'Information');
}
define('SHOW_ONLINE', true);
if($board_config['use_rewards_mod'])
{
if($board_config['use_point_system'])
{
include($phpbb_root_path . 'includes/functions_points.'.$phpEx);
}
if($board_config['use_cash_system'] || $board_config['use_allowance_system'])
{
include($phpbb_root_path . 'includes/rewards_api.'.$phpEx);
}
}
if (isset($HTTP_GET_VARS['cat_id']) || isset($HTTP_POST_VARS['cat_id']))
{
$cat_id = (isset($HTTP_GET_VARS['cat_id'])) ? $HTTP_GET_VARS['cat_id'] : $HTTP_POST_VARS['cat_id'];
$cat_id = intval(htmlspecialchars($cat_id));
}
if (isset($HTTP_GET_VARS['search_word']) || isset($HTTP_POST_VARS['search_word']))
{
$mode = 'search';
}
else if (isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']))
{
$mode = (isset($HTTP_GET_VARS['mode'])) ? $HTTP_GET_VARS['mode'] : $HTTP_POST_VARS['mode'];
$mode = htmlspecialchars($mode);
}
else
{
if( isset($HTTP_POST_VARS['game']) )
{
$mode = 'game';
}
else if( isset($HTTP_POST_VARS['stats']) )
{
$mode = 'stats';
}
else
{
$mode = '';
}
}
if (isset($HTTP_GET_VARS['sort_mode']) || isset($HTTP_POST_VARS['sort_mode']))
{
$sort_mode = (isset($HTTP_GET_VARS['sort_mode'])) ? $HTTP_GET_VARS['sort_mode'] : $HTTP_POST_VARS['sort_mode'];
$sort_mode = htmlspecialchars($sort_mode);
}
$start = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0;
$start = intval(htmlspecialchars($start));
if(isset($HTTP_POST_VARS['order']))
{
$sort_order = ($HTTP_POST_VARS['order'] == 'DESC') ? 'DESC' : 'ASC';
}
else if(isset($HTTP_GET_VARS['order']))
{
$sort_order = ($HTTP_GET_VARS['order'] == 'DESC') ? 'DESC' : 'ASC';
}
else
{
$sort_order = 'DESC';
}
$sort_order = htmlspecialchars($sort_order);
if ($board_config['use_point_system'])
{
$game_cost = $board_config['points_name'];
}
else
{
$game_cost = $lang['game_cost'];
}
$mode_types_text = array('Date Added',Alphabetically,$lang['game_instructions'], $game_cost, $lang['game_bonuses'], $lang['game_played']);
$mode_types = array('default','alphabetical', 'game_instructions', 'game_charge', 'game_bonus', 'game_played');
$select_sort_mode = '<select name="sort_mode">';
for($i = 0; $i < count($mode_types_text); $i++)
{
$selected = ( $sort_mode == $mode_types[$i] ) ? ' selected="selected"' : '';
$select_sort_mode .= '<option value="' . $mode_types[$i] . '"' . $selected . '>' . $mode_types_text[$i] . '</option>';
}
$select_sort_mode .= '</select>';
$select_sort_order = '<select name="order">';
if($sort_order == 'DESC')
{
$select_sort_order .= '<option value="DESC" selected="selected">' . $lang['Sort_Descending'] . '</option><option value="ASC">' . $lang['Sort_Ascending'] . '</option>';
}
else
{
$select_sort_order .= '<option value="DESC">' . $lang['Sort_Descending'] . '</option><option value="ASC" selected="selected">' . $lang['Sort_Ascending'] . '</option>';
}
$select_sort_order .= '</select>';
switch( $sort_mode )
{
case 'alphabetical':
$order_by = "game_desc $sort_order LIMIT $start," . $board_config['games_per_page'];
break;
case 'game_instructions':
$order_by = "instructions $sort_order LIMIT $start," . $board_config['games_per_page'];
break;
case 'game_charge':
$order_by = "game_charge $sort_order LIMIT $start," . $board_config['games_per_page'];
break;
case 'game_bonus':
$order_by = "game_bonus $sort_order LIMIT $start," . $board_config['games_per_page'];
break;
case 'game_played':
$order_by = "played $sort_order LIMIT $start," . $board_config['games_per_page'];
break;
default:
$order_by = "game_id $sort_order LIMIT $start, " . $board_config['games_per_page'];
break;
}
if($cat_id > 0)
{
$sql = "SELECT * FROM " . iNA_CAT . "
WHERE cat_id = " . $cat_id;
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, $lang['no_game_data'], '', __LINE__, __FILE__, $sql);
}
$cat_info = $db->sql_fetchrow($result);
$catagory_name = $cat_info['name'];
$mod_id = $cat_info['mod_id'];
$page_title .= ' - ' . $cat_info['name'];
}
else
{
$catagory_name = $lang['all_games'];
}
$url = ' -> <a href="activity.' . $phpEx . '" class="nav">' . $lang['games_catagories'] . '</a> -> <a href="activity.' . $phpEx . '?mode=cat&cat_id=' . $cat_id . '&start=' . $start . '&sort_mode=' . $sort_mode . '&order=' . $sort_order . '" class="nav">' . $catagory_name . '</a>';
//
// Mode will tell me what the user wants me to do.
//
if( $mode != '' )
{
$game_id = (isset($HTTP_GET_VARS['id'])) ? intval($HTTP_GET_VARS['id']) : 0;
$game_id = intval(htmlspecialchars($game_id));
// Grab Game info from game_id
$sql = "SELECT * FROM " . iNA_GAMES . "
WHERE game_id = " . $game_id;
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, $lang['no_game_data'], "", __LINE__, __FILE__, $sql);
}
$game_info = $db->sql_fetchrow($result);
//
// OK, you wanna play

//
if ($mode == 'game')
{
$gen_simple_header = TRUE;
$game_name = $game_info['game_name'];
$game_hash = update_ina_session($userdata['user_id'], $user_ip, PAGE_ACTIVITY, $game_name);
$gamepath = 'game.' . $phpEx . '?gid=' . $game_hash;
$game_charge = $game_info['game_charge'];
if(!$game_id)
{
message_die(GENERAL_MESSAGE, $lang['no_game_data']);
}
if(!$game_info['allow_guest'] && $userdata['username'] == 'Anonymous')
{
message_die(GENERAL_MESSAGE, $lang['games_no_guests'], 'Information');
}
if(($board_config['use_point_system'] && $board_config['use_rewards_mod']) && ( $userdata['user_id'] != ANONYMOUS ))
{
if ($userdata['user_points'] >= $game_charge)
{
subtract_points($user_id,$game_charge);
}
else
{
message_die(GENERAL_MESSAGE, $lang['not_enough_points'], '', __LINE__, __FILE__, $sql);
}
}
if((($board_config['use_cash_system'] || $board_config['use_allowance_system']) && $board_config['use_rewards_mod']) && ( $userdata['user_id'] != ANONYMOUS ))
{
if (get_reward($user_id) >= $game_charge)
{
subtract_reward($user_id,$game_charge);
}
else
{
if($board_config['points_name'])
{
message_die(GENERAL_MESSAGE, $lang['not_enough_points'], '', __LINE__, __FILE__, $sql);
}
else
{
message_die(GENERAL_MESSAGE, $lang['not_enough_reward'], '', __LINE__, __FILE__, $sql);
}
}
}
$header_location = ( @preg_match("/Microsoft|WebSTAR|Xitami/", getenv("SERVER_SOFTWARE")) ) ? "Refresh: 0; URL=" : "Location: ";
header($header_location . append_sid($gamepath, true));
exit;
}
//
// We are looking at the Information for the game.
//
else if ($mode == 'stats')
{
$page_title = $board_config['sitename'] . ' - ' . $game_info['game_desc'];
$page_meta_desc = $page_title;
$page_meta_key = trim(htmlspecialchars(str_replace(",-,",",",str_replace(" ", ",", $game_info['game_desc'] . ',' . $board_config[sitename]))));
if ($game_info['reverse_list'])
{
$list_type = 'ASC';
}
else
{
$list_type = 'DESC';
}
$sql = "SELECT game_name, player_id, score, username FROM " . iNA_SCORES . " s, " . USERS_TABLE . " u
WHERE s.player_id = u.user_id
AND game_name = '" . $game_info['game_name'] . "'
ORDER BY score $list_type";
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, $lang['no_score_data'], "", __LINE__, __FILE__, $sql);
}
$score_info = $db->sql_fetchrow($result);
$sql = "SELECT game_name, player_id, score, username FROM " . iNA_AT_SCORES . " s, " . USERS_TABLE . " u
WHERE s.player_id = u.user_id
AND game_name = '" . $game_info['game_name'] . "'
ORDER BY score $list_type";
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, $lang['no_score_data'], "", __LINE__, __FILE__, $sql);
}
$score_at_info = $db->sql_fetchrow($result);
if($game_info['game_charge'])
{
$cost = $game_info['game_charge'] . " ";
}
else
{
$cost = $lang['game_free'];
}
if($board_config['use_point_system'] && ($game_info['game_charge'] > 0))
{
$cost .= $board_config['points_name'];
}
if($game_info['instructions'])
{
$instructions = $game_info['instructions'];
}
else
{
$instructions = $lang['game_no_instructions'];
}
$image_path = $game_info['image_path'];
if ( $image_path == "" )
{
if( file_exists("./". $game_info['game_path'] ."/". $game_info['game_name'] .".gif") )
$image_path = './' . $game_info['game_path'] . $game_info['game_name'] . '.gif';
else
$image_path = $board_config['games_default_img'];
}
else if ( strlen( $image_path ) < 5 )
{
$image_path = './' . $game_info['game_path'] . $game_info['game_name'] . $game_info['image_path'];
}
$best_player = $score_info['username'];
if( $best_player == 'Anonymous' )
{
$best_player = $lang['Guest'];
}
if($game_info['game_reward'] > 0)
{
$reward = sprintf("Reward given for every %s points scored", $game_info['game_reward']);
}
else
{
$reward = $lang['None'];
}
$template->set_filenames(array('body' => 'arcade_stats.tpl') );
$template->assign_vars(array(
'NAME' => $game_info['game_name'],
'PATH' => $game_info['game_path'],
'U_ADD_FAV' => append_sid("activity.$phpEx?mode=fav&cat_id=$cat_id&id=$game_id"),
'L_ADD_FAV' => $lang['add_fav'],
'IMAGE' => $image_path,
'DESC' => $game_info['game_desc'],
'PLAYED' => $game_info['played'],
'COST' => $cost,
'BONUS' => $game_info['game_bonus'],
'AT_BONUS' => $game_info['at_game_bonus'],
'REWARD' => $reward,
'BEST_PLAYER' => $best_player,
'BEST_SCORE' => doubleval($score_info['score']),
'BEST_AT_PLAYER' => $score_at_info['username'],
'BEST_AT_SCORE' => doubleval($score_at_info['score']),
'INSTRUCTIONS' => $instructions,
'ARCADE_MOD' => sprintf($lang['activitiy_mod_info'], get_ina_version()),
"L_INSTRUCTIONS" => $lang['game_instructions'],
"L_GAME_STATS" => $lang['game_statistics'],
"L_PLAYED" => $lang['game_played'],
"L_PRICE" => $lang['game_stat_price'],
"L_HIGHSCORE" => $lang['game_stat_highscore'],
"L_AT_HIGHSCORE" => $lang['game_stat_at_highscore'],
"L_SCORE_REWARD" => $lang['game_score_reward'],
"L_BEST_PLAYER" => $lang['game_best_player'],
"L_ALL_TIME_SCORE" => $lang['game_all_time_score'],
"L_CURRENT_BEST" => $lang['game_current_best'],
"L_HIGHEST_SCORE" => $lang['game_highest_score'],
"L_TOURNAMENT" => $lang['game_tournament'],
"U_CAT" => $url) );
}
//
// We are looking for the highscores.
//
else if ($mode == "highscore" || $mode == 'at_highscore')
{
$page_title = $game_info['game_desc'] . ' - ' . $cat_info['name'] . ' - ' . $board_config['sitename'] ;
$game_name = $game_info['game_name'];
$highscore_limit = $game_info['highscore_limit'];
$high_score_text = $lang['game_highscores'];
$high_score_table = iNA_SCORES;
if( $mode == "at_highscore" )
{
$high_score_text = $lang['game_at_highscores'] . ' ' . $lang['game_highscores'];
$high_score_table = iNA_AT_SCORES;
$highscore_limit = $game_info['at_highscore_limit'];
}
$url .= " -> " . $game_info['game_desc'];
$template->set_filenames(array('body' => 'arcade_scores.tpl') );
$template->assign_vars(array(
"TITLE" => $game_info['game_desc'],
"L_HIGHSCORE" => $high_score_text,
"L_SCORE" => $lang['game_score'],
"L_PLAYED" => $lang['game_played'],
"DASH" => $lang['game_dash'],
"ARCADE_MOD" => sprintf($lang['activitiy_mod_info'], get_ina_version()),
"U_CAT" => $url));
if ($game_info['reverse_list'])
{
$list_type = 'ASC';
}
else
{
$list_type = 'DESC';
}
$sql = "SELECT game_name, player_id, score, date, username, user_allow_viewonline FROM " . $high_score_table . " s, " . USERS_TABLE . " u
WHERE s.player_id = u.user_id
AND game_name = '" . $game_name . "'
ORDER BY score $list_type";
if (!empty($highscore_limit))
{
$sql .= " LIMIT 0,$highscore_limit";
}
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, $lang['no_score_data'], "", __LINE__, __FILE__, $sql);
}
if ($row = $db->sql_fetchrow($result))
{
$i = 1;
do // Loop until we hit the end

to output the page..
{
$user_name = $row['username'];
if($last_score != $row['score'])
{
$pos = $i;
}
else
{
$pos = ' ';
}
if($pos == 1)
{
$pos = '<img src="images/trophy.gif">';
}
if($user_name == 'Anonymous')
{
$user_name = $lang['Guest'];
}
else if(!$row['user_allow_viewonline'] && $userdata['user_level'] != ADMIN && $userdata['user_level'] != MOD)
{
$user_name = $lang['game_hidden'];
}
$template->assign_block_vars("scores", array(
"ROW_COLOR" => $lang['game_number'] . ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'],
"ROW_CLASS" => ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'],
"POS" => $pos,
"NAME" => $user_name,
"SCORE" => doubleval($row['score']),
"DATE" => create_date($board_config['default_dateformat'], $row['date'], $board_config['board_timezone'])) );
$i++;
$last_score = $row['score'];
}
while ($row = $db->sql_fetchrow($result));
}
}
//
// User Game Stats
//
else if ($mode == 'game_stats')
{
$url = ' -> <a href="activity.' . $phpEx . '" class="nav">' . $lang['games_catagories'] . '</a>';
$stats_id = intval(htmlspecialchars($game_id));
if($stats_id > 0 && $stats_id < 4)
{
$scores = total_highscores($user_id, iNA_AT_SCORES);
$stats_id = $stats_id + 3;
$table = iNA_AT_SCORES;
}
else
{
$table = iNA_SCORES;
$scores = total_highscores($user_id);
}
if (isset($HTTP_GET_VARS['user_id']) || isset($HTTP_POST_VARS['user_id']))
{
$user_id = (isset($HTTP_GET_VARS['user_id'])) ? $HTTP_GET_VARS['user_id'] : $HTTP_POST_VARS['user_id'];
}
$user_id = intval(htmlspecialchars($user_id));
$template->set_filenames(array('body' => 'arcade_stats_body.tpl') );
$template->assign_vars(array(
"U_CAT" => $url,
"ARCADE_MOD" => sprintf($lang['activitiy_mod_info'], get_ina_version())));
$i = 1;
foreach (explode('|', $scores[$stats_id]) as $game_name)
{
if($game_name)
{
$sql = "SELECT g.game_desc, s.score, s.date FROM ". iNA_GAMES . " g, " . $table . " s
WHERE g.game_name = '$game_name'
AND g.game_name = s.game_name
AND player_id = '$user_id'
LIMIT 0,1";
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, $lang['no_score_data'], "", __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
$template->assign_block_vars("stats", array(
"ROW_CLASS" => ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'],
"GAME" => $row['game_desc'],
"SCORE" => doubleval($row['score']),
"LAST_PLAYED" => create_date($board_config['default_dateformat'], $row['date'], $board_config['board_timezone']) ) );
$i++;
}
}
}
//
// Favorities Mode
//
else if ($mode == 'fav_del')
{
$sql = "DELETE FROM " . iNA_FAV . "
WHERE user_id = '" . $user_id . "'
AND game_id = '" . $game_id . "'";
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, $lang['no_game_data'], "", __LINE__, __FILE__, $sql);
}
$row_count = $db->sql_numrows($result);
$message = 'Deleted from Favorites List<br /><br />';
$message .= '<a href="' . append_sid("activity.$phpEx?mode=fav&cat_id=$cat_id") . '">Return</a>';
message_die(GENERAL_MESSAGE, $message);
}
//
// Moderators Menu
//
else if ($mode == 'mod')
{
$url = ' -> <a href="activity.' . $phpEx . '" class="nav">' . $lang['games_catagories'] . '</a>';
if(($mod_id != $userdata['user_id'] || $mod_id < 1) && $userdata['user_level'] != ADMIN)
{
message_die(GENERAL_MESSAGE, $lang['Not_Moderator'], $lang['Not_Authorised']);
}
$template->set_filenames(array('body' => 'arcade_mod_body.tpl') );
}
//
// Tournament Mode
//
else if ($mode == 'tour')
{
$page_title = $board_config['sitename'] . ' - ' . $tour['tour_name'];
$url = ' -> <a href="activity.' . $phpEx . '" class="nav">' . $lang['games_catagories'] . '</a> -> ' . $tour['tour_name'];
if (isset($HTTP_GET_VARS['id']) || isset($HTTP_POST_VARS['id']))
{
$tour_id = (isset($HTTP_GET_VARS['id'])) ? $HTTP_GET_VARS['id'] : $HTTP_POST_VARS['id'];
}
$tour_id = intval(htmlspecialchars($tour_id));
$sql = "SELECT * FROM " . iNA_TOUR;
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, $lang['no_game_data'], "", __LINE__, __FILE__, $sql);
}
$tour = $db->sql_fetchrow($result);
$template->set_filenames(array('body' => 'arcade_tour_body.tpl') );
$template->assign_vars(array(
"NAME" => $tour['tour_name'],
"U_CAT" => $url,
"ARCADE_MOD" => sprintf($lang['activitiy_mod_info'], get_ina_version())));
}
//
// (DEFAULT if MODE set, so we don't get any template errors.)
//
else
{
//
// Now lets start building the list of Activities for the catagory

//
$game_count = 0;
$template->set_filenames(array('body' => 'arcade_body.tpl') );
if ($board_config['use_gamelib'] == 1)
{
$gamelib_link = "<div align=\"center\"><span class=\"copyright\">" . $lang['game_lib_link'] . "</span></div>";
}
if ($board_config['use_gamelib'] == 0)
{
$gamelib_link = '';
}
if ($board_config['games_tournament_mode'])
{
$total_tournaments = get_total_tour();
$template->assign_block_vars('tournament_menu', array());
}
if ($board_config['use_point_system'] && $board_config['use_rewards_mod'])
{
$template->assign_vars(array("L_MONEY" => $board_config['points_name']));
}
else if (($board_config['use_cash_system'] || $board_config['use_allowance_system']) && $board_config['use_rewards_mod'])
{
$template->assign_vars(array("L_MONEY" => $lang['game_cost']));
}
else
{
$template->assign_vars(array("L_MONEY" => $lang['game_number']));
}
$user_id = $userdata['user_id'];
//
// Seach Mode
//
if ($mode == 'search')
{
if (isset($HTTP_GET_VARS['search_word']) || isset($HTTP_POST_VARS['search_word']))
{
$search_word = (isset($HTTP_GET_VARS['search_word'])) ? $HTTP_GET_VARS['search_word'] : $HTTP_POST_VARS['search_word'];
}
$search_word = (isset($search_word)) ? strtolower(htmlspecialchars($search_word)) : $lang['None'];
$sql = "SELECT * from " . iNA_GAMES . "
WHERE game_desc LIKE '%$search_word%'";
if( $userdata['user_level'] != ADMIN )
{
$sql .= " AND game_avail = 1";
}
}
//
// User Favourites Mode
//
else if ($mode == 'fav')
{
if ($game_id)
{
if (isset($HTTP_GET_VARS['quiet']) || isset($HTTP_POST_VARS['quiet']))
{
$gen_simple_header = TRUE;
}
$sql = "SELECT * FROM " . iNA_FAV . "
WHERE user_id = '" . $user_id . "'
AND game_id = '" . $game_id . "'";
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, $lang['no_game_data'], "", __LINE__, __FILE__, $sql);
}
$row_count = $db->sql_numrows($result);
if($row_count == 0)
{
$sql = "INSERT INTO " . iNA_FAV . " (user_id, game_id)
VALUES ('$user_id', '$game_id')";
if ( !$db->sql_query($sql) )
{
message_die(GENERAL_ERROR, $lang['no_game_data'], "", __LINE__, __FILE__, $sql);
}
}
else if($gen_simple_header != TRUE)
{
$message = 'Already in Favorites List<br /><br />';
$message .= '<a href="' . append_sid("activity.$phpEx?mode=stats&cat_id=$cat_id&id=$game_id") . '">Return</a>';
message_die(GENERAL_MESSAGE, $message);
}
}
if ($gen_simple_header == TRUE)
{
$message = '<a href="javascript:parent.window.close();">' . $lang['game_score_close'] . '</a>';
message_die(GENERAL_MESSAGE, $message);
}
$sql = "SELECT * FROM " . iNA_FAV . " f, " . iNA_GAMES . " g
WHERE f.user_id = '" . $user_id . "'
AND f.game_id = g.game_id";
}
else
{
//
// Taken a leap of faith here, I hope you don't have any 'Anonymous' ADMIN users

//
$sql = "SELECT * FROM " . iNA_GAMES;
if($cat_id > 0)
{
$sql .= " WHERE cat_id = '$cat_id'";
if( $userdata['user_level'] != ADMIN )
{
$sql .= " AND game_avail = 1";
}
}
else if( $userdata['user_level'] != ADMIN )
{
$sql .= " WHERE game_avail = 1";
}
}
if ($mode != 'fav')
{
if ( $user_id == ANONYMOUS )
{
$sql .= " AND allow_guest = 1";
}
$sql .= " ORDER BY $order_by";
}
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, $lang['no_game_data'], "", __LINE__, __FILE__, $listsql);
}
$game_count = $db->sql_numrows($result);
$game_rows = $db->sql_fetchrowset($result);
for($i = 0; $i < $game_count; $i++)
{
$game_id = $game_rows[$i]['game_id'];
if($mode == 'fav')
{
$stats_img = 'images/icon_delete.gif';
$stats_link = append_sid("activity.$phpEx?mode=fav_del&id=$game_id&cat_id=$cat_id&start=$start&order=$sort_order&sort_mode=$sort_mode");
}
else
{
$stats_img = 'templates/subSilver/images/game_info.gif';
$stats_link = append_sid("activity.$phpEx?mode=stats&id=$game_id&cat_id=$cat_id&start=$start&order=$sort_order&sort_mode=$sort_mode");
}
$game_name = $game_rows[$i]['game_name'];
$game_path = $game_rows[$i]['game_path'];
$image_path = $game_rows[$i]['image_path'];
if ( $image_path == "")
{
if( file_exists("./". $game_path ."/". $game_name .".gif") )
{
$image_path = './' . $game_path . '/' . $game_name . '.gif';
}
else
{
$image_path = './' . $board_config['games_default_img'];
}
}
else if ( strlen( $image_path ) < 5 )
{
$image_path = './' . $game_path . '/' . $game_name . $game_rows[$i]['image_path'];
}
else
{
if( !file_exists("./". $game_rows[$i]['image_path']) )
{
$image_path = './' . $board_config['games_default_img'];
}
}
if($board_config['use_rewards_mod'])
{
if($game_rows[$i]['game_charge'])
{
$game_charge = $game_rows[$i]['game_charge'];
}
else
{
$game_charge = $lang['game_free'];
}
}
else
{
$game_charge = $start+$i+1;
}
$game_desc = $game_rows[$i]['game_desc'];
if ( $game_rows[$i]['game_avail'] == 0 )
{
$game_desc .= " (**********OFFLINE**********)";
}
$extension = get_ina_extension($game_name);
if ( ($game_rows[$i]['game_flash'] || $extension == 'swf' || $extension == 'gif' || $extension == 'jpg' || $extension == 'png' ) && $board_config['games_auto_size'])
{
if($game_rows[$i]['game_flash'])
{
$game_size = getimagesize($game_path.$game_name.'.swf');
}
else
{
$game_size = getimagesize($game_path.$game_name);
}
$win_width = $game_size[0] + 20;
$win_height = $game_size[1] + 25;
}
else
{
$win_width = $game_rows[$i]['win_width'] + 20;
$win_height = $game_rows[$i]['win_height'] + 25;
}
if ($game_rows[$i]['reverse_list'])
{
$list_type = 'ASC';
}
else
{
$list_type = 'DESC';
}
$score_info = best_game_player(iNA_SCORES, $game_name, $list_type);
$best_score = $score_info['score'] ? doubleval($score_info['score']) : '';
$best_player_id = $score_info['player_id'];
$best_player = $score_info['username'];
if($best_player != 'Anonymous')
{
if($score_info['user_allow_viewonline'] || $userdata['user_level'] == ADMIN || $userdata['user_level'] == MOD)
{
$temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$best_player_id");
$profile = '<a href="' . $temp_url . '"><span class="gentbl">' . $score_info['username'] . '</span></a>';
$best_player = $profile;
}
else if($best_player)
{
$best_player = $lang['game_hidden'];
}
}
else
{
$best_player = $lang['Guest'];
}
$at_score_info = best_game_player(iNA_AT_SCORES, $game_name, $list_type);
$best_at_score = $at_score_info['score'] ? '<br /><br />'.doubleval($at_score_info['score']) : '';
$best_at_player_id = $at_score_info['player_id'];
$best_at_player = $at_score_info['username'];
if ($best_at_player)
{
if($at_score_info['user_allow_viewonline'] || $userdata['user_level'] == ADMIN || $userdata['user_level'] == MOD)
{
$best_at_player = $at_score_info['username'];
$temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$best_at_player_id");
$profile = '<a href="' . $temp_url . '"><span class="gentbl">' . $best_at_player . '</span></a>';
$best_at_player = '<br /><br />'.$profile;
}
else
{
$best_at_player = '<br /><br />'.$lang['game_hidden'];
}
}
if ($game_rows[$i]['game_show_score'] != '1')
{
$highscore_link = '';
$at_highscore_link = '';
$best_score = '';
$best_player =
$best_at_player = '';
$dash = '';
$bonus_info = ' ';
}
else
{
$bonus_info = $game_rows[$i]['game_bonus'] ? $bonus_info = $game_rows[$i]['game_bonus'] : '';
$bonus_info .= '<br /><br />';
$bonus_info .= $game_rows[$i]['at_game_bonus'] ? $game_rows[$i]['at_game_bonus'] : '<br />';
$highscore_link = "<a href=\"" . append_sid("activity.$phpEx?mode=highscore&id=$game_id&cat_id=$cat_id&start=$start&order=$sort_order&sort_mode=$sort_mode") . "\"> " . $lang['game_highscores'] . "</a>";
$at_highscore_link = "<br />-:-<br /><a href=\"" . append_sid("activity.$phpEx?mode=at_highscore&id=$game_id&cat_id=$cat_id&start=$start&order=$sort_order&sort_mode=$sort_mode") . "\">" . $lang['game_at_highscores'] . "</a>";
$dash = $lang['game_dash'];
}
if (!$board_config['games_at_highscore'])
{
$at_highscore_link = '';
$best_at_score = '';
$best_at_player = '';
$bonus_info = $game_rows[$i]['game_bonus'] ? $bonus_info = $game_rows[$i]['game_bonus'] : '';
}
$template->assign_block_vars("game", array(
'ROW_COLOR' => $lang['game_number'] . ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'],
'ROW_CLASS' => ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'],
'BEST_SCORE' => $best_score,
'BEST_PLAYER' => $best_player,
'BEST_AT_SCORE' => $best_at_score,
'BEST_AT_PLAYER' => $best_at_player,
'TOURNAMENT' => $tournament,
'NAME' => $game_name,
'PATH' => $game_path,
'IMAGE' => $image_path,
'IMAGE_WIDTH' => $board_config['games_image_width'],
'IMAGE_HEIGHT' => $board_config['games_image_height'],
'CHARGE' => $game_charge,
'DESC' => smilies_pass($game_desc),
'WIDTH' => $win_width,
'HEIGHT' => $win_height,
'LINK' => append_sid("activity.$phpEx?mode=game&id=$game_id"),
'STATS_IMAGE' => $stats_img,
'STATS' => $stats_link,
'ALT_STATS' => $lang['game_stats'],
'DASH' => $dash,
'BONUS' => $bonus_info,
'LIST' => $highscore_link,
'AT_LIST' => $at_highscore_link) );
}
$total_all_games = get_games_total('COUNT(*)',$extra);
$total_games_played = get_games_total('SUM(played)',$extra);
$top_games_list = games_list('DESC','10',$cat_id);
if($cat_info['special_play'])
{
if(get_games_total('COUNT(*)',$extra) > $cat_info['special_play'])
{
$bottom_games_list = games_list('ASC','10',$cat_id);
}
else
{
$bottom_games_list = $lang['no_special_play_games'];
}
}
else
{
$bottom_games_list = $lang['no_special_play_games'];
}
//
// Get Pagination Total
//
if ($mode == 'search')
{
$sql = "SELECT count(*) as total from " . iNA_GAMES . "
WHERE game_desc LIKE '%$search_word%'
AND game_id <> 0";
}
else if ($mode == 'fav')
{
$sql = "SELECT count(*) AS total FROM " . iNA_FAV . " f, " . iNA_GAMES . " g
WHERE f.user_id = '" . $user_id . "'
AND f.game_id = g.game_id";
}
else
{
$sql = "SELECT count(*) AS total FROM " . iNA_GAMES . "
WHERE game_id <> 0";
}
if ($userdata['user_id'] == ANONYMOUS )
{
$sql .= " AND allow_guest = 1";
}
if($cat_id > 0)
{
$sql .= " AND cat_id = '$cat_id'";
}
if($userdata['user_level'] != ADMIN)
{
$sql .= " AND game_avail = 1";
}
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, $lang['no_game_total'], '', __LINE__, __FILE__, $sql);
}
if ( $total = $db->sql_fetchrow($result) )
{
$total_games = $total['total'];
$pagination = generate_pagination("activity.$phpEx?mode=$mode&sort_mode=$sort_mode&order=$sort_order&cat_id=$cat_id", $total_games, $board_config['games_per_page'], $start). ' ';
}
if ($board_config['points_name'])
{
$player_points = sprintf($lang['games_total_points'], $userdata[$board_config['default_reward_dbfield']], $board_config['points_name']);
}
else if ($board_config['default_reward_dbfield'])
{
$player_points = sprintf($lang['games_total_points'], $userdata[$board_config['default_reward_dbfield']], $lang['game_points']);
}
if(($mod_id && $mod_id == $user_id) || $userdata['user_level'] == ADMIN)
{
$moderate = '<a href="activity.'.$phpEx.'?mode=mod&cat_id='.$cat_id.'"><img src="'.$images['moderate'].'" border="0" alt="'.$lang{'Rules_moderate2'}.'"></a>';
}
if ($board_config['games_show_stats'])
{
$template->assign_block_vars('stats_menu', array());
}
$template->assign_vars(array(
"GAMELIB_LINK" => $gamelib_link,
"PAGINATION" => $pagination,
"PAGE_NUMBER" => sprintf($lang['Page_of'], ( floor( $start / $board_config['games_per_page'] ) + 1 ), ceil( $total_games / $board_config['games_per_page'] )),
"TOP_HEADER" => $lang['games_top_header'],
"BOTTOM_HEADER" => $lang['games_bum_header'],
"TOTAL_GAMES" => sprintf($lang['total_games'], $total_all_games),
"TOTAL_GAMES_PLAYED" => sprintf($lang['total_games_played'], $total_games_played),
"TOP_TEN_LIST" => smilies_pass($top_games_list),
"BOTTOM_TEN_LIST" => smilies_pass($bottom_games_list),
"PLAYER_POINTS" => $player_points,
"S_GAME_SELECT" => $select_game,
"S_MODE_SELECT" => $select_sort_mode,
"S_ORDER_SELECT" => $select_sort_order,
"S_MODE_ACTION" => append_sid("activity.$phpEx?mode=cat&cat_id=$cat_id&"),
"S_GAMES_REGISTER" => $lang['games_register'],
"L_ACTIVE_TOURNAMENTS" => sprintf($lang['Active_Tournaments'], $total_tournaments),
"L_GAMES" => $lang['game_list'],
"L_TOURNAMENT" => $lang['game_tournament'],
"L_SCORES" => $lang['game_score'],
"L_SCORE_BONUS" => $lang['admin_bonus'],
"L_INFO" => $lang['game_info'],
"L_PLAYER" => $lang['game_best_player'],
"L_ORDER" => $lang['Order'],
"L_SORT" => $lang['Sort'],
"L_SUBMIT" => $lang['Sort'],
"L_GAME_SELECT" => $lang['Game_Select'],
"L_SELECT_SORT_METHOD" => $lang['Select_sort_method'],
"L_GOTO_PAGE" => $lang['Goto_page'],
"L_WELCOME" => sprintf($lang['game_welcome'], $board_config['sitename']),
"L_WELCOME_GUEST" => sprintf($lang['game_guest_welcome'], $board_config['sitename']),
"L_GUEST_TXT" => $board_config['games_default_txt'],
"ARCADE_MOD" => sprintf($lang['activitiy_mod_info'], get_ina_version()),
"MODERATE" => $moderate,
"U_CAT" => $url) );
}
}
//
// OK, so if mode is not set, then show the standard catagory page

//
else
{
$template->set_filenames(array('body' => 'arcade_cats.tpl') );
$sql = "SELECT * FROM " . iNA_CAT . "
ORDER by cat_id";
if(!$result = $db->sql_query($sql))
message_die(GENERAL_ERROR, $lang['no_score_data'], "", __LINE__, __FILE__, $sql);
$i = 1;
$url = ' -> <a href="activity.' . $phpEx . '" class="nav">' . $lang['games_catagories'] . '</a>';
if ($row = $db->sql_fetchrow($result))
{
do // Loop until we hit the end

to output the page..
{
$icon = '';
if($row['icon'])
{
$icon = "<img src=\"" . $row['icon'] . "\" border=\"0\">";
}
$extra = "cat_id = '" . $row['cat_id'] . "'";
$moderator = '';
$moderators = '';
if($row['mod_id'])
{
$sql = "SELECT username FROM " . USERS_TABLE . "
WHERE user_id = '" . $row['mod_id'] . "'";
if(!$user = $db->sql_query($sql))
message_die(GENERAL_ERROR, $lang['no_user_data'], "", __LINE__, __FILE__, $sql);
$mod_row = $db->sql_fetchrow($user);
$moderator = '<br /><b>'.$lang['Moderator'].':</b>';
$temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=". $row['mod_id'] . "");
$profile = ' <a href="' . $temp_url . '"><span class="gentbl">' . $mod_row['username'] . '</span></a>';
$moderators = $profile;
}
$last_played = '';
if($row['last_player'])
{
if($row['last_player'] != ANONYMOUS)
{
$sql = "SELECT username, user_allow_viewonline FROM " . USERS_TABLE . "
WHERE user_id = '" . $row['last_player'] . "'";
if(!$user = $db->sql_query($sql))
message_die(GENERAL_ERROR, $lang['no_user_data'], "", __LINE__, __FILE__, $sql);
$last_row = $db->sql_fetchrow($user);
$temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=". $row['last_player'] . "");
if($last_row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN || $userdata['user_level'] == MOD)
$profile = '<a href="' . $temp_url . '"><span class="gentbl">' . $last_row['username'] . '</span></a>';
else
$profile = $lang['game_hidden'];
}
else
$profile = $lang['Guest'];
if($row['last_game'])
$last_played = '<a href="activity.' . $phpEx . '?mode=cat&cat_id=' . $row['cat_id'] . '">' . $row['last_game'];
if(strlen($row['last_game']) > 24)
$last_played .= '..';
$last_played .= '</a><br />' . create_date($board_config['default_dateformat'], $row['last_time'], $board_config['board_timezone']);
$last_played .= '<br />' . $profile;
}
$template->assign_block_vars("cats", array(
"ROW_COLOR" => $lang['game_number'] . ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'],
"ROW_CLASS" => ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'],
"CAT_ID" => $row['cat_id'],
"TOTAL_GAMES" => get_games_total('COUNT(*)',$extra),
"TOTAL_PLAYED" => get_games_total('SUM(played)',$extra),
"LAST_PLAYED" => $last_played,
"MODERATOR" => $moderator,
"L_MODERATORS" => $moderators,
"ICON" => $icon,
"LINK" => append_sid("activity.".$phpEx."?mode=cat&cat_id=".$row['cat_id']),
"NAME" => $row['name'],
"DESC" => smilies_pass($row['desc'])) );
$i++;
} while ($row = $db->sql_fetchrow($result));
}
$top_games_list = games_list('DESC','10',0);
$bottom_games_list = games_list('ASC','10',0);
if ($board_config['games_tournament_mode'])
{
$template->assign_block_vars('tournament_menu', array());
$total_tournaments = get_total_tour();
}
if ($board_config['games_show_stats'])
{
$template->assign_block_vars('stats_menu', array());
}
$total_scores = total_highscores($user_id);
if($userdata['user_id'] != ANONYMOUS)
{
$at_scores = total_highscores($user_id, iNA_AT_SCORES);
$score_text = sprintf("<br />Highscore <img src=\"images/trophy.gif\"> you have:<br /><br /><b>%d</b> <a href=\"activity.$phpEx?mode=game_stats&id=4\">1st places.</a><br /><b>%d</b> <a href=\"activity.$phpEx?mode=game_stats&id=5\">2nd places.</a><br /><b>%d</b> <a href=\"activity.$phpEx?mode=game_stats&id=6\">3rd places.</a><br />", $total_scores[1] ,$total_scores[2] ,$total_scores[3] );
$at_score_text = sprintf("<br />All Time <img src=\"images/trophy.gif\"> you have:<br /><br /><b>%d</b> <a href=\"activity.$phpEx?mode=game_stats&id=1\">1st places.</a><br /><b>%d</b> <a href=\"activity.$phpEx?mode=game_stats&id=2\">2nd places.</a><br /><b>%d</b> <a href=\"activity.$phpEx?mode=game_stats&id=3\">3rd places.</a><br />", $at_scores[1] ,$at_scores[2] ,$at_scores[3] );
}
else
{
$score_text = sprintf("<br />Highscore <img src=\"images/trophy.gif\"> you have:<br /><br /><b>%d</b> 1st places.<br /><b>%d</b> 2nd places.<br /><b>%d</b> 3rd places.<br />", $total_scores[1] ,$total_scores[2] ,$total_scores[3] );
}
$template->assign_vars(array(
'L_WELCOME' => sprintf($lang['game_welcome'], $board_config['sitename']),
'L_WELCOME_GUEST' => sprintf($lang['game_guest_welcome'], $board_config['sitename']),
'ARCADE_MOD' => sprintf($lang['activitiy_mod_info'], get_ina_version()),
'TOP_HEADER' => $lang['games_top_header'],
'BOTTOM_HEADER' => $lang['games_bum_header'],
'LEADER' => $score_text,
'AT_LEADER' => $at_score_text,
'U_LIST_FAV' => append_sid("activity.$phpEx?mode=fav"),
'ACTIVE_TOURNAMENTS' => sprintf($lang['Active_Tournaments'], $total_tournaments),
'TOP_TEN_LIST' => smilies_pass($top_games_list),
'BOTTOM_TEN_LIST' => smilies_pass($bottom_games_list),
'LINK' => append_sid("activity.$phpEx?mode=cat&cat_id=0"),
'DESC' => "Show all the Games",
'TOTAL_GAMES' => get_games_total('COUNT(*)',''),
'TOTAL_PLAYED' => get_games_total('SUM(played)',''),
'ICON' => '<img src="images/games.gif" border="0">',
'L_SEARCH' => $lang['Search'],
'L_SUBMIT' => $lang['Submit'],
'L_LIST_FAV' => $lang['favorites'],
'L_ACTIVE_TOURNAMENTS' => game_list_tour(),
'L_CAT_ID' => "#",
'L_CATS' => $lang['games_section'],
'U_CAT' => $url,
'ARCADE_MOD' => sprintf($lang['activitiy_mod_info'], get_ina_version())));
}
$page_meta_desc = $page_title;
// Generate page
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
$template->pparse('body');
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>