From 6b490faf136fedaee9759a1b6164a90dcdb0f408 Mon Sep 17 00:00:00 2001 From: BlueRaja Date: Mon, 1 Oct 2012 21:12:59 -0500 Subject: Completed an ugly but functional draft of the challenge-listing page --- css/challenge.css | 24 +++++++++++++++++++++++ images/challenge_complete.png | Bin 0 -> 850 bytes images/challenge_incomplete.png | Bin 0 -> 993 bytes includes/datas.php | 18 ++++++++++++++++- pages/challengelist.php | 42 +++++++++++++++++++++++++++++++++++++++- 5 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 images/challenge_complete.png create mode 100644 images/challenge_incomplete.png 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 new file mode 100644 index 0000000..f0e1b26 Binary files /dev/null and b/images/challenge_complete.png differ diff --git a/images/challenge_incomplete.png b/images/challenge_incomplete.png new file mode 100644 index 0000000..5b9b130 Binary files /dev/null and b/images/challenge_incomplete.png differ 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 '
'; + $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 ''; + } + $currentTier = $challenge["challengeTier"]; + echo "
Tier $currentTier
"; + echo ""; + } + + //Each map gets it own row + if($challenge["mapID"] != $currentMap) + { + if($currentMap >= 0) + { + echo ''; + } + $currentMap = $challenge["mapID"]; + $mapName = $challenge["challengeName"]; + if($mapName == NULL || $mapName == "") + $mapName = "(unknown)"; + echo ""; + echo "
"; + } + + //Each challenge gets its own star + if($challenge["dateSolved"] !== NULL) + $cssClass = "challengelist_complete"; + else + $cssClass = "challengelist_incomplete"; + echo "
"; + } + echo "
"; } ?> \ No newline at end of file -- cgit v1.2.3