summaryrefslogtreecommitdiffstats
path: root/pages/leaderboard.php
diff options
context:
space:
mode:
Diffstat (limited to 'pages/leaderboard.php')
-rw-r--r--pages/leaderboard.php85
1 files changed, 43 insertions, 42 deletions
diff --git a/pages/leaderboard.php b/pages/leaderboard.php
index 8f4dcc6..440f1e5 100644
--- a/pages/leaderboard.php
+++ b/pages/leaderboard.php
@@ -13,28 +13,29 @@ include('./includes/datas.php');
include_once ('./includes/db.inc.php');
-
-//Holy non-PHP included function batman.
-function date_diff($date1, $date2) {
- $current = $date1;
- $datetime2 = date_create($date2);
- $count = 0;
- while(date_create($current) < $datetime2){
- $current = gmdate("Y-m-d", strtotime("+1 day", strtotime($current)));
- $count++;
- }
- return $count;
-}
+function day_diff($date1, $date2) {
+ $current = $date1;
+ $datetime2 = date_create($date2);
+ $count = 0;
+ while(date_create($current) < $datetime2){
+ $current = gmdate("Y-m-d", strtotime("+1 day", strtotime($current)));
+ $count++;
+ }
+ return $count;
+}
//The date to display
$dateDisplay = date('Y-m-d', strtotime("-1 days"));
//This is only used in a strtotime function, so this should be safe.
-$dateLookup = $_GET['date'];
-if (!strtotime($dateLookup))
+if (isset($_GET['date'])) {
+ $dateLookup = $_GET['date'];
+ if (!strtotime($dateLookup))
+ $dateLookup = $dateDisplay;
+} else
$dateLookup = $dateDisplay;
-$daysAgo = date_diff($dateLookup, date('Y-m-d'));
+$daysAgo = day_diff($dateLookup, date('Y-m-d'));
$dateAgo = strtotime("-$daysAgo days");
$dateAsStr = date('l F jS Y', $dateAgo);
@@ -55,13 +56,13 @@ $mStats = getStat(4, $daysAgo);
function getStat ($type, $daysAgo = 1) {
switch ($type) {
-
+
//Todays
case 1:
$where = "
- DATE_ADD(CURDATE(), INTERVAL -0 DAY) =
+ DATE_ADD(CURDATE(), INTERVAL -0 DAY) =
DATE_FORMAT(solutions.dateModified,'%Y-%m-%d')
- AND DATE_ADD(CURDATE(), INTERVAL -0 DAY) =
+ AND DATE_ADD(CURDATE(), INTERVAL -0 DAY) =
DATE_FORMAT(maps.dateCreated,'%Y-%m-%d')
";
$statname = "Today's Best Overall:";
@@ -69,9 +70,9 @@ function getStat ($type, $daysAgo = 1) {
//Yesterdays
case 2:
$where = "
- DATE_ADD(CURDATE(), INTERVAL -$daysAgo DAY) =
+ DATE_ADD(CURDATE(), INTERVAL -$daysAgo DAY) =
DATE_FORMAT(solutions.dateModified,'%Y-%m-%d')
- AND DATE_ADD(CURDATE(), INTERVAL -$daysAgo DAY) =
+ AND DATE_ADD(CURDATE(), INTERVAL -$daysAgo DAY) =
DATE_FORMAT(maps.dateCreated,'%Y-%m-%d')
";
$statname = "Yesterday's Best Overall:";
@@ -81,7 +82,7 @@ function getStat ($type, $daysAgo = 1) {
break;
case 3:
$where = "
- YEARweek(solutions.dateModified) = YEARweek(CURRENT_DATE)
+ YEARweek(solutions.dateModified) = YEARweek(CURRENT_DATE)
";
$statname = "This week, starting Sunday";
break;
@@ -93,15 +94,15 @@ function getStat ($type, $daysAgo = 1) {
break;
}
- $sql = "SELECT
- users.displayName as Name,
+ $sql = "SELECT
+ users.displayName as Name,
SUM(solutions.moves) as Moves,
timediff(MAX(dateModified), maps.dateCreated) as Timetaken,
userData.wallColor,
userData.wallEmblem,
userData.displayColor,
users.ID as userID
- FROM `maps`
+ FROM `maps`
JOIN `solutions`
ON maps.ID = solutions.mapID
JOIN `users`
@@ -131,7 +132,7 @@ if ($daysAgo > 1) {
echo "<a href='leaderboard?date=$dateNextDay' title='Newer'>Next Day</a>";
}
echo "<a href='leaderboard?date=$datePrevDay' title='Older'>Previous Day</a>";
-
+
$statContent .= displayPastMaze(1, 'Simple', $daysAgo);
$statContent .= displayPastMaze(2, 'Normal', $daysAgo);
$statContent .= displayPastMaze(3, 'Complex', $daysAgo);
@@ -143,7 +144,7 @@ if ($specialMapName != '')
?>
</div>
-
+
<div id="difficulties">
<a href="javascript:showStats(1)" id="dl-1">Simple</a>
<a href="javascript:showStats(2)" id="dl-2">Normal</a>
@@ -161,18 +162,18 @@ function displayPastMaze($mapType, $name, $daysAgo = 1) {
//Ensure no cheating
if ($daysAgo < 1)
return;
-
- $sql = "SELECT
+
+ $sql = "SELECT
maps.ID as mapID,
solution,
- users.displayName as Name,
+ users.displayName as Name,
SUM(solutions.moves) as Moves,
timediff(solutions.dateModified, maps.dateCreated) as Timetaken,
userData.wallColor,
userData.wallEmblem,
userData.displayColor,
users.ID as userID
- FROM `maps`
+ FROM `maps`
JOIN `solutions`
ON maps.ID = solutions.mapID
JOIN `users`
@@ -181,16 +182,16 @@ function displayPastMaze($mapType, $name, $daysAgo = 1) {
ON maps.ID = mapOfTheDay.mapID
LEFT JOIN `userData`
ON users.ID = userData.userID
- WHERE DATE_ADD(CURDATE(), INTERVAL -$daysAgo DAY) =
+ WHERE DATE_ADD(CURDATE(), INTERVAL -$daysAgo DAY) =
DATE_FORMAT(solutions.dateModified,'%Y-%m-%d')
- AND DATE_ADD(CURDATE(), INTERVAL -$daysAgo DAY) =
+ AND DATE_ADD(CURDATE(), INTERVAL -$daysAgo DAY) =
DATE_FORMAT(maps.dateCreated,'%Y-%m-%d')
AND `mapType` = '$mapType'
GROUP BY solutions.userID
ORDER BY Moves DESC, `dateModified` ASC
";
$result = mysql_query($sql);
-
+
$statname = "Yesterday's Best $name:";
if ($daysAgo > 1) {
$statname = "$daysAgo days ago's Best $name:";
@@ -201,13 +202,13 @@ function displayPastMaze($mapType, $name, $daysAgo = 1) {
$mapID = $pastMap;
$mapcode = getMapCode($mapID);
$map = GenerateMapByCode($mapcode);
-
+
//Sucky temporary solution:
$GLOBALS['specialMapName'] = $map[0][6];
-
+
$sql = "SELECT `moves`, `displayName`, `solution`
FROM `solutions`, `users`
- WHERE `mapID` = '$mapID' AND
+ WHERE `mapID` = '$mapID' AND
`userID` = users.ID
ORDER BY `moves` DESC, `dateModified` ASC
LIMIT 1";
@@ -219,7 +220,7 @@ function displayPastMaze($mapType, $name, $daysAgo = 1) {
//echo DisplayMap($map, $mapID);
}
$r = '';
-
+
$r .= '<div style="clear: both"></div>';
$r .= "<div id=\"yms-$mapType\">";
$r .= '<div class="col1">';
@@ -228,7 +229,7 @@ function displayPastMaze($mapType, $name, $daysAgo = 1) {
$r .= '<div class="col2">';
$r .= "Best solution for this map: <b>$bestMoves by $byName </b>";
- $r .= DisplayMap($map, $mapID, 'example', 2);
+ $r .= DisplayMap($map, $mapID, 'example', 2);
$r .= '</div>';
$r .= '</div>';
return $r;
@@ -246,8 +247,8 @@ function displaystats($result, $caption = NULL) {
//Headers on the top. including Rank.
$r .= "<tr>";
$r .= $headers;
- $r .= "</tr>";
-
+ $r .= "</tr>";
+
$i = 1;
while ($row = mysql_fetch_assoc($result)) {
$rowcontent = '';
@@ -258,11 +259,11 @@ function displaystats($result, $caption = NULL) {
$displayColor = $row['displayColor'];
$displayName = $row['Name'];
$userID = $row['userID'];
-
+
//Default
if ($wallColor == '')
$wallColor = '#666666';
-
+
$r .= "<tr class='lbrow' onmouseover='changeWallEmblem(\"$wallEmblem\"); changeWallColor(\"$wallColor\"); loadSol(\"$mapid:$solution\");'>\n";
$r .= "<td>$i</td>";
$r .= "<td><span title='UserID: $userID'><a href='achievements?id=$userID' style='color:$displayColor'>$displayName</a></span></td>";