-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscores.php
116 lines (110 loc) · 4.42 KB
/
scores.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<html>
<head>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<div class="top-bar">
<div class="top-bar-item"><a href="index.php">Play</a></div>
<div class="top-bar-item"><a href="help.php">Help</a></div>
<div class="top-bar-item"><a href="scores.php">Leaderboard</a></div>
</div>
<div class="button-top" onclick="document.body.scrollTop = 0; document.documentElement.scrollTop = 0;"><img class="button-top-icon" src="up-arrow.svg"/></div>
<div class="bottom-bar">
<div class="bottom-text">christosnc © 2018. All rights reserved.</div>
</div>
<?php
if(isset($_POST["addscore"])){
//Add a new score to the leaderboard
$nickname = $_POST["nickname"];
$points = $_POST["points"];
$error = 0;
$file = @file_get_contents("scores.json");
if($file === false) $error = 1;
$file = json_encode($file);
$data = json_decode($file, true);
$data = json_decode($data,true);
$inserted = 0;
$position = 0;
for($i = count($data) - 1; $i >= 0; $i--){
if(intval($data[$i]["points"]) < intval($points)){
$inserted = 1;
$position = $i;
$data[$i + 1] = $data[$i];
$data[$i]["nickname"] = $nickname;
$data[$i]["points"] = $points;
} else break;
}
if($inserted == 0){
$index = count($data);
$position = $index;
$data[$index]["nickname"] = $nickname;
$data[$index]["points"] = $points;
}
if($error == 0) file_put_contents("scores.json", json_encode($data));
$ret = "";
if($error == 1){
$ret .= "<div class='add-unsuccessful'></div>";
$ret .= "<form method='POST' action='index.php'>";
} else{
$ret .= "<div class='add-successful'></div>";
$ret .= "<form method='POST' action='scores.php'>";
}
$ret .= "<button style='display:none;' name='highlight'></button>";
$ret .= "<input style='display:none;' name='index' value='" . $position . "'>";
$ret .= "<script>setTimeout(function(){ document.querySelector('button').click() }, 1000);</script>";
$ret .= "</form>";
echo($ret);
} else if(isset($_POST["highlight"])){
//Highlight the newly added score
$file = json_encode(file_get_contents("scores.json"));
$data = json_decode($file, true);
$data = json_decode($data,true);
$index = $_POST["index"];
$ret = "";
$ret .= "<div class='page-title'>Leaderboard</div>";
$ret .= "<form class='box'>";
$ret .= "<div class='scores-top-row'>";
$ret .= "<div class='scores-top-rank'>Rank</div>";
$ret .= "<div class='scores-top-nickname'>Nickname</div>";
$ret .= "<div class='scores-top-points'>Points</div>";
$ret .= "</div>";
for($i = 0; $i < count($data); $i++){
if(intval($index) == $i) $ret .= "<div class='scores-row' style='background-color: #FD971F;'>";
else{
if($i % 2 == 0) $ret .= "<div class='scores-row'>";
else $ret .= "<div class='scores-row' style='background-color: #3b3b3b;'>";
}
$ret .= "<div class='scores-rank'>" . ($i + 1) . "</div>";
$ret .= "<div class='scores-nickname'>" . $data[$i]["nickname"] . "</div>";
$ret .= "<div class='scores-points'>" . $data[$i]["points"] . "</div>";
$ret .= "</div>";
}
$ret .= "</form>";
echo($ret);
} else{
//Just display the leaderboard
$file = json_encode(file_get_contents("scores.json"));
$data = json_decode($file, true);
$data = json_decode($data,true);
$ret = "";
$ret .= "<div class='page-title'>Leaderboard</div>";
$ret .= "<form class='box'>";
$ret .= "<div class='scores-top-row'>";
$ret .= "<div class='scores-top-rank'>Rank</div>";
$ret .= "<div class='scores-top-nickname'>Nickname</div>";
$ret .= "<div class='scores-top-points'>Points</div>";
$ret .= "</div>";
for($i = 0; $i < count($data); $i++){
if($i % 2 == 0) $ret .= "<div class='scores-row'>";
else $ret .= "<div class='scores-row' style='background-color: #3b3b3b;'>";
$ret .= "<div class='scores-rank'>" . ($i + 1) . "</div>";
$ret .= "<div class='scores-nickname'>" . $data[$i]["nickname"] . "</div>";
$ret .= "<div class='scores-points'>" . $data[$i]["points"] . "</div>";
$ret .= "</div>";
}
$ret .= "</form>";
echo($ret);
}
?>
</body>
</html>