Ejemplo n.º 1
0
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);
    }
}
Ejemplo n.º 2
0
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';
    }
}