diff options
-rw-r--r-- | css/challenge.css | 24 | ||||
-rw-r--r-- | images/challenge_complete.png | bin | 0 -> 850 bytes | |||
-rw-r--r-- | images/challenge_incomplete.png | bin | 0 -> 993 bytes | |||
-rw-r--r-- | includes/datas.php | 18 | ||||
-rw-r--r-- | pages/challengelist.php | 42 |
5 files changed, 82 insertions, 2 deletions
diff --git a/css/challenge.css b/css/challenge.css index f12cec4..12ba61a 100644 --- a/css/challenge.css +++ b/css/challenge.css @@ -1,3 +1,4 @@ +/** Challenges page **/ #challenge_wrapper #challenges { } #challenge_wrapper #challenges_title { font-size: 1.3em; @@ -9,4 +10,27 @@ } #challenge_wrapper #challenges_listing .challenge_incomplete { font-weight: bold; +} + +/** Challenge listing page **/ +#challengelist_wrapper #challengelist {} +#challengelist_wrapper #challengelist .challengelist_tier { + font-size: 1.3em; + font-weight: bold; + text-decoration: underline; +} +#challengelist_wrapper #challengelist .challengelist_table {} +#challengelist_wrapper #challengelist .challengelist_table .challengelist_link {} +#challengelist_wrapper #challengelist .challengelist_table .challengelist_stars {} +#challengelist_wrapper #challengelist .challengelist_table .challengelist_complete { + width: 32px; + height: 32px; + background-image: url("../images/challenge_complete.png"); + float: right; +} +#challengelist_wrapper #challengelist .challengelist_table .challengelist_incomplete { + width: 32px; + height: 32px; + background-image: url("../images/challenge_incomplete.png"); + float: right; }
\ No newline at end of file diff --git a/images/challenge_complete.png b/images/challenge_complete.png Binary files differnew file mode 100644 index 0000000..f0e1b26 --- /dev/null +++ b/images/challenge_complete.png diff --git a/images/challenge_incomplete.png b/images/challenge_incomplete.png Binary files differnew file mode 100644 index 0000000..5b9b130 --- /dev/null +++ b/images/challenge_incomplete.png diff --git a/includes/datas.php b/includes/datas.php index e8d5871..fa8bfb0 100644 --- a/includes/datas.php +++ b/includes/datas.php @@ -947,7 +947,23 @@ function loadChallengesForMap($mapIdUnsanitized, $userIdUnsanitized) */ function loadChallengeListing($userIdUnsanitized) { - //TODO: Implement + $userID = mysql_escape_string($userIdUnsanitized); + $sql = " + SELECT maps.ID AS mapID, maps.challengeTier, maps.challengeName, challengeSolutions.dateSolved + FROM maps + INNER JOIN challenges ON maps.ID = challenges.mapID + LEFT JOIN challengeSolutions ON challenges.ID = challengeSolutions.challengeID + WHERE maps.isChallenge = 1 AND challenges.enabled = 1 + AND (challengeSolutions.userID IS NULL OR challengeSolutions.userID = '$userID') + AND maps.challengeTier <= (SELECT challengeTier FROM users WHERE users.ID = '$userID') + ORDER BY maps.challengeTier, maps.challengeSuborder, challenges.ordering + "; + + $result = mysql_query($sql); + echo mysql_error(); + if (mysql_num_rows($result) >= 1) + return $result; + return NULL; } /** diff --git a/pages/challengelist.php b/pages/challengelist.php index e7ade3c..e3f057a 100644 --- a/pages/challengelist.php +++ b/pages/challengelist.php @@ -23,6 +23,7 @@ if (!$accepted) { htmlFooter(); return; } +$userID = $_SESSION['userID']; //TODO: Uncomment //if (!hasCompletedTutorial($userID)) { @@ -58,6 +59,45 @@ htmlFooter(); */ function displayChallengeList($challengeListResultset) { - //TODO: implement + echo '<div id="challengelist">'; + $currentTier = -1; + $currentMap = -1; + while($challenge = mysql_fetch_array($challengeListResultset)) + { + //Each challenge gets its own header/table + if($challenge["challengeTier"] != $currentTier) + { + if($currentTier >= 0) + { + echo '</table>'; + } + $currentTier = $challenge["challengeTier"]; + echo "<div class='challengelist_tier'>Tier $currentTier</div>"; + echo "<table class='challengelist_table'>"; + } + + //Each map gets it own row + if($challenge["mapID"] != $currentMap) + { + if($currentMap >= 0) + { + echo '</td></tr>'; + } + $currentMap = $challenge["mapID"]; + $mapName = $challenge["challengeName"]; + if($mapName == NULL || $mapName == "") + $mapName = "(unknown)"; + echo "<tr><td class='challengelist_link'><a href='challenge?mapID=$currentMap'>$mapName</a></td>"; + echo "<td class='challengelist_stars'>"; + } + + //Each challenge gets its own star + if($challenge["dateSolved"] !== NULL) + $cssClass = "challengelist_complete"; + else + $cssClass = "challengelist_incomplete"; + echo "<div class='$cssClass'></div>"; + } + echo "</td></tr></table>"; } ?>
\ No newline at end of file |