summaryrefslogtreecommitdiff
path: root/pages/home.inc
diff options
context:
space:
mode:
authorRaindropsSys <contact@minteck.org>2023-04-02 23:03:02 +0200
committerRaindropsSys <contact@minteck.org>2023-04-02 23:03:02 +0200
commit02eda3e4c9b4ba718f1fff70b7328ed8cdd5e63b (patch)
tree6d1dec61008998aadc6b69f7e750712794d99324 /pages/home.inc
parentf559308a1b42a9036135d764374a8c007b7d70a9 (diff)
downloadpluralconnect-02eda3e4c9b4ba718f1fff70b7328ed8cdd5e63b.tar.gz
pluralconnect-02eda3e4c9b4ba718f1fff70b7328ed8cdd5e63b.tar.bz2
pluralconnect-02eda3e4c9b4ba718f1fff70b7328ed8cdd5e63b.zip
Updated 35 files, added 11 files and deleted includes/components/search.inc (automated)
Diffstat (limited to 'pages/home.inc')
-rw-r--r--pages/home.inc133
1 files changed, 112 insertions, 21 deletions
diff --git a/pages/home.inc b/pages/home.inc
index 86bf513..cc04e42 100644
--- a/pages/home.inc
+++ b/pages/home.inc
@@ -4,24 +4,9 @@ if (isset($_GET["ec"])) {
header("HTTP/1.1 " . $_GET["ec"] . " Error");
}
-require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/init.inc"; require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/components/header.inc'; global $readOnly; global $isNormallyLoggedIn; global $_PROFILE; global $lang; global $pages; global $isLowerLoggedIn; global $app; global $isLoggedIn; ?>
+require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/init.inc"; require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/components/header.inc'; global $readOnly; global $isNormallyLoggedIn; global $_PROFILE; global $lang; global $pages; global $isLowerLoggedIn; global $app; global $isLoggedIn;
-<br>
-<div class="container">
- <?php if (isset($_GET['em'])): ?>
- <div class="alert alert-danger alert-dismissible">
- <button onclick='window.history.pushState({"html":null,"pageTitle":document.title},"", "/");' type="button" class="btn-close" data-bs-dismiss="alert"></button>
- <b><?= $lang["home"]["error"] ?> </b><?= strip_tags(base64_decode($_GET['em'])) ?>
- </div>
- <?php endif; ?>
-
- <?php if ($readOnly && $isNormallyLoggedIn || $readOnly && $isLowerLoggedIn): ?>
- <div class="alert alert-warning">
- <b>Notice: </b>This website is temporarily under maintenance and the administrators have locked the database. Although you are logged in as <?= $_PROFILE['name'] ?>, you cannot access any of the logged-in features while the website is under maintenance. <a href="/-/emergency">Alerts dispatching</a> remains possible in case of an emergency.
- </div>
- <?php endif; ?>
-
- <?php global $travelling; $byColor = getMembersByColor(); ?>
+function banner() { global $isLoggedIn; global $isLowerLoggedIn; $byColor = getMembersByColor(); global $lang; ?>
<div style="text-align: center;">
<img alt="" src="/assets/logo/newlogo<?= $isLoggedIn || $isLowerLoggedIn ? "3" : "" ?>.png" style="width:128px;">
<p style="z-index:999;position:relative;background:transparent;margin: 20px -10px 0 -20px;padding-right:30px;height:32px;text-align: center;display:grid;grid-template-columns: repeat(<?= count($byColor) ?>, 1fr);">
@@ -30,18 +15,20 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/init.inc"; require_once $_SE
<div style="margin-top:-33px;margin-bottom:0;margin-left:-20px;margin-right:20px;height:32px;text-align: center;display:grid;grid-template-columns: repeat(<?= count($byColor) ?>, 1fr);position:relative;left:10px;">
<?php foreach ($byColor as $member): ?><div>
<span style="display: inline-block;background: transparent;position:absolute;width: 0;height: 0;margin-top: 17px;box-shadow: 0 6px 20px 20px #<?= $member["color"] ?>;z-index: 9;margin-left: 8px;opacity: .75;"></span>
- </div><?php endforeach; ?>
+ </div><?php endforeach; ?>
</div>
<div style="padding:5px 10px;background:#3332328a;border-bottom-left-radius: 10px;border-bottom-right-radius: 10px;position:relative;z-index: 999;backdrop-filter: blur(30px);">
<h2 style="margin-top: 20px;">Cold Haze</h2>
<?php if ($isLoggedIn || $isLowerLoggedIn): ?>
- <p><?= count($byColor) ?> ponies in 3 plural systems</p>
+ <p><?= count($byColor) ?> ponies in 3 plural systems</p>
<?php else: ?>
- <p><?= count($byColor) ?> <?= $lang["home"]["intro"] ?></p>
+ <p><?= count($byColor) ?> <?= $lang["home"]["intro"] ?></p>
<?php endif; ?>
</div>
</div>
+<?php }
+function members() { global $isLoggedIn; global $isLowerLoggedIn; global $app; ?>
<div id="new-homepage" style="margin-top:20px;">
<div id="new-homepage-systems" <?php if ($isLoggedIn || $isLowerLoggedIn): ?>style="grid-template-columns: repeat(3, 1fr);"<?php endif; ?>>
@@ -73,6 +60,110 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/init.inc"; require_once $_SE
endforeach; ?>
</div>
</div>
+<?php } ?>
+
+<br>
+<div class="container">
+ <?php if (isset($_GET['em'])): ?>
+ <div class="alert alert-danger alert-dismissible">
+ <button onclick='window.history.pushState({"html":null,"pageTitle":document.title},"", "/");' type="button" class="btn-close" data-bs-dismiss="alert"></button>
+ <b><?= $lang["home"]["error"] ?> </b><?= strip_tags(base64_decode($_GET['em'])) ?>
+ </div>
+ <?php endif; ?>
+
+ <?php if ($readOnly && $isNormallyLoggedIn || $readOnly && $isLowerLoggedIn): ?>
+ <div class="alert alert-warning">
+ <b>Notice: </b>This website is temporarily under maintenance and the administrators have locked the database. Although you are logged in as <?= $_PROFILE['name'] ?>, you cannot access any of the logged-in features while the website is under maintenance. <a href="/-/emergency">Alerts dispatching</a> remains possible in case of an emergency.
+ </div>
+ <?php endif; ?>
+
+ <?php
+
+ $cache = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/cache/home.json"), true);
+ if (!isset($cache["banner"])) $cache["banner"] = [];
+ if (!isset($cache["members"])) $cache["members"] = [];
+
+ if (!isset($cache["banner"]["public"])) {
+ ob_start();
+
+ $isLoggedInOldState = $isLoggedIn;
+ $isLowerLoggedInOldState = $isLowerLoggedIn;
+ $isLoggedIn = false;
+ $isLowerLoggedIn = false;
+ banner();
+ $isLoggedIn = $isLoggedInOldState;
+ $isLowerLoggedIn = $isLowerLoggedInOldState;
+
+ $cache["banner"]["public"] = ob_get_contents();
+ ob_end_clean();
+ }
+
+ if (!isset($cache["banner"]["private"])) {
+ ob_start();
+
+ $isLoggedInOldState = $isLoggedIn;
+ $isLowerLoggedInOldState = $isLowerLoggedIn;
+ $isLoggedIn = true;
+ $isLowerLoggedIn = true;
+ banner();
+ $isLoggedIn = $isLoggedInOldState;
+ $isLowerLoggedIn = $isLowerLoggedInOldState;
+
+ $cache["banner"]["private"] = ob_get_contents();
+ ob_end_clean();
+ }
+
+ if (!isset($cache["members"]["public"])) {
+ ob_start();
+
+ $isLoggedInOldState = $isLoggedIn;
+ $isLowerLoggedInOldState = $isLowerLoggedIn;
+ $isLoggedIn = false;
+ $isLowerLoggedIn = false;
+ members();
+ $isLoggedIn = $isLoggedInOldState;
+ $isLowerLoggedIn = $isLowerLoggedInOldState;
+
+ $cache["members"]["public"] = ob_get_contents();
+ ob_end_clean();
+ }
+
+ if (!isset($cache["members"]["private"])) {
+ ob_start();
+
+ $isLoggedInOldState = $isLoggedIn;
+ $isLowerLoggedInOldState = $isLowerLoggedIn;
+ $isLoggedIn = true;
+ $isLowerLoggedIn = true;
+ members();
+ $isLoggedIn = $isLoggedInOldState;
+ $isLowerLoggedIn = $isLowerLoggedInOldState;
+
+ $cache["members"]["private"] = ob_get_contents();
+ ob_end_clean();
+ }
+
+ if ($isLowerLoggedIn || $isLoggedIn) {
+ echo($cache["banner"]["private"]);
+ } else {
+ echo($cache["banner"]["public"]);
+ }
+
+ ?>
+
+ <div class="alert alert-warning" style="margin-top:20px;">
+ <b>Notice:</b> The administrators are currently trying a new optimisation technique based on a virtual file system (chvfs). Data loss, corruption or inconsistency may happen and should be reported on <a href="https://bugs.equestria.dev/issues/CH" target="_blank">bugs.equestria.dev</a>.
+ </div>
+
+ <?php
+
+ if ($isLowerLoggedIn || $isLoggedIn) {
+ echo($cache["members"]["private"]);
+ } else {
+ echo($cache["members"]["public"]);
+ }
+
+ ?>
</div>
-<?php require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/components/footer.inc'; ?> \ No newline at end of file
+<?php file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/cache/home.json", json_encode($cache)); require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/components/footer.inc'; ?> \ No newline at end of file