summaryrefslogtreecommitdiff
path: root/includes/system/history.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/system/history.php')
-rw-r--r--includes/system/history.php380
1 files changed, 380 insertions, 0 deletions
diff --git a/includes/system/history.php b/includes/system/history.php
new file mode 100644
index 0000000..ad4e30e
--- /dev/null
+++ b/includes/system/history.php
@@ -0,0 +1,380 @@
+<?php global $system; global $systemCommonName; global $systemID; $title = "Front history ยท " . $systemCommonName; require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/header.php';
+
+function getMember(string $id) {
+ global $systemID;
+
+ $members = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$systemID-members.json"), true);
+ $member = null;
+
+ foreach ($members as $m) {
+ if ($m["id"] === $id) $member = $m;
+ }
+
+ return $member;
+}
+
+?>
+
+ <br>
+ <div class="container" id="page-content">
+ <?php
+
+ $switches = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$systemID-switches.json"), true);
+ uksort($switches, function ($a, $b) {
+ return strtotime($b["timestamp"]) - strtotime($a["timestamp"]);
+ });
+
+ function getSwitchesForDay(int $day) {
+ global $switches;
+
+ $filtered = array_values(array_filter($switches, function ($i) use ($day) {
+ $diff = strtotime(date("Y-m-d")) - strtotime(explode("T", $i["timestamp"])[0]);
+ return $diff <= (86400 * $day) && $diff > (86400 * ($day - 1));
+ }));
+
+ uksort($filtered, function ($a, $b) {
+ return strtotime($b["timestamp"]) - strtotime($a["timestamp"]);
+ });
+
+ return $filtered;
+ }
+
+ function getSwitchBefore(string $id) {
+ global $switches;
+
+ $currentPassed = false;
+ $before = null;
+
+ foreach ($switches as $switch) {
+ if ($currentPassed) {
+ $before = $switch;
+ break;
+ } else {
+ if ($switch["id"] === $id) {
+ $currentPassed = true;
+ }
+ }
+ }
+
+ return $before;
+ }
+
+ function isNotToday(int $timestamp, int $offset) {
+ if (date('Y-m-d', $timestamp) !== date('Y-m-d', time() - (86400 * $offset))) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ $switches1 = getSwitchesForDay(0);
+ $switches2 = getSwitchesForDay(1);
+ $switches3 = getSwitchesForDay(2);
+ $switches4 = getSwitchesForDay(3);
+ $switches5 = getSwitchesForDay(4);
+ $switches6 = getSwitchesForDay(5);
+ $switches7 = getSwitchesForDay(6);
+ $switches8 = getSwitchesForDay(7);
+ $switches9 = getSwitchesForDay(8);
+ $switches10 = getSwitchesForDay(9);
+
+ ?>
+ <h2>Front history in the <?= $systemCommonName ?></h2>
+ <h4>Today</h4>
+ <?php
+
+ $fronters = array_map(function ($i) {
+ return [
+ "member" => $i["members"][0],
+ "date" => strtotime($i["timestamp"])
+ ];
+ }, $switches1);
+
+ $fronters[] = [
+ "member" => $switches2[0] ? $switches2[0]["members"][0] : ($switches3[0] ? $switches3[0]["members"][0] : ($switches4[0] ? $switches4[0]["members"][0] : ($switches5[0] ? $switches5[0]["members"][0] : ($switches6[0] ? $switches6[0]["members"][0] : ($switches7[0] ? $switches7[0]["members"][0] : ($switches8[0] ? $switches8[0]["members"][0] : ($switches9[0] ? $switches9[0]["members"][0] : $switches10[0]["members"][0]))))))),
+ "date" => strtotime($switches2[0] ? $switches2[0]["timestamp"] : ($switches3[0] ? $switches3[0]["timestamp"] : ($switches4[0] ? $switches4[0]["timestamp"] : ($switches5[0] ? $switches5[0]["timestamp"] : ($switches6[0] ? $switches6[0]["timestamp"] : ($switches7[0] ? $switches7[0]["timestamp"] : ($switches8[0] ? $switches8[0]["timestamp"] : ($switches9[0] ? $switches9[0]["timestamp"] : $switches10[0]["timestamp"]))))))))
+ ];
+
+ $fronters = array_unique($fronters, SORT_REGULAR);
+
+ foreach ($fronters as $fronter): $member = getMember($fronter["member"]);
+ ?>
+ <div class="fronter">
+ <span class="fronter-date" style="opacity:.5;font-family: monospace;font-size:14px;vertical-align: middle;">
+ <?= isNotToday($fronter["date"], 0) ? "00:00" : date('H:i', $fronter["date"]) ?>
+ </span>
+ <span class="fronter-profile" style="vertical-align: middle;">
+ <a class="member-link" href="/<?= $systemID === "gdapd" ? "raindrops" : "cloudburst" ?>/<?= $member["name"] ?>">
+ <img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $member['name'] . ".png") ? "-" . $member['name'] : "" ?>.png" style="width:24px;"> <?= $member["display_name"] ?? $member["name"] ?>
+ </a>
+ </span>
+ </div>
+ <?php endforeach; ?>
+ <h4 style="margin-top:15px;">Yesterday</h4>
+ <?php
+
+ $fronters = array_map(function ($i) {
+ return [
+ "member" => $i["members"][0],
+ "date" => strtotime($i["timestamp"])
+ ];
+ }, $switches2);
+
+ $fronters[] = [
+ "member" => $switches3[0] ? $switches3[0]["members"][0] : ($switches4[0] ? $switches4[0]["members"][0] : ($switches5[0] ? $switches5[0]["members"][0] : ($switches6[0] ? $switches6[0]["members"][0] : ($switches7[0] ? $switches7[0]["members"][0] : ($switches8[0] ? $switches8[0]["members"][0] : ($switches9[0] ? $switches9[0]["members"][0] : $switches10[0]["members"][0])))))),
+ "date" => strtotime($switches3[0] ? $switches3[0]["timestamp"] : ($switches4[0] ? $switches4[0]["timestamp"] : ($switches5[0] ? $switches5[0]["timestamp"] : ($switches6[0] ? $switches6[0]["timestamp"] : ($switches7[0] ? $switches7[0]["timestamp"] : ($switches8[0] ? $switches8[0]["timestamp"] : ($switches9[0] ? $switches9[0]["timestamp"] : $switches10[0]["timestamp"])))))))
+ ];
+
+ $fronters = array_unique($fronters, SORT_REGULAR);
+
+ foreach ($fronters as $fronter): $member = getMember($fronter["member"]);
+ ?>
+ <div class="fronter">
+ <span class="fronter-date" style="opacity:.5;font-family: monospace;font-size:14px;vertical-align: middle;">
+ <?= isNotToday($fronter["date"], 1) ? "00:00" : date('H:i', $fronter["date"]) ?>
+ </span>
+ <span class="fronter-profile" style="vertical-align: middle;">
+ <a class="member-link" href="/<?= $systemID === "gdapd" ? "raindrops" : "cloudburst" ?>/<?= $member["name"] ?>">
+ <img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $member['name'] . ".png") ? "-" . $member['name'] : "" ?>.png" style="width:24px;"> <?= $member["display_name"] ?? $member["name"] ?>
+ </a>
+ </span>
+ </div>
+ <?php endforeach; ?>
+ <h4 style="margin-top:15px;"><?= date('D j M', time() - (86400 * 2)) ?></h4>
+ <?php
+
+ $fronters = array_map(function ($i) {
+ return [
+ "member" => $i["members"][0],
+ "date" => strtotime($i["timestamp"])
+ ];
+ }, $switches3);
+
+ $fronters[] = [
+ "member" => $switches4[0] ? $switches4[0]["members"][0] : ($switches5[0] ? $switches5[0]["members"][0] : ($switches6[0] ? $switches6[0]["members"][0] : ($switches7[0] ? $switches7[0]["members"][0] : ($switches8[0] ? $switches8[0]["members"][0] : ($switches9[0] ? $switches9[0]["members"][0] : $switches10[0]["members"][0]))))),
+ "date" => strtotime($switches4[0] ? $switches4[0]["timestamp"] : ($switches5[0] ? $switches5[0]["timestamp"] : ($switches6[0] ? $switches6[0]["timestamp"] : ($switches7[0] ? $switches7[0]["timestamp"] : ($switches8[0] ? $switches8[0]["timestamp"] : ($switches9[0] ? $switches9[0]["timestamp"] : $switches10[0]["timestamp"]))))))
+ ];
+
+ $fronters = array_unique($fronters, SORT_REGULAR);
+
+ foreach ($fronters as $fronter): $member = getMember($fronter["member"]);
+ ?>
+ <div class="fronter">
+ <span class="fronter-date" style="opacity:.5;font-family: monospace;font-size:14px;vertical-align: middle;">
+ <?= isNotToday($fronter["date"], 2) ? "00:00" : date('H:i', $fronter["date"]) ?>
+ </span>
+ <span class="fronter-profile" style="vertical-align: middle;">
+ <a class="member-link" href="/<?= $systemID === "gdapd" ? "raindrops" : "cloudburst" ?>/<?= $member["name"] ?>">
+ <img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $member['name'] . ".png") ? "-" . $member['name'] : "" ?>.png" style="width:24px;"> <?= $member["display_name"] ?? $member["name"] ?>
+ </a>
+ </span>
+ </div>
+ <?php endforeach; ?>
+ <h4 style="margin-top:15px;"><?= date('D j M', time() - (86400 * 3)) ?></h4>
+ <?php
+
+ $fronters = array_map(function ($i) {
+ return [
+ "member" => $i["members"][0],
+ "date" => strtotime($i["timestamp"])
+ ];
+ }, $switches4);
+
+ $fronters[] = [
+ "member" => $switches5[0] ? $switches5[0]["members"][0] : ($switches6[0] ? $switches6[0]["members"][0] : ($switches7[0] ? $switches7[0]["members"][0] : ($switches8[0] ? $switches8[0]["members"][0] : ($switches9[0] ? $switches9[0]["members"][0] : $switches10[0]["members"][0])))),
+ "date" => strtotime($switches5[0] ? $switches5[0]["timestamp"] : ($switches6[0] ? $switches6[0]["timestamp"] : ($switches7[0] ? $switches7[0]["timestamp"] : ($switches8[0] ? $switches8[0]["timestamp"] : ($switches9[0] ? $switches9[0]["timestamp"] : $switches10[0]["timestamp"])))))
+ ];
+
+ $fronters = array_unique($fronters, SORT_REGULAR);
+
+ foreach ($fronters as $fronter): $member = getMember($fronter["member"]);
+ ?>
+ <div class="fronter">
+ <span class="fronter-date" style="opacity:.5;font-family: monospace;font-size:14px;vertical-align: middle;">
+ <?= isNotToday($fronter["date"], 3) ? "00:00" : date('H:i', $fronter["date"]) ?>
+ </span>
+ <span class="fronter-profile" style="vertical-align: middle;">
+ <a class="member-link" href="/<?= $systemID === "gdapd" ? "raindrops" : "cloudburst" ?>/<?= $member["name"] ?>">
+ <img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $member['name'] . ".png") ? "-" . $member['name'] : "" ?>.png" style="width:24px;"> <?= $member["display_name"] ?? $member["name"] ?>
+ </a>
+ </span>
+ </div>
+ <?php endforeach; ?>
+ <h4 style="margin-top:15px;"><?= date('D j M', time() - (86400 * 4)) ?></h4>
+ <?php
+
+ $fronters = array_map(function ($i) {
+ return [
+ "member" => $i["members"][0],
+ "date" => strtotime($i["timestamp"])
+ ];
+ }, $switches5);
+
+ $fronters[] = [
+ "member" => $switches6[0] ? $switches6[0]["members"][0] : ($switches7[0] ? $switches7[0]["members"][0] : ($switches8[0] ? $switches8[0]["members"][0] : ($switches9[0] ? $switches9[0]["members"][0] : $switches10[0]["members"][0]))),
+ "date" => strtotime($switches6[0] ? $switches6[0]["timestamp"] : ($switches7[0] ? $switches7[0]["timestamp"] : ($switches8[0] ? $switches8[0]["timestamp"] : ($switches9[0] ? $switches9[0]["timestamp"] : $switches10[0]["timestamp"]))))
+ ];
+
+ $fronters = array_unique($fronters, SORT_REGULAR);
+
+ foreach ($fronters as $fronter): $member = getMember($fronter["member"]);
+ ?>
+ <div class="fronter">
+ <span class="fronter-date" style="opacity:.5;font-family: monospace;font-size:14px;vertical-align: middle;">
+ <?= isNotToday($fronter["date"], 4) ? "00:00" : date('H:i', $fronter["date"]) ?>
+ </span>
+ <span class="fronter-profile" style="vertical-align: middle;">
+ <a class="member-link" href="/<?= $systemID === "gdapd" ? "raindrops" : "cloudburst" ?>/<?= $member["name"] ?>">
+ <img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $member['name'] . ".png") ? "-" . $member['name'] : "" ?>.png" style="width:24px;"> <?= $member["display_name"] ?? $member["name"] ?>
+ </a>
+ </span>
+ </div>
+ <?php endforeach; ?>
+ <h4 style="margin-top:15px;"><?= date('D j M', time() - (86400 * 5)) ?></h4>
+ <?php
+
+ $fronters = array_map(function ($i) {
+ return [
+ "member" => $i["members"][0],
+ "date" => strtotime($i["timestamp"])
+ ];
+ }, $switches6);
+
+ $fronters[] = [
+ "member" => $switches7[0] ? $switches7[0]["members"][0] : ($switches8[0] ? $switches8[0]["members"][0] : ($switches9[0] ? $switches9[0]["members"][0] : $switches10[0]["members"][0])),
+ "date" => strtotime($switches7[0] ? $switches7[0]["timestamp"] : ($switches8[0] ? $switches8[0]["timestamp"] : ($switches9[0] ? $switches9[0]["timestamp"] : $switches10[0]["timestamp"])))
+ ];
+
+ $fronters = array_unique($fronters, SORT_REGULAR);
+
+ foreach ($fronters as $fronter): $member = getMember($fronter["member"]);
+ ?>
+ <div class="fronter">
+ <span class="fronter-date" style="opacity:.5;font-family: monospace;font-size:14px;vertical-align: middle;">
+ <?= isNotToday($fronter["date"], 5) ? "00:00" : date('H:i', $fronter["date"]) ?>
+ </span>
+ <span class="fronter-profile" style="vertical-align: middle;">
+ <a class="member-link" href="/<?= $systemID === "gdapd" ? "raindrops" : "cloudburst" ?>/<?= $member["name"] ?>">
+ <img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $member['name'] . ".png") ? "-" . $member['name'] : "" ?>.png" style="width:24px;"> <?= $member["display_name"] ?? $member["name"] ?>
+ </a>
+ </span>
+ </div>
+ <?php endforeach; ?>
+ <h4 style="margin-top:15px;"><?= date('D j M', time() - (86400 * 6)) ?></h4>
+ <?php
+
+ $fronters = array_map(function ($i) {
+ return [
+ "member" => $i["members"][0],
+ "date" => strtotime($i["timestamp"])
+ ];
+ }, $switches7);
+
+ $fronters[] = [
+ "member" => $switches8[0] ? $switches8[0]["members"][0] : ($switches9[0] ? $switches9[0]["members"][0] : $switches10[0]["members"][0]),
+ "date" => strtotime($switches8[0] ? $switches8[0]["timestamp"] : ($switches9[0] ? $switches9[0]["timestamp"] : $switches10[0]["timestamp"]))
+ ];
+
+ $fronters = array_unique($fronters, SORT_REGULAR);
+
+ foreach ($fronters as $fronter): $member = getMember($fronter["member"]);
+ ?>
+ <div class="fronter">
+ <span class="fronter-date" style="opacity:.5;font-family: monospace;font-size:14px;vertical-align: middle;">
+ <?= isNotToday($fronter["date"], 6) ? "00:00" : date('H:i', $fronter["date"]) ?>
+ </span>
+ <span class="fronter-profile" style="vertical-align: middle;">
+ <a class="member-link" href="/<?= $systemID === "gdapd" ? "raindrops" : "cloudburst" ?>/<?= $member["name"] ?>">
+ <img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $member['name'] . ".png") ? "-" . $member['name'] : "" ?>.png" style="width:24px;"> <?= $member["display_name"] ?? $member["name"] ?>
+ </a>
+ </span>
+ </div>
+ <?php endforeach; ?>
+ <h4 style="margin-top:15px;"><?= date('D j M', time() - (86400 * 7)) ?></h4>
+ <?php
+
+ $fronters = array_map(function ($i) {
+ return [
+ "member" => $i["members"][0],
+ "date" => strtotime($i["timestamp"])
+ ];
+ }, $switches8);
+
+ $fronters[] = [
+ "member" => $switches9[0] ? $switches9[0]["members"][0] : $switches10[0]["members"][0],
+ "date" => strtotime($switches9[0] ? $switches9[0]["timestamp"] : $switches10[0]["timestamp"])
+ ];
+
+ $fronters = array_unique($fronters, SORT_REGULAR);
+
+ foreach ($fronters as $fronter): $member = getMember($fronter["member"]);
+ ?>
+ <div class="fronter">
+ <span class="fronter-date" style="opacity:.5;font-family: monospace;font-size:14px;vertical-align: middle;">
+ <?= isNotToday($fronter["date"], 7) ? "00:00" : date('H:i', $fronter["date"]) ?>
+ </span>
+ <span class="fronter-profile" style="vertical-align: middle;">
+ <a class="member-link" href="/<?= $systemID === "gdapd" ? "raindrops" : "cloudburst" ?>/<?= $member["name"] ?>">
+ <img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $member['name'] . ".png") ? "-" . $member['name'] : "" ?>.png" style="width:24px;"> <?= $member["display_name"] ?? $member["name"] ?>
+ </a>
+ </span>
+ </div>
+ <?php endforeach; ?>
+ <h4 style="margin-top:15px;"><?= date('D j M', time() - (86400 * 8)) ?></h4>
+ <?php
+
+ $fronters = array_map(function ($i) {
+ return [
+ "member" => $i["members"][0],
+ "date" => strtotime($i["timestamp"])
+ ];
+ }, $switches9);
+
+ $fronters[] = [
+ "member" => $switches10[0] ? $switches10[0]["members"][0] : getSwitchBefore($switches9[count($switches9) - 1]["id"])["members"][0],
+ "date" => strtotime($switches10[0] ? $switches10[0]["timestamp"] : getSwitchBefore($switches9[count($switches9) - 1]["id"])["timestamp"])
+ ];
+
+ $fronters = array_unique($fronters, SORT_REGULAR);
+
+ foreach ($fronters as $fronter): $member = getMember($fronter["member"]);
+ ?>
+ <div class="fronter">
+ <span class="fronter-date" style="opacity:.5;font-family: monospace;font-size:14px;vertical-align: middle;">
+ <?= isNotToday($fronter["date"], 8) ? "00:00" : date('H:i', $fronter["date"]) ?>
+ </span>
+ <span class="fronter-profile" style="vertical-align: middle;">
+ <a class="member-link" href="/<?= $systemID === "gdapd" ? "raindrops" : "cloudburst" ?>/<?= $member["name"] ?>">
+ <img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $member['name'] . ".png") ? "-" . $member['name'] : "" ?>.png" style="width:24px;"> <?= $member["display_name"] ?? $member["name"] ?>
+ </a>
+ </span>
+ </div>
+ <?php endforeach; ?>
+ <h4 style="margin-top:15px;"><?= date('D j M', time() - (86400 * 9)) ?></h4>
+ <?php
+
+ $fronters = array_map(function ($i) {
+ return [
+ "member" => $i["members"][0],
+ "date" => strtotime($i["timestamp"])
+ ];
+ }, $switches10);
+
+ $fronters = array_unique($fronters, SORT_REGULAR);
+
+ foreach ($fronters as $fronter): $member = getMember($fronter["member"]);
+ ?>
+ <div class="fronter">
+ <span class="fronter-date" style="opacity:.5;font-family: monospace;font-size:14px;vertical-align: middle;">
+ <?= isNotToday($fronter["date"], 9) ? "00:00" : date('H:i', $fronter["date"]) ?>
+ </span>
+ <span class="fronter-profile" style="vertical-align: middle;">
+ <a class="member-link" href="/<?= $systemID === "gdapd" ? "raindrops" : "cloudburst" ?>/<?= $member["name"] ?>">
+ <img src="/assets/uploads/pt<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $member['name'] . ".png") ? "-" . $member['name'] : "" ?>.png" style="width:24px;"> <?= $member["display_name"] ?? $member["name"] ?>
+ </a>
+ </span>
+ </div>
+ <?php endforeach; ?>
+ </div>
+
+<?php require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/footer.php'; ?> \ No newline at end of file