diff options
author | BlueRaja <BlueRaja.admin@gmail.com> | 2013-01-24 19:55:55 -0600 |
---|---|---|
committer | BlueRaja <BlueRaja.admin@gmail.com> | 2013-01-24 19:55:55 -0600 |
commit | 41ee7f7185ed4bf6081fa30aeb62cc5128f97877 (patch) | |
tree | 93de5c96292fa23c22c5b00c7013fa828e6cfcd5 | |
parent | 0dcddd8c08227e5f49345fee37d21a5c3424452a (diff) | |
download | pathery-41ee7f7185ed4bf6081fa30aeb62cc5128f97877.tar.xz |
Countdown now shows time to next weekly map as well
-rw-r--r-- | includes/datas.php | 19 | ||||
-rw-r--r-- | pages/home.php | 77 |
2 files changed, 67 insertions, 29 deletions
diff --git a/includes/datas.php b/includes/datas.php index 5dcbe1e..41456a1 100644 --- a/includes/datas.php +++ b/includes/datas.php @@ -481,6 +481,20 @@ function hasChallengeBeenCompleted($challenge, $solution, $moves, $paths) { } /** + * Returns the datetime of the next weekly map + */ +function getNextWeeklyMapDateTime() +{ + $sql = "SELECT MAX(mapExpireTime) AS mapExpireTime + FROM mapOfTheDay + WHERE mapType = " . MapType::Weekly; + + $result = mysql_query($sql); + $row = mysql_fetch_row($result); + return $row[0]; +} + +/** * Hack, due to positions being stored as x,y in some places and y,x in others */ function swapXandYCoordinates($position) @@ -512,10 +526,7 @@ function isChallengeMap($mapID) { ID = '$mapID' AND `isChallenge` = true; "; $result = mysql_query($sql) or die(mysql_error()); - if (mysql_num_rows($result) == 0) - return false; - else - return true; + return (mysql_num_rows($result) != 0); } function applyAchievements($userID, $aType) { diff --git a/pages/home.php b/pages/home.php index 937cba8..8d60254 100644 --- a/pages/home.php +++ b/pages/home.php @@ -249,43 +249,70 @@ function displayMaze($motd, $mapType) { return $r;
}
-$timerem = strtotime("tomorrow") - strtotime("now");
+$timeUntilNewDailyMap = strtotime("tomorrow") - strtotime("now");
+$timeUntilNewWeeklyMap = strtotime(getNextWeeklyMapDateTime()) - strtotime("now");
+
?>
<div>
<span id="countdown" title="This time is relative to your computer's clock">Loading...</span>
</div>
<script type="text/javascript">
var countdownInt = self.setInterval(countdown, 1000);
- var tomorrow = new Date();
+
//We're counting down to "tomorrow"
- tomorrow.setTime(tomorrow.getTime() + <? echo $timerem; ?> * 1000);
-
- var userConfirm = true;
+ var tomorrow = new Date();
+ tomorrow.setTime(tomorrow.getTime() + <? echo $timeUntilNewDailyMap; ?> * 1000);
var formatedTomorrow = tomorrow.format("ddd h:MM TT");
-
- function countdown() {
- var now = new Date();
- now.setTime(now.getTime());
- //Find the difference in seconds between now and tomorrow.
- var timerem = tomorrow.getTime() - now.getTime();
-
- timerem = timerem / 1000;
- var totalSeconds = timerem;
- if (timerem < 1)
+
+ var nextWeeklyMap = new Date();
+ nextWeeklyMap.setTime(nextWeeklyMap.getTime() + <? echo $timeUntilNewWeeklyMap; ?> * 1000);
+ var formattedNextWeeklyMap = nextWeeklyMap.format("ddd h:MM TT");
+
+ var userConfirm = true;
+
+ function millisecondsToTimeString(time)
+ {
+ //Ugh, this is a mess.
+ time = time / 1000;
+ if (time < 1)
window.clearInterval(countdownInt);
- var hours = addZero(timerem/3600);
- timerem = timerem%3600;
- var minutes = addZero(timerem/60);
- timerem = timerem%60;
+ var hours = time/3600;
+ var days = (hours >= 24 ? hours/24 : 0);
+ var hoursStr = addZero(hours%24);
+ var daysStr = addZero(days);
+
+ time = time%3600;
+ var minutesStr = addZero(time/60);
+
+ time = time%60;
+ var secondsStr = addZero(time);
+
+ var timeStr = "";
+ if(days > 0)
+ timeStr += daysStr + ":";
+ timeStr += hoursStr + ":" + minutesStr + ":" + secondsStr;
- var seconds = addZero(timerem);
- var stamp = hours + ":" + minutes;
- //if (hours < 1 && minutes < 5)
- stamp = stamp + ":" + seconds
- stamp = 'New maps: ' + formatedTomorrow + '<br />Time remaining: ' + stamp;
+ return timeStr;
+ }
+
+ function countdown()
+ {
+ var isWeeklyMap = (document.getElementById("dl-" + <? echo MapType::Weekly; ?>).className.indexOf('selected') >= 0)
+
+ var newMapStr;
+ if(isWeeklyMap)
+ {
+ var timerem = nextWeeklyMap.getTime() - new Date().getTime();
+ newMapStr = 'New weekly map: ' + formattedNextWeeklyMap + '<br />Time remaining: ' + millisecondsToTimeString(timerem);
+ }
+ else
+ {
+ var timerem = tomorrow.getTime() - new Date().getTime();
+ newMapStr = 'New maps: ' + formatedTomorrow + '<br />Time remaining: ' + millisecondsToTimeString(timerem);
+ }
- document.getElementById("countdown").innerHTML = stamp;
+ document.getElementById("countdown").innerHTML = newMapStr;
if (totalSeconds <= 1 && userConfirm == true) {
userConfirm = confirm("It's Tomorrow Today! Go to new maps?")
if (userConfirm) {
|