summaryrefslogtreecommitdiff
path: root/pages/byspecies.inc
blob: 7a032db4191584a602efa74fae5bfb0972f172b8 (plain)
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
<?php global $system; global $systemCommonName; global $lang; global $pages; global $systemID; $pages = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/pages.json"), true); $title = $pages["s:species"]["name"][$lang["_name"]]; require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/components/header.inc'; global $travelling; global $isLowerLoggedIn; global $isLoggedIn;

if (!file_exists($_SERVER['DOCUMENT_ROOT'] . "/includes/data/cache/species.json")) file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/cache/species.json", "{}");

$cache = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/cache/species.json"), true);

function species(array $members, string $id, string $name) { global $systemID; global $travelling; ?>
    <div class="relation" style="background-color:rgba(255, 255, 255, .1);margin-bottom:10px;padding:10px;border-radius:10px;display:grid;grid-template-columns: 1fr 4fr;">
        <div class="relation-intro" style="background-color:rgba(255, 255, 255, .05);border-right:1px solid rgba(255, 255, 255, .1);margin:-10px;padding:10px;border-top-left-radius:10px;border-bottom-left-radius:10px;color: white;text-decoration: none;">
            <img src="/assets/species/<?= $id ?>.png" style="width:24px;"><span class="species-name"> <?= $name ?></span> (<?= count($members) ?>)
        </div>

        <div class="relation-item" style="margin-left:10px;padding:0 20px;">
            <?php if (count($members) > 0): ?>
                <?php $index = 0; foreach ($members as $member): ?><a class="member-link" href="/<?= $member["name"] ?>"><img src="<?= getAsset($member["_system"], $member["id"], "heads") ?>" style="width:24px;"> <?= $member["display_name"] ?? $member["name"] ?></a><?php if ($index + 2 <= count($members)) echo('<span class="list-separator-desktop">, </span><span class="list-separator-mobile"><br></span>'); $index++; endforeach; ?>
            <?php else: ?>-<?php endif; ?>
        </div>
    </div>
<?php }

function page() { global $lang;
    $members = scoreOrderGlobal();

    $earth = [];
    $pegasus = [];
    $unicorn = [];
    $alicorn = [];
    $batpony = [];
    $crystal = [];
    $changeling = [];
    $merpony = [];

    foreach ($members as $member) {
        foreach ($member["_metadata"]["species"] as $species) {
            if ($species === "earth")      $earth[] = $member;
            if ($species === "pegasus")    $pegasus[] = $member;
            if ($species === "unicorn")    $unicorn[] = $member;
            if ($species === "alicorn")    $alicorn[] = $member;
            if ($species === "batpony")    $batpony[] = $member;
            if ($species === "crystal")    $crystal[] = $member;
            if ($species === "changeling") $changeling[] = $member;
            if ($species === "human")      $human[] = $member;
            if ($species === "merpony")    $merpony[] = $member;
        }
    }

    species($earth,      "earth",      $lang["species"]["earth"][3]);
    species($pegasus,    "pegasus",    $lang["species"]["pegasus"][3]);
    species($unicorn,    "unicorn",    $lang["species"]["unicorn"][3]);
    species($alicorn,    "alicorn",    $lang["species"]["alicorn"][3]);
    species($batpony,    "batpony",    $lang["species"]["batpony"][3]);
    species($crystal,    "crystal",    $lang["species"]["crystal"][3]);
    species($changeling, "changeling", "Changelings");
    species($human,      "human",      "Humans");
    species($merpony,    "merpony",    "Merponies");
}

?>

    <br>
    <div class="container" id="page-content">
        <h2>Members by species</h2>
        <?php if (!isset($cache["private"]) || !isset($cache["public"])) {
            ob_start();
            $isLoggedInOldState = $isLoggedIn;
            $isLowerLoggedInOldState = $isLowerLoggedIn;
            $isLoggedIn = true;
            $isLowerLoggedIn = true;
            page();
            $isLoggedIn = $isLoggedInOldState;
            $isLowerLoggedIn = $isLowerLoggedInOldState;
            $cache["private"] = ob_get_contents();
            ob_end_clean();

            ob_start();
            $isLoggedInOldState = $isLoggedIn;
            $isLowerLoggedInOldState = $isLowerLoggedIn;
            $isLoggedIn = false;
            $isLowerLoggedIn = false;
            page();
            $isLoggedIn = $isLoggedInOldState;
            $isLowerLoggedIn = $isLowerLoggedInOldState;
            $cache["public"] = ob_get_contents();
            ob_end_clean();
        }

        echo($isLoggedIn ? $cache["private"] : $cache["public"]); file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/cache/species.json", json_encode($cache)); ?>
    </div>

<?php require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/components/footer.inc'; ?>