summaryrefslogtreecommitdiff
path: root/pages/relations.inc
blob: 1c5a878e02dd2f34c7e499f68f18aa9d6b5e4e23 (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
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
<?php

require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/init.inc"; global $title; global $isLoggedIn; global $lang; global $pages; global $isLowerLoggedIn; global $app;
require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/components/header.inc';

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

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

function page() { global $isLoggedIn; global $isLowerLoggedIn; global $pages; global $lang; global $app; ?>
    <div id="page-content">
        <h2><?= $pages["relations"]["name"][$lang["_name"]] ?></h2>
        <?php foreach (withCaretakersDown(scoreOrderGlobal()) as $member): ?>
            <div class="relation" style="background-color:rgba(255, 255, 255, .1);margin-bottom:10px;padding:10px;border-radius:10px;display:grid;grid-template-columns: 2fr 2.25fr 2.25fr 2.25fr 2.25fr;">
                <a 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;" href="/<?= $member["name"] ?>">
                    <img src="<?= getAsset($member["system"], $member["id"], "heads") ?>" style="width:24px;"> <?= $member["display_name"] ?? $member["name"] ?>
                </a>

                <table class="relation-item relation-item-marefriends" style="margin-left:10px;padding:0 20px;">
                    <tbody><tr>
                        <td style="width: 50%;text-align:right;">
                            <b style="padding-right:5px;"><?= $lang["relations"]["marefriends"] ?></b><span class="list-separator-mobile"><br></span>
                        </td>
                        <td style="width: 50%;text-align:left;">
                            <?php if (count($member["_metadata"]["marefriends"]) === 0): ?>
                                <span class="text-muted"><?= $lang["relations"]["no"] ?></span>
                            <?php else: ?>
                                <?php foreach ($member["_metadata"]["marefriends"] as $id): $mfSystem = explode("/", $id)[0]; $marefriend = getSystemMember(explode("/", $id)[0], explode("/", $id)[1]); if (!($mfSystem === $app["other"]["id"] && !$isLoggedIn && !$isLowerLoggedIn)): ?>
                                    <a title="<?= getMiniName($marefriend["display_name"] ?? $marefriend["name"]) ?>" data-bs-toggle="tooltip" class="member-link tooltip-nohelp" href="/<?= $marefriend["name"] ?>"><img src="<?= getAsset($mfSystem, $marefriend["id"], "heads") ?>" style="width:24px;"></a>
                                <?php endif; endforeach; ?>
                            <?php endif; ?>
                        </td>
                    </tr></tbody>
                </table>

                <table class="relation-item relation-item-sisters" style="padding:0 20px;">
                    <tbody><tr>
                        <td style="width: 50%;text-align:right;">
                            <b style="padding-right:5px;"><?= $lang["relations"]["sisters"] ?></b><span class="list-separator-mobile"><br></span>
                        </td>
                        <td style="width: 50%;text-align:left;">
                            <?php if (count($member["_metadata"]["sisters"]) === 0): ?>
                                <span class="text-muted"><?= $lang["relations"]["no"] ?></span>
                            <?php else: ?>
                                <?php foreach ($member["_metadata"]["sisters"] as $id): $mfSystem = explode("/", $id)[0]; $marefriend = getSystemMember(explode("/", $id)[0], explode("/", $id)[1]); if (!($mfSystem === $app["other"]["id"] && !$isLoggedIn && !$isLowerLoggedIn)): ?>
                                    <a title="<?= getMiniName($marefriend["display_name"] ?? $marefriend["name"]) ?>" data-bs-toggle="tooltip" class="member-link tooltip-nohelp" href="/<?= $marefriend["name"] ?>"><img src="<?= getAsset($mfSystem, $marefriend["id"], "heads") ?>" style="width:24px;"></a>
                                <?php endif; endforeach; ?>
                            <?php endif; ?>
                        </td>
                    </tr></tbody>
                </table>

                <table class="relation-item relation-item-caretakers" style="padding:0 20px;">
                    <tbody><tr>
                        <td style="width: 50%;text-align:right;">
                            <b style="padding-right:5px;"><?= $lang["relations"]["caretakers"] ?></b><span class="list-separator-mobile"><br></span>
                        </td>
                        <td style="width: 50%;text-align:left;">
                            <?php if (count($member["_metadata"]["caretakers"]) === 0): ?>
                                <span class="text-muted"><?= $lang["relations"]["no"] ?></span>
                            <?php else: ?>
                                <?php foreach ($member["_metadata"]["caretakers"] as $id): $mfSystem = explode("/", $id)[0]; $marefriend = getSystemMember(explode("/", $id)[0], explode("/", $id)[1]); if (!($mfSystem === $app["other"]["id"] && !$isLoggedIn && !$isLowerLoggedIn)): ?>
                                    <a title="<?= $marefriend["display_name"] ?? $marefriend["name"] ?>" data-bs-toggle="tooltip" class="member-link tooltip-nohelp" href="/<?= $marefriend["name"] ?>"><img src="<?= getAsset($mfSystem, $marefriend["id"], "heads") ?>" style="width:24px;"></a>
                                <?php endif; endforeach; ?>
                            <?php endif; ?>
                        </td>
                    </tr></tbody>
                </table>

                <table class="relation-item relation-item-friends" style="padding:0 20px;">
                    <tbody><tr>
                        <td style="width: 50%;text-align:right;">
                            <b style="padding-right:5px;">Friends:</b><span class="list-separator-mobile"><br></span>
                        </td>
                        <td style="width: 50%;text-align:left;">
                            <?php if (!isset($member["_metadata"]["friends"]) || count($member["_metadata"]["friends"]) === 0): ?>
                                <span class="text-muted"><?= $lang["relations"]["no"] ?></span>
                            <?php else: ?>
                                <?php foreach ($member["_metadata"]["friends"] as $id): $mfSystem = explode("/", $id)[0]; $marefriend = getSystemMember(explode("/", $id)[0], explode("/", $id)[1]); if (!($mfSystem === $app["other"]["id"] && !$isLoggedIn && !$isLowerLoggedIn)): ?>
                                    <a title="<?= $marefriend["display_name"] ?? $marefriend["name"] ?>" data-bs-toggle="tooltip" class="member-link tooltip-nohelp" href="/<?= $marefriend["name"] ?>"><img src="<?= getAsset($mfSystem, $marefriend["id"], "heads") ?>" style="width:24px;"></a>
                                <?php endif; endforeach; ?>
                            <?php endif; ?>
                        </td>
                    </tr></tbody>
                </table>
            </div>
        <?php endforeach; ?>
    </div>

    <style>
        @media (max-width: 991px) {
            .relation {
                grid-template-columns: 1fr !important;
            }

            .relation-intro {
                text-align: center;
                border-bottom-left-radius: 0 !important;
                border-top-right-radius: 10px;
                border-right: none !important;
                border-bottom: 1px solid rgba(255, 255, 255, .1);
            }

            .relation-item-marefriends {
                margin-top: 20px !important;
            }

            .relation-item {
                margin-top: 10px;
                margin-left: 0 !important;
                padding: 10px 0 !important;
            }
        }

        .relation-item {
            text-align: center;
        }
    </style>
<?php }

?>

<br>
<div class="container">
    <?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/relations.json", json_encode($cache)); ?>
</div>

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