summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--css/stats.css13
-rw-r--r--do.php18
-rw-r--r--includes/datas.php25
-rw-r--r--js/scores.js104
-rw-r--r--pages/memberlist.php85
5 files changed, 119 insertions, 126 deletions
diff --git a/css/stats.css b/css/stats.css
index 28d6842..122e300 100644
--- a/css/stats.css
+++ b/css/stats.css
@@ -108,6 +108,19 @@ td, th {
position:relative;
}
+.membersList {
+ width:850px;
+}
+
+.scoreRight{
+ float:right;
+ margin: 5px;
+}
+.scoreLeft{
+ float:left;
+ margin: 5px;
+}
+
.scoreMedal {
text-align:left;
diff --git a/do.php b/do.php
index 1009a91..731d69f 100644
--- a/do.php
+++ b/do.php
@@ -57,12 +57,13 @@ if (isset($_GET['checkachieve']) && $_GET['checkachieve'] == 'true' && $_SESSION
}
if ($_GET['r'] == 'reqMemberPage') {
+ $order = $_GET['order'];
+ $orderBy = $_GET['orderBy'];
- $order = 'ORDER BY dateJoined DESC';
$page = $_GET['reqPage'] + 0;
if (!is_int($page))
return;
- $json = getMembers($order, $page, 4);
+ $json = getMembers($page, 10, $order, $orderBy);
$json['page'] = $page;
$encoded = json_encode($json);
die($encoded);
@@ -253,6 +254,10 @@ if ($_GET['r'] == 'getpath') {
}
// --------- CONTINUE EXECUTION ---------
+ //TODO: !! Close the session with session_write_close(); as soon as possible.
+ // This allows the session file to be opened by other requests.
+
+
// Now we don't have to worry about how long we're taking.
// All of this code will execute without the user waiting on the server.
@@ -264,15 +269,6 @@ if ($_GET['r'] == 'getpath') {
////Challenge/Tutorial?
-
- ////--------- RUSH THE PATH BACK TO THE USER
- // ignore_user_abort(true);
- // $encoded = json_encode($json);
- // header("Connection: close");
- // header("Content-Length: " . mb_strlen($encoded));
- // echo $encoded;
- // flush();
-
////TODO: Clean this up a bit
// if ($_GET['isChallenge'] == 'true')
// {
diff --git a/includes/datas.php b/includes/datas.php
index 8ae5d5f..124b303 100644
--- a/includes/datas.php
+++ b/includes/datas.php
@@ -708,7 +708,17 @@ function getChampionPointsArray() {
}
//Select Members
-function getMembers($order, $pageNumber = 1, $pageDivide = 50) {
+function getMembers($pageNumber = 1, $pageDivide = 50, $order = 'DESC', $orderBy = 'dateJoined') {
+
+ if ($order !== 'ASC' AND $order !== 'DESC')
+ $order = 'DESC';
+ $columns = array('dateJoined', 'dateLogin', 'championPoints',
+ 'totalMazes', 'totalWins', 'totalTies', 'totalMovesThisWeek',
+ 'totalMoves', 'display');
+ if (!in_array($orderBy, $columns))
+ $orderBy = 'dateJoined';
+ //These values are now confirmed.
+ $sqlOrder = "ORDER BY `$orderBy` $order";
$top = $pageNumber * $pageDivide;
$bottom = $top - $pageDivide;
@@ -720,7 +730,7 @@ function getMembers($order, $pageNumber = 1, $pageDivide = 50) {
$row = mysql_fetch_assoc($result);
$total = $row['count'];
- $output['pageCount'] = $total / $pageDivide;
+ $output['pageCount'] = ceil(($total / $pageDivide));
$pageRequest = 'all';
if ($pageRequest == 'all') {
@@ -745,17 +755,18 @@ function getMembers($order, $pageNumber = 1, $pageDivide = 50) {
WHERE solutions.userID = users.ID AND
solutions.dateModified BETWEEN DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY) AND CURRENT_DATE)
, 0) AS totalMovesThisWeek,
- users.totalMazes,
- users.totalWins,
- users.totalTies,
+ users.championPoints as championPoints,
+ users.totalMazes as totalMazes,
+ users.totalWins as totalWins,
+ users.totalTies as totalTies,
IfNull(userData.wallColor, '#666666') as wallColor,
- IfNull(userData.displayColor, '#cccccc'),
+ IfNull(userData.displayColor, '#cccccc') as displayColor,
userData.wallEmblem as wallEmblem,
users.datejoined as dateJoined,
users.dateLogin as dateLogin
FROM `users`
LEFT JOIN `userData` ON users.ID = userData.userID
- $order
+ $sqlOrder
LIMIT $limitTop, $pageDivide
";
diff --git a/js/scores.js b/js/scores.js
index 734683a..32f7c7f 100644
--- a/js/scores.js
+++ b/js/scores.js
@@ -219,7 +219,9 @@ function scoresFormatPageNavi(JO) {
//Memberlist related functions:
var membersPages = new Object;
-var membersCurrentPage = 1;
+var membersCurrentPage = 1;
+var membersOrderBy = 'joined';
+var membersOrder = 'ASC';
function membersRequestPage(page) {
console.log('membersRequestPage', page);
@@ -239,7 +241,7 @@ function membersRequestPage(page) {
//console.log("Requesting Page", page, ajax.inUse);
// == Additionally, check for achievements.
- ajax.requestFile = "do.php?r=reqMemberPage&reqPage="+page;
+ ajax.requestFile = "do.php?r=reqMemberPage&reqPage="+page+"&orderBy="+membersOrderBy+"&order="+membersOrder;
ajax.onCompletion = membersRequestPageDone; // Specify function to be executed on response.
//ajax.onLoading = '';
//ajax.onLoaded = '';
@@ -255,8 +257,21 @@ function membersRequestPageDone() {
return;
membersUpdatePage(JO.page, membersFormatPage(JO));
}
+function membersToggleOrder() {
+ if (membersOrder == 'ASC')
+ membersOrder = 'DESC';
+ else
+ membersOrder = 'ASC';
+}
+
+function membersShowPage(page, orderBy) {
+
+ if (orderBy) {
+ if (membersOrderBy == orderBy)
+ membersToggleOrder();
+ membersOrderBy = orderBy;
+ }
-function membersShowPage(page) {
page = page - 0;
console.log('membersShowPage', page);
if (membersPreparePage(page) == false) {
@@ -276,7 +291,7 @@ function membersShowPage(page) {
//Also; update the page
- if (page != membersCurrentPage) {
+ if (page != membersCurrentPage || orderBy) {
membersRequestPage(page);
}
membersCurrentPage = page;
@@ -308,7 +323,7 @@ function membersFormatPageNavi(JO) {
var r = '';
var showedPrevPage = true;
for (var i = 1; i <= JO.pageCount; i++) {
- if (
+ if (
(JO.page > i - 3 && JO.page < i + 3)
|| (i == 1)
|| (i == JO.pageCount)
@@ -329,6 +344,24 @@ function membersFormatPageNavi(JO) {
showedPrevPage = false;
}
}
+ var nextPage = JO.page - 0 + 1;
+ var prevPage = JO.page - 1;
+ if (JO.pageCount > 1) {
+ if (JO.page < JO.pageCount) {
+ r = r+" <a class='scoreRight' title='Last' href='javascript:membersShowPage("+JO.pageCount+")'>&gt;&gt;&gt;</a>";
+ r = r+" <a class='scoreRight' title='Next' href='javascript:membersShowPage("+nextPage+")'>&gt;</a>";
+ } else {
+ r = r+" <span class='scoreRight'>&gt;&gt;&gt;</span>";
+ r = r+" <span class='scoreRight'>&gt;</span>";
+ }
+ if (JO.page > 1) {
+ r = " <a class='scoreLeft' title='Previous' href='javascript:membersShowPage("+prevPage+")'>&lt;</a>"+r;
+ r = " <a class='scoreLeft' title='First' href='javascript:membersShowPage(1)'>&lt;&lt;&lt;</a>"+r;
+ } else {
+ r = r+" <span class='scoreLeft'>&lt;&lt;&lt;</span>";
+ r = r+" <span class='scoreLeft'>&lt;</span>";
+ }
+ }
return r;
}
@@ -336,22 +369,24 @@ function membersFormatPageNavi(JO) {
function membersFormatPage(JO) {
// console.log("Formating page");
- var p = "<table class='score'>";
+ var p = "<table class='membersList score'>";
if (JO.pageCount > 1) {
var navi = membersFormatPageNavi(JO);
- p = p+"<tr><td colspan='9' style='text-align:center;'>"+navi+"</td></tr>";
+ p = p+"<tr><th colspan='10' style='text-align:center;'>"+navi+"</th></tr>";
}
p = p+"<tr title='Updated "+JO.updateTime+"'>";
p = p+"<th>Rank</th>";
- p = p+"<th style='width:125px; overflow:hidden; text-align:left; padding-left:42px;'>Name</th>";
- p = p+"<th>Mazes</th>";
- p = p+"<th>Moves</th>";
- p = p+"<th>Past Week</th>";
- p = p+"<th>Wins</th>";
- p = p+"<th>Ties</th>";
- p = p+"<th>Joined</th>";
- p = p+"<th>Last Login</th>";
+ p = p+"<th style='width:185px; overflow:hidden; text-align:left; padding-left:42px;'>";
+ p = p+" <a href='javascript:membersShowPage("+membersCurrentPage+",\"display\")'>Name</a></th>";
+ p = p+"<th><a title='Champion Points' href='javascript:membersShowPage("+membersCurrentPage+",\"championPoints\")'>CP</a></th>";
+ p = p+"<th><a href='javascript:membersShowPage("+membersCurrentPage+",\"totalMazes\")'>Mazes</a></th>";
+ p = p+"<th><a href='javascript:membersShowPage("+membersCurrentPage+",\"totalMoves\")'>Moves</a></th>";
+ p = p+"<th><a href='javascript:membersShowPage("+membersCurrentPage+",\"totalMovesThisWeek\")'>Past Week</a></th>";
+ p = p+"<th><a href='javascript:membersShowPage("+membersCurrentPage+",\"totalWins\")'>Wins</a></th>";
+ p = p+"<th><a href='javascript:membersShowPage("+membersCurrentPage+",\"totalTies\")'>Ties</a></th>";
+ p = p+"<th><a href='javascript:membersShowPage("+membersCurrentPage+",\"dateJoined\")'>Joined</a> &#8679;</th>";
+ p = p+"<th><a href='javascript:membersShowPage("+membersCurrentPage+",\"dateLogin\")'>Last Login</a> &#8681</th>";
p = p+"</tr>";
var showedLastUser = true;
@@ -369,19 +404,23 @@ function membersFormatPage(JO) {
if (previousI != i + 1)
if (previousI < i - 1 && previousI != 0)
styleClass = 'border-top: 6px solid #777799;';
+
+ if (u.wallEmblem == undefined)
+ u.wallEmblem = 'blank.png';
- p = p+ "<tr style='"+styleClass+" background-color: "+u.background+"; color:"+u.displayColor+";' title='Scored "+scoredLocalTime.format("h:MM:ss TT")+"'>";
+ p = p+ "<tr style='"+styleClass+" background-color: "+u.background+"; color:"+u.displayColor+";' title=''>";
p = p+ "<td style='text-align:left;'>";
p = p+ i+ "</td>";
- p = p+ "<td style='vertical-align: middle;'>";
+
+ p = p+ "<td style='vertical-align: middle;width:180px;'>";
p = p+ " <div class='grid_td' style='float:left; width:35px; height:35px; background:"+u.wallColor+" url(images/marks/"+u.wallEmblem+");'>";
- p = p+ " <div style='background-color:transparent;' class='grid_td_inner grid_td_rocks'>";
- p = p+ " </div>";
+ p = p+ " <div style='background-color:transparent;' class='grid_td_inner grid_td_rocks'>";
+ p = p+ " </div>";
p = p+ " </div>";
- p = p+ "";
- p = p+ "<span class='scoreName'><a href='achievements?id="+u.ID+"' style='color:"+u.displayColor+"'>"+u.display+"</a></span>";
+ p = p+ " <span class='scoreName' style='float:left;'><a href='achievements?id="+u.ID+"' style='color:"+u.displayColor+"'>"+u.display+"</a></span>";
p = p+ "</td>";
+ p = p+ "<td style='text-align:right;'>"+u.championPoints+"</td>";
p = p+ "<td style='text-align:right;'>"+u.totalMazes+"</td>";
p = p+ "<td style='text-align:right;'>"+u.totalMoves+"</td>";
p = p+ "<td style='text-align:right;'>"+u.totalMovesThisWeek+"</td>";
@@ -393,29 +432,8 @@ function membersFormatPage(JO) {
previousI = i;
}
-
- //p = p+"<tr><th colspan='3' style='text-align:center;'>"+navi+"</th></tr>";
+ p = p+"<tr><th colspan='10' style='text-align:center;'>"+navi+"</th></td>";
p = p+"</table>";
-
- var nextPage = JO.page - 0 + 1;
- var prevPage = JO.page - 1;
-
- if (JO.pageCount > 1) {
- if (JO.page < JO.pageCount) {
- p = p+"<a href='javascript:membersShowPage("+nextPage+")' class='rightBtn scoreActive'>&gt;</a>";
- } else
- p = "<div class='rightBtn scoreDisabled'>&gt;</div>"+p;
- if (JO.page > 1) {
- p = "<a href='javascript:membersShowPage("+prevPage+")' class='leftBtn scoreActive'>&lt;</a>"+p;
- } else
- p = "<div class='leftBtn scoreDisabled'>&lt;</div>"+p;
- }
- p = "<div class='scoreContainer1'>"+p+"</div>";
-
- //console.log(p);
- //console.log('jo page', JO.page);
- //console.log('jo pagecount', JO.pageCount);
- //p = JO.navi+p;
return p;
}
diff --git a/pages/memberlist.php b/pages/memberlist.php
index 038b023..641034f 100644
--- a/pages/memberlist.php
+++ b/pages/memberlist.php
@@ -17,88 +17,43 @@ include_once ('./includes/sqlEmbedded.php');
include_once ('./includes/datas.php');
-
-//Order by prep
-$c = 'totalMovesThisWeek';
-if (isset($_GET['c'])) {
- switch ($_GET['c']) {
- case "totalMoves":
- $c = 'totalMoves';
- break;
- case "totalMovesThisWeek":
- $c = 'totalMovesThisWeek';
- break;
- case "totalMazes":
- $c = 'totalMazes';
- break;
- case "totalWins":
- $c = 'totalWins';
- break;
- case "totalTies":
- $c = 'totalTies';
- break;
- case "dateJoined":
- $c = 'dateJoined';
- break;
- case "dateLogin":
- $c = 'dateLogin';
- break;
- }
-}
-$o = 'DESC';
-if (isset($_GET['o'])) {
- switch ($_GET['o']) {
- case "desc":
- $o = 'DESC';
- break;
- case "asc":
- $o = 'ASC';
- break;
- }
-}
-
?>
<script>
-document.write('Begin:');
-
-
-
+ javascript:membersShowPage(1);
</script>
<?
-
//Order by:
//$order = "ORDER BY $c $o";
-$data = getMembers($order, 1, 2);
+//$data = getMembers(1, 10);
$json = json_encode($data);
-
+//onchange="savePref(&quot;speed&quot;, this.value)"
//style='border:1px solid red;width: 500px; position:absolute;'
-echo "
-<div class='wrapper'>
- <div class='scoreContainer2' style='min-height:700px; width:700px'>
- <div id='members' class='scoreContainer2' >
- <script>
-
- var json = $json;
-
- //var JO = decryptJSON(json);
- var JO = json;
-
- var parsed = membersFormatPage(JO);
-
- document.write(parsed);
- document.write('complete');
+?>
+<div class='wrapper'>
+ <!--
+ <form class='memberListForm'>
+ <select id="membersPerPage">
+ <option value="10" selected="selected">10</option>
+ <option value="25">25</option>
+ <option value="50">50</option>
+ <option value="100">100</option>
+ </select>
+ </form>
+ -->
+
+ <div id='members'>
- </script>
- </div>
</div>
</div>
-";
+<br />
+<br />
+<?
//echo $json;
//print_r($data);