summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBlueRaja <BlueRaja.admin@gmail.com>2012-10-01 21:12:59 -0500
committerBlueRaja <BlueRaja.admin@gmail.com>2012-10-01 21:12:59 -0500
commit6b490faf136fedaee9759a1b6164a90dcdb0f408 (patch)
treeb668c9e3703a2afb44c53881d487923463f796a8
parent7a60127a4b17e74860a80a62cdfc53ca37cbff19 (diff)
downloadpathery-6b490faf136fedaee9759a1b6164a90dcdb0f408.tar.xz
Completed an ugly but functional draft of the challenge-listing page
-rw-r--r--css/challenge.css24
-rw-r--r--images/challenge_complete.pngbin0 -> 850 bytes
-rw-r--r--images/challenge_incomplete.pngbin0 -> 993 bytes
-rw-r--r--includes/datas.php18
-rw-r--r--pages/challengelist.php42
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
new file mode 100644
index 0000000..f0e1b26
--- /dev/null
+++ b/images/challenge_complete.png
Binary files differ
diff --git a/images/challenge_incomplete.png b/images/challenge_incomplete.png
new file mode 100644
index 0000000..5b9b130
--- /dev/null
+++ b/images/challenge_incomplete.png
Binary files 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 '<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