From 7969dcfa62ac271ed6ef6d6b8d10bcf0659e25b5 Mon Sep 17 00:00:00 2001 From: Patrick Davison Date: Wed, 23 Jan 2013 22:25:28 -0800 Subject: A functional Memberlist again! New and improved! --- css/stats.css | 13 +++++++ do.php | 18 ++++----- includes/datas.php | 25 +++++++++---- js/scores.js | 104 ++++++++++++++++++++++++++++++--------------------- pages/memberlist.php | 85 ++++++++++------------------------------- 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+" >>>"; + r = r+" >"; + } else { + r = r+" >>>"; + r = r+" >"; + } + if (JO.page > 1) { + r = " <"+r; + r = " <<<"+r; + } else { + r = r+" <<<"; + r = r+" <"; + } + } return r; } @@ -336,22 +369,24 @@ function membersFormatPageNavi(JO) { function membersFormatPage(JO) { // console.log("Formating page"); - var p = ""; + var p = "
"; if (JO.pageCount > 1) { var navi = membersFormatPageNavi(JO); - p = p+""; + p = p+""; } p = p+""; p = p+""; - p = p+""; - p = p+""; - p = p+""; - p = p+""; - p = p+""; - p = p+""; - p = p+""; - p = p+""; + p = p+""; + p = p+""; + p = p+""; + p = p+""; + p = p+""; + p = p+""; + p = p+""; + p = p+""; + p = p+""; p = p+""; 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+ ""; + p = p+ ""; p = p+ ""; - p = p+ ""; + p = p+ ""; p = p+ ""; p = p+ ""; p = p+ ""; @@ -393,29 +432,8 @@ function membersFormatPage(JO) { previousI = i; } - - //p = p+""; + p = p+""; p = p+"
"+navi+"
"+navi+"
RankNameMazesMovesPast WeekWinsTiesJoinedLast Login"; + p = p+" NameCPMazesMovesPast WeekWinsTiesJoinedLast Login
"; p = p+ i+ ""; + + p = p+ ""; p = p+ "
"; - p = p+ "
"; - p = p+ "
"; + p = p+ "
"; + p = p+ "
"; p = p+ "
"; - p = p+ ""; - p = p+ ""+u.display+""; + p = p+ " "+u.display+""; p = p+ "
"+u.championPoints+""+u.totalMazes+""+u.totalMoves+""+u.totalMovesThisWeek+"
"+navi+"
"+navi+"
"; - - var nextPage = JO.page - 0 + 1; - var prevPage = JO.page - 1; - - if (JO.pageCount > 1) { - if (JO.page < JO.pageCount) { - p = p+">"; - } else - p = "
>
"+p; - if (JO.page > 1) { - p = "<"+p; - } else - p = "
<
"+p; - } - p = "
"+p+"
"; - - //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; - } -} - ?> -
-
- -
-"; +
+
+ Date: Wed, 23 Jan 2013 22:38:30 -0800 Subject: Chat fixes --- ajax_chat.php | 2 ++ pages/admin.php | 1 + pages/chat.php | 9 +++++++-- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/ajax_chat.php b/ajax_chat.php index 04a6fd4..2b6d909 100644 --- a/ajax_chat.php +++ b/ajax_chat.php @@ -1,5 +1,7 @@ 0) { - dataString += '&send=true&messages='+chatBuffer.join('|:|'); + dataString += '&send=true&messages='+prepChat(chatBuffer); chatBuffer.length = 0; } //$.getJSON('ajax_chat.php?getChatFromID='+lastID++message, ); @@ -206,7 +212,6 @@ function getChat(message) { data: dataString, success: function(data) {getChatDone(data);} }); - } function sendChat() { -- cgit v1.2.3 From daa1e4eeaaa1df43fd95bdb5aed59c602d2c14b7 Mon Sep 17 00:00:00 2001 From: Patrick Davison Date: Thu, 24 Jan 2013 00:52:59 -0800 Subject: Some code relating to testing an API. --- api/app.php | 591 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ app.php | 217 ---------------------- 2 files changed, 591 insertions(+), 217 deletions(-) create mode 100644 api/app.php delete mode 100644 app.php diff --git a/api/app.php b/api/app.php new file mode 100644 index 0000000..806e4ae --- /dev/null +++ b/api/app.php @@ -0,0 +1,591 @@ +tiles); +//echo "---
"; + +//print_r(getJsonData($myNewMap)); + + +if ($_GET['r'] == 'scores') { + + //echo 'getting...'; + $scores = getScoresB(1156); + echo json_encode($scores); +} +exit; + + + +echo json_encode($myNewMap); + +//By Wrikken +function getJsonData($obj){ + $var = get_object_vars($obj); + foreach($var as &$value) { + if(is_object($value) && method_exists($value,'getJsonData')) { + $value = $value->getJsonData(); + } + } + return $var; +} + + +exit; + +//Conditions for effectiveness. + +//Yes: +echo ((20 & 4) == 4); +echo "
"; +//Yes: +echo ((4 & 20) == 4); +echo "
"; +//No: +echo ((4 & 20) == 20); +echo "
"; +//No: +echo ((16 & 4) == 4); +echo "
"; +//Yes: +echo ((37 & 4) == 4); +echo "
"; + + + + + +$format = '(%1$2d = %1$04b) = (%2$2d = %2$04b)' + . ' %3$s (%4$2d = %4$04b)' . "\n"; + +echo << $top) + continue; + if ($i <= $bottom) + continue; + } + + if ($wallEmblem == '') + $wallEmblem = 'blank.png'; + + $cdate = $row['cdate']; + $cdate = date("g:i A (T)", strtotime($cdate)); + + $scoredDate = strtotime($row['cdate']); + $secondsSinceScored = strtotime("now") - $scoredDate ; + + //Alternate background colors + $background = '#262631'; + if ($i % 2 == 1) + $background = '#20202a'; + + if ($userPosition == $i) { + $background = '#343c57'; + $foundUser = true; + } + + $medal = 'none'; + if ($moves == $bestMoves) + $medal = 'silver'; + if ($i == 1) + $medal = 'gold'; + + // if is blind map. + if ($isBlindMap AND $myBestMoves < $moves) + $row['moves'] = '???'; + + $output['users'][$i] = $row; + $output['users'][$i]['rank'] = $i; + $output['users'][$i]['scoredDate'] = $cdate; + $output['users'][$i]['secondsSinceScored'] = $secondsSinceScored; + $output['users'][$i]['background'] = $background; + $output['users'][$i]['medal'] = $medal; + $output['users'][$i]['isUser'] = $userPosition == $i; + //$output['users'][$i]['debug'] = "Bestmoves: $bestMoves moves: $moves"; + } // END WHILE + + if ($foundUser) { + $userPage = ceil(($userPosition / $pageDivide)); + $output['userPage'] = $userPage; + $output['userPosition'] = $userPosition; + } + + $output['pageCount'] = ceil(($i / $pageDivide)); + + if ($prevPage > 0) { + $navi .= " << "; + $navi .= " < "; + } else { + $navi .= " << "; + $navi .= " <"; + } + for ($x = 1; $x <= $pageCount; $x++) { + if ($x < $pageNumber - 3 OR $x > $pageNumber + 3) + continue; + if ($x == $pageNumber) + $navi .= " $x "; + elseif ($userPage == $x) + $navi .= " $x "; + else + $navi .= " $x "; + } + if ($nextPage <= $pageCount) { + $navi .= " > "; + $navi .= " >> "; + } + + $output['users'] = array_values($output['users']); + + return $output; +} + + + + + + + + + + + + + + + + + + +$prep['name'] = 'Active'; +for($i = 1; $i <= 4; $i++) { + + $map = MapOfTheDay($i); + $mapid = $map['id']; + + $data['name'] = $map['map'][0][6]; + $data['id'] = $map['id']; + $data['tiles'] = convertMapTiles($map['map']); + $prep['levels'][] = $data; +} + +// $past['name'] = 'Past Maps'; +// for($i = 2; $i <= 4; $i++) { + + //$map = MapOfTheDay($i); + + // $pastMap = pastMap(1, $i); + // $mapid = $pastMap; + // $mapcode = getMapCode($mapID); + // $map = GenerateMapByCode($mapcode); + + // $mapid = $map['id']; + + // $data['name'] = $map['map'][0][6]; + // $data['id'] = $map['id']; + // $data['tiles'] = convertMapTiles($map['map']); + // $past['levels'][] = $data; +// } + + +$json['action'] = 'getLevelSets'; +$json['response'] = 'ok'; +$json['data']['levelSetsResponse']['sets'][] = $prep; +$json['data']['levelSetsResponse']['sets'][] = $past; + + +$encoded = json_encode($json); +die($encoded); + + +function convertMapTiles($map) { + $r = ''; + for($i = 1; $i < count($map); $i++) { + if ($i !== 1) + $r .= ','; + for($j = 0; $j < count($map[$i]); $j++) { + switch($map[$i][$j]) { + case 'o': $r .= '00'; break; + case 's': $r .= '02'; break; + //Multipath: + case 'S': $r .= '99'; break; + //Path 1 and Path 2 allow-only rocks. + case 'X': + break; + case 'x': + break; + + case 'f': $r .= '03';break; + case 't': $r .= '50';break; + case 'u': $r .= '60';break; + case 'm': $r .= '51';break; + case 'n': $r .= '61';break; + case 'g': $r .= '52';break; + case 'h': $r .= '63';break; + case 'i': $r .= '54';break; + case 'j': $r .= '64';break; + case 'k': $r .= '55';break; + case 'l': $r .= '65';break; + + case 'a': $r .= '40';break; + case 'b': $r .= '41';break; + case 'c': $r .= '42';break; + case 'd': $r .= '43';break; + case 'e': $r .= '44';break; + case 'r': $r .= '00';break; + //Visually distinct rocks: + case 'R': $r .= '00';break; + case 'q': $r .= '00';break; + + //Technically shouldn't ever be used to display a wall... + case 'w': $r .= '01';break; + } + } + } + return $r; +} + + +function translatemap($mapMatrix, $mapID) { + + + $mapdata['height'] = $mapMatrix[0][0]; + $mapdata['width'] = $mapMatrix[0][1]; + $waypoints = $mapMatrix[0][2]; + $mapdata['rocks'] = $mapMatrix[0][3]; + $walls = $mapMatrix[0][4]; + $mapdata['teleports'] = $mapMatrix[0][5]; + + $r .= ""; + $r .= "\n "; + $r .= "\n $mapID"; + $r .= "\n $walls"; + $r .= "\n $waypoints"; + $r .= "\n "; + + + $r .= "\n "; + $r .= "\n "; + for ($i = 1; $i < count($mapMatrix); $i++) { + + $r .= "\n "; + for ($j = 0; $j < count($mapMatrix[$i]); $j++) { + + switch($mapMatrix[$i][$j]) { + case 's': $r .= "02 "; break; + case 'f': $r .= "03 "; break; + + case 't': $r .= "50 "; break; + case 'u': $r .= "61 "; break; + //TP2 + case 'm': $r .= "51 "; break; + case 'n': $r .= "62 "; break; + //TP3 + case 'g': $r .= "52 "; break; + case 'h': $r .= "63 "; break; + //TP4 + case 'i': $r .= "53 "; break; + case 'j': $r .= "64 "; break; + //TP5 + case 'k': $r .= "54 "; break; + case 'l': $r .= "65 "; break; + + case 'a': $r .= "40 "; break; + case 'b': $r .= "41 "; break; + case 'c': $r .= "42 "; break; + case 'd': $r .= "43 "; break; + case 'e': $r .= "44 "; break; + + case 'r': $r .= "00 "; break; //rock + case 'w': $r .= "01 "; break; //wall + //default: $r .= "".$index.""; + default: $r .= "10 "; + //default: $r .= "".$mapMatrix[$i][$j].""; + } + } + $r .= ""; + } + $r .= "\n "; + $r .= "\n "; + $r .= "\n"; + return $r; +} + + + + + + + + + +// encode array $json to JSON string + +//echo "working..."; + +if ($_GET['act'] == "test") { + +//header('Content-Type: text/xml'); +header("Content-Type: text/plain"); + +if ($_POST['XMLRequest']) { + $string = $_POST['XMLRequest']; +} else { + $string = ' + + + + 5 + FiftyToo + 50 + + +'; +} + +$xml = simplexml_load_string($string); + +//echo $xml->APIRequest->SubmitScore->MapID; +//print_r ($xml); + + + + +$score = $xml->APIRequest[0]->SubmitScore[0]->Score; +$username = $xml->APIRequest[0]->SubmitScore[0]->Username; + +//echo $xml->getName() . "
"; +// foreach($xml->children() as $child) { +// echo $child->getName() . ": " . $child . "
"; +// } + + +//$score = 50; +$previousScore = 49; +$rank = 1; + +//Begin XML Response +$w = new XMLWriter(); +$w->openMemory(); +$w->startDocument('1.0','UTF-8'); +$w->startElement("BrainMazeAPI"); + $w->writeAttribute("version", "0.1"); + $w->startElement("APIResponse"); + $w->startElement("SubmitScore"); + $w->writeAttribute("result", "SUCCESS"); + + $w->startElement("rank"); + $w->text($rank); + $w->endElement(); + + $w->startElement("update"); + $w->text('true'); + $w->endElement(); + + $w->startElement("UsernameUsed"); + $w->text($username); + $w->endElement(); + + $w->startElement("SubmittedScore"); + $w->text($score); + $w->endElement(); + + $w->startElement("PreviousHighScore"); + $w->text($previousScore); + $w->endElement(); + + $w->endElement(); + $w->endElement(); +$w->endElement(); +echo $w->outputMemory(true); + +} + + + +if ($_GET['act'] == "submit") { +header('Content-Type: text/xml'); +echo ' + + + + 5 + 50 + 49 + + +'; + +} + + +$xml = ' + + + + 5 + FiftyToo + 50 + + + + + + + + + + 5 + 50 + 49 + + +'; + + + + +if ($_GET['act'] == "getmap") { + + $maptype = $_GET['maptype'] + 0; + if (!is_int($maptype)) + return; + if ($maptype > 4) + return; + if ($maptype < 1) + return; + + $motd = MapOfTheDay($maptype); + $map = $motd['map']; + $mapID = $motd['id']; + + //print_r($map); + + echo translatemap($map, $mapID); + +} + +?> diff --git a/app.php b/app.php deleted file mode 100644 index 7f0ab30..0000000 --- a/app.php +++ /dev/null @@ -1,217 +0,0 @@ - - - - - 5 - FiftyToo - 50 - - -'; -} - -$xml = simplexml_load_string($string); - -//echo $xml->APIRequest->SubmitScore->MapID; -//print_r ($xml); - - - - -$score = $xml->APIRequest[0]->SubmitScore[0]->Score; -$username = $xml->APIRequest[0]->SubmitScore[0]->Username; - -//echo $xml->getName() . "
"; -// foreach($xml->children() as $child) { -// echo $child->getName() . ": " . $child . "
"; -// } - - -//$score = 50; -$previousScore = 49; -$rank = 1; - -//Begin XML Response -$w = new XMLWriter(); -$w->openMemory(); -$w->startDocument('1.0','UTF-8'); -$w->startElement("BrainMazeAPI"); - $w->writeAttribute("version", "0.1"); - $w->startElement("APIResponse"); - $w->startElement("SubmitScore"); - $w->writeAttribute("result", "SUCCESS"); - - $w->startElement("rank"); - $w->text($rank); - $w->endElement(); - - $w->startElement("update"); - $w->text('true'); - $w->endElement(); - - $w->startElement("UsernameUsed"); - $w->text($username); - $w->endElement(); - - $w->startElement("SubmittedScore"); - $w->text($score); - $w->endElement(); - - $w->startElement("PreviousHighScore"); - $w->text($previousScore); - $w->endElement(); - - $w->endElement(); - $w->endElement(); -$w->endElement(); -echo $w->outputMemory(true); - -} - - - -if ($_GET['act'] == "submit") { -header('Content-Type: text/xml'); -echo ' - - - - 5 - 50 - 49 - - -'; - -} - - -$xml = ' - - - - 5 - FiftyToo - 50 - - - - - - - - - - 5 - 50 - 49 - - -'; - - - - -if ($_GET['act'] == "getmap") { - - $maptype = $_GET['maptype'] + 0; - if (!is_int($maptype)) - return; - if ($maptype > 4) - return; - if ($maptype < 1) - return; - - $motd = MapOfTheDay($maptype); - $map = $motd['map']; - $mapID = $motd['id']; - - //print_r($map); - - echo translatemap($map, $mapID); - -} - -function translatemap($mapMatrix, $mapID) { - - - $mapdata['height'] = $mapMatrix[0][0]; - $mapdata['width'] = $mapMatrix[0][1]; - $waypoints = $mapMatrix[0][2]; - $mapdata['rocks'] = $mapMatrix[0][3]; - $walls = $mapMatrix[0][4]; - $mapdata['teleports'] = $mapMatrix[0][5]; - - $r .= ""; - $r .= "\n "; - $r .= "\n $mapID"; - $r .= "\n $walls"; - $r .= "\n $waypoints"; - $r .= "\n "; - - - $r .= "\n "; - $r .= "\n "; - for ($i = 1; $i < count($mapMatrix); $i++) { - - $r .= "\n "; - for ($j = 0; $j < count($mapMatrix[$i]); $j++) { - - switch($mapMatrix[$i][$j]) { - case 's': $r .= "02 "; break; - case 'f': $r .= "03 "; break; - - case 't': $r .= "50 "; break; - case 'u': $r .= "61 "; break; - //TP2 - case 'm': $r .= "51 "; break; - case 'n': $r .= "62 "; break; - //TP3 - case 'g': $r .= "52 "; break; - case 'h': $r .= "63 "; break; - //TP4 - case 'i': $r .= "53 "; break; - case 'j': $r .= "64 "; break; - //TP5 - case 'k': $r .= "54 "; break; - case 'l': $r .= "65 "; break; - - case 'a': $r .= "40 "; break; - case 'b': $r .= "41 "; break; - case 'c': $r .= "42 "; break; - case 'd': $r .= "43 "; break; - case 'e': $r .= "44 "; break; - - case 'r': $r .= "00 "; break; //rock - case 'w': $r .= "01 "; break; //wall - //default: $r .= "".$index.""; - default: $r .= "10 "; - //default: $r .= "".$mapMatrix[$i][$j].""; - } - } - $r .= ""; - } - $r .= "\n "; - $r .= "\n "; - $r .= "\n"; - return $r; -} -- cgit v1.2.3 From 9bda216fa760fe3124f8d36fc919a8e9992c6d53 Mon Sep 17 00:00:00 2001 From: Patrick Davison Date: Thu, 24 Jan 2013 00:54:18 -0800 Subject: Updates to the new Memberlist --- css/stats.css | 19 ++++++++++++++++ do.php | 5 +++- includes/datas.php | 2 ++ js/scores.js | 64 +++++++++++++++++++++++++++++++++++----------------- pages/memberlist.php | 9 ++++---- 5 files changed, 72 insertions(+), 27 deletions(-) diff --git a/css/stats.css b/css/stats.css index 122e300..d41ff7d 100644 --- a/css/stats.css +++ b/css/stats.css @@ -112,6 +112,7 @@ td, th { width:850px; } + .scoreRight{ float:right; margin: 5px; @@ -144,6 +145,24 @@ td, th { text-overflow: ellipsis; white-space:nowrap; } +.memberName { + float:left; + padding: 5px 0px 3px 3px; + width:130px; + overflow:hidden; + text-overflow: ellipsis; + white-space:nowrap; +} +#membersPerPage { + margin:25px; +} + +.membersList .display { + width:175px; + overflow:hidden; + text-align:left; + padding-left:42px; +} .myPoints { diff --git a/do.php b/do.php index 731d69f..a864da8 100644 --- a/do.php +++ b/do.php @@ -63,7 +63,10 @@ if ($_GET['r'] == 'reqMemberPage') { $page = $_GET['reqPage'] + 0; if (!is_int($page)) return; - $json = getMembers($page, 10, $order, $orderBy); + $pageDivide = $_GET['membersPageDivide'] + 0; + if (!is_int($pageDivide)) + return; + $json = getMembers($page, $pageDivide, $order, $orderBy); $json['page'] = $page; $encoded = json_encode($json); die($encoded); diff --git a/includes/datas.php b/includes/datas.php index 124b303..6566b89 100644 --- a/includes/datas.php +++ b/includes/datas.php @@ -710,6 +710,8 @@ function getChampionPointsArray() { //Select Members function getMembers($pageNumber = 1, $pageDivide = 50, $order = 'DESC', $orderBy = 'dateJoined') { + if ($pageDivide <= 0) + $pageDivide = 50; if ($order !== 'ASC' AND $order !== 'DESC') $order = 'DESC'; $columns = array('dateJoined', 'dateLogin', 'championPoints', diff --git a/js/scores.js b/js/scores.js index 32f7c7f..f67f2c8 100644 --- a/js/scores.js +++ b/js/scores.js @@ -220,8 +220,9 @@ function scoresFormatPageNavi(JO) { //Memberlist related functions: var membersPages = new Object; var membersCurrentPage = 1; -var membersOrderBy = 'joined'; -var membersOrder = 'ASC'; +var membersPageDivide = 50; +var membersOrderBy = 'dateJoined'; +var membersOrder = 'DESC'; function membersRequestPage(page) { console.log('membersRequestPage', page); @@ -241,7 +242,12 @@ function membersRequestPage(page) { //console.log("Requesting Page", page, ajax.inUse); // == Additionally, check for achievements. - ajax.requestFile = "do.php?r=reqMemberPage&reqPage="+page+"&orderBy="+membersOrderBy+"&order="+membersOrder; + + var requestString = "do.php?r=reqMemberPage&reqPage="+page+"&orderBy="+membersOrderBy + requestString += "&order="+membersOrder + requestString += "&membersPageDivide="+membersPageDivide + + ajax.requestFile = requestString; ajax.onCompletion = membersRequestPageDone; // Specify function to be executed on response. //ajax.onLoading = ''; //ajax.onLoaded = ''; @@ -264,7 +270,7 @@ function membersToggleOrder() { membersOrder = 'ASC'; } -function membersShowPage(page, orderBy) { +function membersShowPage(page, orderBy, force) { if (orderBy) { if (membersOrderBy == orderBy) @@ -291,7 +297,7 @@ function membersShowPage(page, orderBy) { //Also; update the page - if (page != membersCurrentPage || orderBy) { + if (page != membersCurrentPage || orderBy || force) { membersRequestPage(page); } membersCurrentPage = page; @@ -370,23 +376,39 @@ function membersFormatPage(JO) { // console.log("Formating page"); var p = ""; + var navi = ''; if (JO.pageCount > 1) { - var navi = membersFormatPageNavi(JO); - p = p+""; + navi = ""; + p = p+navi; } - + + var headers = new Object; + headers['display'] = 'Name'; + headers['championPoints'] = 'Points'; + headers['totalMazes'] = 'Mazes'; + headers['totalMoves'] = 'Moves'; + headers['totalMovesThisWeek'] = 'Past Week'; + headers['totalTies'] = 'Ties'; + headers['totalWins'] = 'Wins'; + headers['dateJoined'] = 'Joined'; + headers['dateLogin'] = 'Last Login'; + + p = p+""; p = p+""; - p = p+""; - p = p+""; - p = p+""; - p = p+""; - p = p+""; - p = p+""; - p = p+""; - p = p+""; - p = p+""; + + var sortIndicator; + for (var i in headers) { + sortIndicator = ''; + if (i == membersOrderBy) { + if (membersOrder == 'DESC') + sortIndicator = ' ⇧'; + else + sortIndicator = ' ⇩'; + } + p = p+""; + } + p = p+""; var showedLastUser = true; @@ -417,22 +439,22 @@ function membersFormatPage(JO) { p = p+ "
"; p = p+ "
"; p = p+ " "; - p = p+ " "+u.display+""; + p = p+ " "+u.display+""; p = p+ ""; p = p+ ""; p = p+ ""; p = p+ ""; p = p+ ""; - p = p+ ""; p = p+ ""; + p = p+ ""; p = p+ ""; p = p+ ""; p = p+ ""; previousI = i; } - p = p+""; + p = p+navi p = p+"
"+navi+"
"+membersFormatPageNavi(JO)+"
Rank"; - p = p+" NameCPMazesMovesPast WeekWinsTiesJoinedLast Login"+headers[i]+""+sortIndicator+"
"+u.championPoints+""+u.totalMazes+""+u.totalMoves+""+u.totalMovesThisWeek+""+u.totalWins+""+u.totalTies+""+u.totalWins+""+u.dateJoined+""+u.dateLogin+"
"+navi+"
"; return p; } diff --git a/pages/memberlist.php b/pages/memberlist.php index 641034f..c447f1c 100644 --- a/pages/memberlist.php +++ b/pages/memberlist.php @@ -36,16 +36,15 @@ $json = json_encode($data); ?>
-
-- cgit v1.2.3 From 5758770c5c0733383858463b2b33cadcc03b6f2f Mon Sep 17 00:00:00 2001 From: Patrick Davison Date: Thu, 24 Jan 2013 01:01:26 -0800 Subject: Added additional SQL ALTERs This should be the changes needed for Pathery.com (not including the new tables) --- db updates.sql | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/db updates.sql b/db updates.sql index b8b63a2..50b6a97 100644 --- a/db updates.sql +++ b/db updates.sql @@ -1,4 +1,4 @@ -ALTER TABLE `db428221563`.`mapOfTheDay` DROP INDEX `UniqueTypeDate` , +ALTER TABLE `mapOfTheDay` DROP INDEX `UniqueTypeDate` , ADD UNIQUE `UniqueTypeDate` ( `mapDate` , `mapType` ); ALTER TABLE `mapOfTheDay` ADD `championPointsWorth` INT NOT NULL DEFAULT '0'; @@ -6,4 +6,12 @@ ALTER TABLE `mapOfTheDay` ADD `championPointsWorth` INT NOT NULL DEFAULT '0'; ALTER TABLE `users` ADD `totalMazes` INT NOT NULL DEFAULT '0', ADD `totalMoves` INT NOT NULL DEFAULT '0'; -ALTER TABLE `solutions` ADD `isTiedForHighScore` BOOLEAN NOT NULL DEFAULT '0'; \ No newline at end of file +ALTER TABLE `solutions` ADD `isTiedForHighScore` BOOLEAN NOT NULL DEFAULT '0'; + +ALTER TABLE `users` ADD `challengeTier` INT NOT NULL , +ADD `championPoints` INT NOT NULL , +ADD `totalWins` INT DEFAULT '0' NOT NULL , +ADD `totalTies` INT DEFAULT '0' NOT NULL ; + +ALTER TABLE `solutions` ADD `championPointsWorth` INT DEFAULT '0' NOT NULL , +ADD `isHighScore` TINYINT( 1 ) NOT NULL ; -- cgit v1.2.3