summaryrefslogtreecommitdiffstats
path: root/ajax/challenges.ajax.php
blob: b08698b35db6c7fd723e2612fa262ed27231ddec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?
ob_start("ob_gzhandler");

include('../includes/mapclass.php');
include('../includes/maps.php');


if ($_GET['getChallengeIDs'] == 'true') {
	return getChallengesByTier($_GET['userID']);
	exit;
}

if ($_GET['getChallengeMap'] == 'true') {
	echo getChallengeMapByID($_GET['challengeMapID']);
	exit;
}

function getChallengeMapByID($challengeMapID) {
	//62 days
	$expires = 62*24*60*60;
	// header("Cache-Control: public, maxage=".$expires);
	// header('Expires: ' . gmdate('D, d M Y H:i:s', time()+$expires) . ' GMT');
	// header("Content-type: text/javascript");

	//Remove the ending .js
	$tmp = explode(".", $challengeMapID);
	$challengeID = $tmp[0] * 1;
	if (!is_int($challengeID)) exit;

	$map = new map(getChallengeCode($challengeID), $challengeID);
	return json_encode($map);
}

function getChallengeCode($challengeID) {
	include_once('../includes/sqlEmbedded.php');
	$sql = "SELECT `code`
		FROM `challengeMaps`
		WHERE `ID` = '$challengeID'
		";
	$result = mysql_query($sql);
	if (mysql_num_rows($result) > 0) {
		list($map) = mysql_fetch_row($result);
		return $map;
	}
}



function getChallengesByTier($userIdUnsanitized) {

	include_once('../includes/sqlEmbedded.php');
	$userID = mysql_escape_string($userIdUnsanitized);
	
	$sql = "SELECT challengeMaps.ID AS challengeMapID, challengeMaps.challengeTier, challengeMaps.name AS name,
	challengeSolutions.dateSolved, challengeSolutions.challengeID AS challengeID,
	challengeMaps.challengeSuborder, challenges.ordering, challengeMaps.code as mapCode
	FROM challenges
	INNER JOIN challengeMaps ON challenges.mapID = challengeMaps.ID
	LEFT JOIN challengeSolutions ON challenges.ID = challengeSolutions.challengeID AND challengeSolutions.userID = '$userID'
	WHERE challenges.enabled = 1
	AND challengeMaps.challengeTier <= (SELECT challengeTier FROM users WHERE ID = '$userID' LIMIT 1) OR 1
	ORDER BY challengeMaps.challengeTier, challengeMaps.challengeSuborder, challenges.ordering";
	
	$result = mysql_query($sql) OR die(mysql_error()."SQL: $sql");
	if (mysql_num_rows($result) >= 1) {
		while($data = mysql_fetch_array($result)) {
			//echo $data['challengeMapID'];
			$tier = $data['challengeTier'];
			$challengeSuborder = $data['challengeSuborder'];
			$ordering = $data['ordering'];
			$challenges[$tier][$challengeSuborder][$ordering] = $data;
			//$data['mapObject'] = $challenge;
			$challengeMapID = $data['challengeMapID'];
			$challengeID = $data['challengeID'];
			
			$mapObj = new map($data['mapCode']);
			$mapObj->ID = $challengeMapID;
			$layer[$data['challengeMapID']][$challengeID] = $data;
			$layer[$data['challengeMapID']]['mapObject'] = $mapObj;
			//$layer[] = $data;
		}
		echo json_encode($layer);
	}
	return NULL;
}


?>