function ArcadeGameInfo($id_game, $internal_name = '', $admin = false) { global $smcFunc, $user_info; if (!empty($id_game) && empty($internal_name)) { // By ID $sql = ' AND g.id_game = ' . (int) $id_game; } elseif (!empty($internal_name)) { // By internal_name $sql = ' AND g.internal_name = \'' . $internal_name . '\''; } else { return false; } if (!$admin) { $enabled = 'g.enabled = 1'; } else { $enabled = '1'; } if (allowedTo('arcade_admin')) { $user_info['query_see_game'] = '1'; } // Query with all needed data $result = $smcFunc['db_query']('', ' SELECT g.id_game,g.internal_name,g.game_name,g.game_file, g.game_directory,g.description,g.help, g.thumbnail,g.id_category,g.enabled,g.member_groups, g.score_type,g.game_rating,g.id_member_first, g.id_score_first,g.id_member_second,g.id_score_second, g.id_member_third,g.id_score_third,g.game_width, g.game_height,g.game_bg_colour AS bgcolor, g.topic_id,g.number_plays,c.category_name,f.id_favorite AS is_favorite, s1.score AS gold_score,IFNULL(s2.score, 0) AS silver_score, IFNULL(s3.score, 0) AS bronze_score,IFNULL(pb.id_best, 0) AS id_best, IFNULL(pb.score, 0) AS best,IFNULL(pb.atbscore, 0) AS atbbest, IFNULL(s1.start_time, 0) AS champion_time, IFNULL(m1.real_name, 0) AS real_name1, IFNULL(m2.real_name, 0) AS real_name2, IFNULL(m3.real_name, 0) AS real_name3 FROM {db_prefix}arcade_games as g LEFT JOIN {db_prefix}arcade_categories AS c ON (c.id_category = g.id_category) LEFT JOIN {db_prefix}arcade_favorite AS f ON (f.id_game = g.id_game AND f.id_member = {int:id_mem}) LEFT JOIN {db_prefix}arcade_scores AS s1 ON (s1.id_score = g.id_score_first) LEFT JOIN {db_prefix}arcade_scores AS s2 ON (s2.id_score = g.id_score_second) LEFT JOIN {db_prefix}arcade_scores AS s3 ON (s3.id_score = g.id_score_third) LEFT JOIN {db_prefix}arcade_personalbest AS pb ON (pb.id_game = g.id_game AND pb.id_member = {int:id_mem}) LEFT JOIN {db_prefix}members AS m1 ON (m1.id_member = g.id_member_first) LEFT JOIN {db_prefix}members AS m2 ON (m2.id_member = g.id_member_second) LEFT JOIN {db_prefix}members AS m3 ON (m3.id_member = g.id_member_third) WHERE ' . $user_info['query_see_game'] . ' AND ' . $enabled . ' ' . $sql . ' LIMIT 0,1', array('id_mem' => $user_info['id'])); if ($smcFunc['db_num_rows']($result) == 0) { return false; } $game = $smcFunc['db_fetch_assoc']($result); $smcFunc['db_free_result']($result); if (!$admin) { return BuildGameArray($game); } else { return BuildGameArrayAdmin($game); } }
function GamesAdminList() { global $smcFunc, $scripturl, $txt, $arcSettings, $context, $sourcedir; if (isset($_REQUEST['do']) && $_REQUEST['do'] == 'edit') { GamesAdminEditor(); } elseif (isset($_REQUEST['do']) && $_REQUEST['do'] == 'gamesave') { GamesAdminEditor2(); } else { $where = '1'; $search = false; $context['arcade']['games'] = array(); $gamesPerPage = !empty($arcSettings['gamesPerPageAdmin']) ? $arcSettings['gamesPerPageAdmin'] : 25; //How many games we showing... $gameCount = $arcSettings['arcade_total_games']; if (isset($_REQUEST['category'])) { $result = $smcFunc['db_query']('', ' SELECT count(*) as gc FROM {db_prefix}arcade_games WHERE id_category = {int:catid}', array('catid' => $_REQUEST['category'])); $row = $smcFunc['db_fetch_row']($result); $smcFunc['db_free_result']($result); $gameCount = $row[0]; $search = true; $where = " g.id_category = " . (int) $_REQUEST['category']; } //setup the url.. $parts = array($scripturl . '?action=admin;area=managearcade;sa=listgames'); if ($search) { if (isset($category)) { $parts[] = 'category=' . $category; } } //the page index.. $context['arcade']['pageIndex'] = constructPageIndex(implode(';', $parts), $_REQUEST['start'], $gameCount, $gamesPerPage, false); $_SESSION['arcade_page'] = $_REQUEST['start']; //the games per page $result = $smcFunc['db_query']('', ' SELECT g.id_game, g.game_name, g.description, g.game_rating, g.number_plays, g.game_file, g.game_directory, g.internal_name, g.game_width, g.game_height, g.game_bg_colour AS bgcolor, g.score_type, g.thumbnail, g.help, g.enabled, c.id_category, c.category_name FROM {db_prefix}arcade_games AS g LEFT JOIN {db_prefix}arcade_categories AS c ON (c.id_category = g.id_category) WHERE ' . $where . ' ORDER BY g.game_name LIMIT {int:limit1}, {int:limit2}', array('limit1' => $_REQUEST['start'], 'limit2' => $gamesPerPage)); while ($game = $smcFunc['db_fetch_assoc']($result)) { $context['arcade']['games'][] = BuildGameArrayAdmin($game); } $smcFunc['db_free_result']($result); // Title for page $context['page_title'] = $txt['arcade_title_manage_games']; // Subtemplate $context['sub_template'] = 'games_list'; } }