summaryrefslogtreecommitdiff
path: root/includes/util/banner.inc
diff options
context:
space:
mode:
Diffstat (limited to 'includes/util/banner.inc')
-rw-r--r--includes/util/banner.inc401
1 files changed, 0 insertions, 401 deletions
diff --git a/includes/util/banner.inc b/includes/util/banner.inc
deleted file mode 100644
index 72656ca..0000000
--- a/includes/util/banner.inc
+++ /dev/null
@@ -1,401 +0,0 @@
-<?php
-
-require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/util/session.inc"; global $isLoggedIn; global $lang; global $pages; global $isLowerLoggedIn;
-require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/util/functions.inc";
-
-$travelling = [];
-
-function _header_getMember(string $id, $system) {
- $members = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$system/members.json"), true);
- $member = null;
-
- foreach ($members as $m) {
- if ($m["id"] === $id) $member = $m;
- }
-
- return $member;
-}
-
-function getMemberBannerData(string $id, string $system, bool $french = false) {
- global $travelling;
- global $isLoggedIn;
- global $isLowerLoggedIn;
- global $lang;
- global $use2023UI;
-
- $french = $lang["_french"];
-
- $member = getSystemMember($system, $id);
- $metadata = file_exists($_SERVER['DOCUMENT_ROOT'] . "/includes/data/metadata/$id.json") ? parseMetadata(json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/metadata/$id.json"), true)) : parseMetadata([
- // FIXME: This doesn't work now that bitset functionality is removed
- "bitset" => 4196352,
- "regression" => null,
- "median" => null,
- "marefriends" => [],
- "sexfriends" => [],
- "sisters" => [],
- "caretakers" => []
- ]);
-
- $prefixes = [];
- foreach ($member['proxy_tags'] as $proxy) {
- if (isset($travelling[$member['id']]) && $travelling[$member['id']]["travelling"]) {
- if (isset($travelling[$member['id']]['equestria']) && $travelling[$member['id']]['equestria']) {
- $prefixes[] = null;
- } else {
- $prefixes[] = "+" . $proxy["prefix"] . ($proxy["suffix"] !== "" && $proxy["suffix"] !== null ? "..." . $proxy["suffix"] : "");
- }
- } else {
- $prefixes[] = $proxy["prefix"] . ($proxy["suffix"] !== "" && $proxy["suffix"] !== null ? "..." . $proxy["suffix"] : "");
- }
- }
-
- $lastFronted = null;
- if (!$metadata["median"]) {
- $fronters = array_map(function ($item) {
- return $item["id"];
- }, json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$system/fronters.json"), true)["members"]);
-
- if (in_array($id, $fronters)) {
- $lastFronted = [
- 'now' => true,
- 'relative' => timeAgo(json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$system/fronters.json"), true)["timestamp"]),
- 'absolute' => date("D j M Y, G:i:s (e)", strtotime(json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$system/fronters.json"), true)["timestamp"])),
- 'timestamp' => strtotime(json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$system/fronters.json"), true)["timestamp"]),
- 'duration' => [
- 'seconds' => null,
- 'pretty' => null
- ]
- ];
- } else {
- $switches = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$system/switches.json"), true);
-
- $thisMember = array_filter($switches, function ($item) {
- global $memberData;
- return in_array($memberData["id"], $item["members"]);
- });
-
- $thisMember = array_values($thisMember);
- $frontingEnd = null;
-
- if (count($thisMember) > 0) {
- $thisIndex = array_search($thisMember[0], $switches);
-
- $frontingStart = $thisMember[0];
- $frontingEnd = $switches[$thisIndex - 1];
- }
-
- if ($frontingEnd !== null && isset($frontingStart)) {
- $seconds = (strtotime($frontingEnd["timestamp"]) - strtotime($frontingStart["timestamp"]));
-
- $lastFronted = [
- 'now' => false,
- 'relative' => timeAgo($frontingEnd["timestamp"]),
- 'absolute' => date("D j M Y, G:i:s (e)", strtotime($frontingEnd["timestamp"])),
- 'timestamp' => strtotime($frontingEnd["timestamp"]),
- 'duration' => [
- 'seconds' => $seconds,
- 'pretty' => $seconds . ($french ? " secondes" : " seconds")
- ]
- ];
- if ($french) {
- if ($seconds > 60) {
- if ($seconds > 3600) {
- $lastFronted['duration']['pretty'] = round($seconds / 3600) . " heures";
- } else {
- $lastFronted['duration']['pretty'] = round($seconds / 60) . " minutes";
- }
- }
- } else {
- if ($seconds > 60) {
- if ($seconds > 3600) {
- $lastFronted['duration']['pretty'] = round($seconds / 3600) . " hours";
- } else {
- $lastFronted['duration']['pretty'] = round($seconds / 60) . " minutes";
- }
- }
- }
- }
- }
- }
-
- $speciesList = [];
- foreach ($metadata["species"] ?? [] as $species) {
- if ($french) {
- $name = match ($species) {
- "earth" => $metadata["robot"] ? "Robot poney terrestre" : (!$metadata["plush"] ? "Poney terrestre" : "Poney terrestre en peluche"),
- "alicorn" => $metadata["robot"] ? "Robot alicorne" : (!$metadata["plush"] ? "Alicorne" : "Alicorne en peluche"),
- "crystal" => $metadata["robot"] ? "Robot poney de crystal" : (!$metadata["plush"] ? "Poney de crystal" : "Poney de crystal en peluche"),
- "pegasus" => $metadata["robot"] ? "Robot pégase" : (!$metadata["plush"] ? "Pégase" : "Pégase en peluche"),
- "batpony" => $metadata["robot"] ? "Robot Poney chauve souris" : (!$metadata["plush"] ? "Poney chauve souris" : "Poney chauve souris en peluche"),
- "unicorn" => $metadata["robot"] ? "Robot licorne" : (!$metadata["plush"] ? "Licorne" : "Licorne en peluche"),
- "changeling" => "Changelin",
- "merpony" => "Poney sirène",
- "kirin" => "Kirin",
- "deer" => "Deer",
- default => $species . "_" . $metadata["robot"]
- };
- } else {
- $name = match ($species) {
- "earth" => $metadata["robot"] ? "Robot earth pony" : (!$metadata["plush"] ? "Earth pony" : "Earth pony plush"),
- "alicorn" => $metadata["robot"] ? "Robot alicorn" : (!$metadata["plush"] ? "Alicorn" : "Alicorn plush"),
- "crystal" => $metadata["robot"] ? "Robot crystal pony" : (!$metadata["plush"] ? "Crystal pony" : "Crystal pony plush"),
- "pegasus" => $metadata["robot"] ? "Robot pegasus" : (!$metadata["plush"] ? "Pegasus" : "Pegasus plush"),
- "batpony" => $metadata["robot"] ? "Robot bat pony" : (!$metadata["plush"] ? "Bat pony" : "Bat pony plush"),
- "unicorn" => $metadata["robot"] ? "Robot unicorn" : (!$metadata["plush"] ? "Unicorn" : "Unicorn plush"),
- "changeling" => "Changeling",
- "human" => "Human",
- "merpony" => "Merpony",
- "kirin" => "Kirin",
- "deer" => "Deer",
- default => $species . "_" . $metadata["robot"]
- };
- }
-
- $speciesList[] = [
- "id" => $species,
- "name" => $name,
- "robot" => $metadata["robot"],
- "plush" => $metadata["plush"],
- "icon" => $species . ($metadata["robot"] ? "-robot" : ($metadata["plush"] ? "-plush" : "")) . ".png"
- ];
- }
-
- $app = $GLOBALS["ColdHazeApp"];
-
- $systemData = [];
- $systemData['page'] = "/" . ($system === "gdapd" ? "raindrops" : ($system === $app["other"]["id"] ? $app["other"]["slug"] : "moonglow"));
- $systemData['icon'] = getAsset($system);
- $systemData['name'] = $system === "gdapd" ? "Raindrops" : ($system === $app["other"]["id"] ? $app["other"]["short"] : "Moonglow");
- $systemData['full_name'] = $system === "gdapd" ? "Raindrops System" : ($system === $app["other"]["id"] ? $app["other"]["name"] : "Moonglow");
- $systemData['temporary'] = false;
-
- $marefriends = [];
- foreach ($metadata["marefriends"] as $marefriend) {
- $mfSystem = explode("/", $marefriend)[0];
- $mfMemberID = explode("/", $marefriend)[1];
- $mfMember = array_filter(json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$mfSystem/members.json"), true), function ($item) use ($mfMemberID) {
- return $item["id"] === $mfMemberID;
- });
- sort($mfMember);
- $mfMember = $mfMember[0];
-
- if (!($mfSystem === $app["other"]["id"] && !$isLoggedIn && !$isLowerLoggedIn)) $marefriends[] = [
- "id" => $marefriend,
- "link" => "/" . ($mfMember["name"]),
- "icon" => getAsset($mfSystem, $mfMemberID, "heads"),
- "name" => $mfMember["display_name"] ?? $mfMember["name"],
- "full_name" => $mfMember["display_name"] ?? $mfMember["name"]
- ];
- }
-
- $sexfriends = null;
-
- if ($isLoggedIn) {
- $sexfriends = [];
- foreach ($metadata["sexfriends"] as $marefriend) {
- $mfSystem = explode("/", $marefriend)[0];
- $mfMemberID = explode("/", $marefriend)[1];
- $mfMember = array_filter(json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$mfSystem/members.json"), true), function ($item) use ($mfMemberID) {
- return $item["id"] === $mfMemberID;
- });
- sort($mfMember);
- $mfMember = $mfMember[0];
-
- if (!($mfSystem === $app["other"]["id"] && !$isLoggedIn && !$isLowerLoggedIn)) $sexfriends[] = [
- "id" => $marefriend,
- "link" => "/" . ($mfMember["name"]),
- "icon" => getAsset($mfSystem, $mfMemberID, "heads"),
- "name" => $mfMember["display_name"] ?? $mfMember["name"],
- "full_name" => $mfMember["display_name"] ?? $mfMember["name"]
- ];
- }
- }
-
- $sisters = [];
- foreach ($metadata["sisters"] as $marefriend) {
- $mfSystem = explode("/", $marefriend)[0];
- $mfMemberID = explode("/", $marefriend)[1];
- $mfMember = array_filter(json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$mfSystem/members.json"), true), function ($item) use ($mfMemberID) {
- return $item["id"] === $mfMemberID;
- });
- sort($mfMember);
- $mfMember = $mfMember[0];
-
- if (!($mfSystem === $app["other"]["id"] && !$isLoggedIn && !$isLowerLoggedIn)) $sisters[] = [
- "id" => $marefriend,
- "link" => "/" . ($mfMember["name"]),
- "icon" => getAsset($mfSystem, $mfMemberID, "heads"),
- "name" => $mfMember["display_name"] ?? $mfMember["name"],
- "full_name" => $mfMember["display_name"] ?? $mfMember["name"]
- ];
- }
-
- $friends = [];
- foreach ($metadata["friends"] ?? [] as $marefriend) {
- $mfSystem = explode("/", $marefriend)[0];
- $mfMemberID = explode("/", $marefriend)[1];
- $mfMember = array_filter(json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$mfSystem/members.json"), true), function ($item) use ($mfMemberID) {
- return $item["id"] === $mfMemberID;
- });
- sort($mfMember);
- $mfMember = $mfMember[0];
-
- if (!($mfSystem === $app["other"]["id"] && !$isLoggedIn && !$isLowerLoggedIn)) $friends[] = [
- "id" => $marefriend,
- "link" => "/" . ($mfMember["name"]),
- "icon" => getAsset($mfSystem, $mfMemberID, "heads"),
- "name" => $mfMember["display_name"] ?? $mfMember["name"],
- "full_name" => $mfMember["display_name"] ?? $mfMember["name"]
- ];
- }
-
- $caretakers = null;
-
- if ($metadata["little"] >= 2) {
- $caretakers = [];
- foreach ($metadata["caretakers"] as $marefriend) {
- $mfSystem = explode("/", $marefriend)[0];
- $mfMemberID = explode("/", $marefriend)[1];
- $mfMember = array_filter(json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$mfSystem/members.json"), true), function ($item) use ($mfMemberID) {
- return $item["id"] === $mfMemberID;
- });
- sort($mfMember);
- $mfMember = $mfMember[0];
-
- if (!($mfSystem === $app["other"]["id"] && !$isLoggedIn && !$isLowerLoggedIn)) $caretakers[] = [
- "id" => $marefriend,
- "link" => "/" . ($mfMember["name"]),
- "icon" => getAsset($mfSystem, $mfMemberID, "heads"),
- "name" => $mfMember["display_name"] ?? $mfMember["name"],
- "full_name" => $mfMember["display_name"] ?? $mfMember["name"]
- ];
- }
- }
-
- $badges = [];
-
- if ($metadata["fictive"] ?? false) {
- $badges[] = [
- "id" => "fictive",
- "color" => "info",
- "html" => '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Equestrian</b><br>' . ucfirst(getMemberPronouns($member['pronouns'])["subjective"]) . ' ' . (getMemberPronouns($member['pronouns'])["third"] ? "is" : "are") . ' based on the personality, look and behavior of a character that is from Equestria." class="badge rounded-pill bg-' . ($use2023UI ? "success" : "info") . '" style="height: 24px;"><img style="width: 16px;" src="/assets/logo/equestria.png"><span style="vertical-align: middle;">&nbsp;Equestrian</span></span>'
- ];
- }
-
- if ($metadata["fictive2"] ?? false) {
- $badges[] = [
- "id" => "fictive2",
- "color" => "d63384",
- "html" => '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Fictive</b><br>' . ucfirst(getMemberPronouns($member['pronouns'])["subjective"]) . ' ' . (getMemberPronouns($member['pronouns'])["third"] ? "is" : "are") . ' based on the personality, look and behavior of a character that is from Celeste." class="badge rounded-pill ' . ($use2023UI ? "bg-success" : "") . '" style="height: 24px;' . (!$use2023UI ? "background-color: #d63384;" : "") . '"><img style="width: 16px;" src="/assets/logo/celeste.png"><span style="vertical-align: middle;">&nbsp;Fictive</span></span>'
- ];
- }
-
- if ($metadata["persecutor"] ?? false) {
- $badges[] = [
- "id" => "persecutor",
- "color" => "danger",
- "html" => '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Persecutor</b><br>' . ucfirst(getMemberPronouns($member['pronouns'])["subjective"]) . ' ' . (getMemberPronouns($member['pronouns'])["third"] ? "acts" : "act") . ' harmfully towards other system members and/or others, potentially as a misguided attempt to protect the system." class="badge rounded-pill bg-' . ($use2023UI ? "success" : "danger") . '" style="height:24px;display: inline-flex;align-items: center;position: relative;top: 1px;"><span>Persecutor</span></span>'
- ];
- }
-
- if ($metadata["less_frequent"] ?? false) {
- $badges[] = [
- "id" => "nonverbal",
- "color" => "#6610f2",
- "html" => '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Fronts less often</b><br>' . ucfirst(getMemberPronouns($member['pronouns'])["subjective"]) . ' ' . (getMemberPronouns($member['pronouns'])["third"] ? "front" : "fronts") . ' less often than ' . getMemberPronouns($member['pronouns'])["possessive_det"] . ' headmates, this can be due to various reasons." class="badge rounded-pill ' . ($use2023UI ? "bg-success" : "") . '" style="' . (!$use2023UI ? "background-color:#6610f2;" : "") . 'height:24px;display: inline-flex;align-items: center;position: relative;top: 1px;"><span>Fronts less often</span></span>'
- ];
- }
-
- if ($metadata["nonverbal"] ?? false) {
- $badges[] = [
- "id" => "nonverbal",
- "color" => "#20c997",
- "html" => '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Non verbal IRL</b><br>' . ucfirst(getMemberPronouns($member['pronouns'])["subjective"]) . ' ' . (getMemberPronouns($member['pronouns'])["third"] ? "is" : "are") . ' non verbal in real life, although text communication is still possible." class="badge rounded-pill ' . ($use2023UI ? "bg-success" : "") . '" style="' . (!$use2023UI ? "background-color:#20c997;" : "") . 'height:24px;display: inline-flex;align-items: center;position: relative;top: 1px;"><span>Non verbal IRL</span></span>'
- ];
- }
-
- if ($member["name"] === "fusion") {
- $badges[] = [
- "id" => "fusion",
- "color" => "333333",
- "html" => '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Fusion</b><br>She is the result of multiple ponies purposefully merging in a way that makes them impossible to tell apart." class="badge rounded-pill ' . ($use2023UI ? "bg-success" : "") . '" style="' . (!$use2023UI ? "background-color:#333333;" : "") . 'height:24px;display: inline-flex;align-items: center;position: relative;top: 1px;"><span>Fusion</span></span>'
- ];
- }
-
- if (($metadata["host"] ?? false)) {
- $badges[] = [
- "id" => "host",
- "color" => "fc6735",
- "html" => '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Host</b><br>' . ucfirst(getMemberPronouns($member['pronouns'])["subjective"]) . ' ' . (getMemberPronouns($member['pronouns'])["third"] ? "is" : "are") . ' the host in ' . getMemberPronouns($member['pronouns'])["possessive_det"] . ' system." class="badge rounded-pill ' . ($use2023UI ? "bg-success" : "") . '" style="' . (!$use2023UI ? "background-color:#fc6735;" : "") . 'height:24px;display:inline-flex;align-items:center;position:relative;top:1px;"><span>Host</span></span>'
- ];
- }
-
- if (($metadata["leader"] ?? false)) {
- $badges[] = [
- "id" => "leader",
- "color" => "d6a833",
- "html" => '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Leader</b><br>' . ucfirst(getMemberPronouns($member['pronouns'])["subjective"]) . ' ' . (getMemberPronouns($member['pronouns'])["third"] ? "is" : "are") . ' a leader in ' . getMemberPronouns($member['pronouns'])["possessive_det"] . ' system." class="badge rounded-pill ' . ($use2023UI ? "bg-success" : "") . '" style="' . (!$use2023UI ? "background-color:#fd7e14;" : "") . 'height:24px;display: inline-flex;align-items: center;position: relative;top: 1px;"><span>Leader</span></span>'
- ];
- }
-
- if ($metadata["protector"] ?? false) {
- $badges[] = [
- "id" => "protector",
- "color" => "black",
- "html" => '<span style="height:24px;display: inline-flex;align-items: center;position: relative;top: 1px;" data-bs-toggle="tooltip" data-bs-html="true" title="<b>Protector</b><br>' . ucfirst(getMemberPronouns($member['pronouns'])["subjective"]) . ' ' . (getMemberPronouns($member['pronouns'])["third"] ? "is" : "are") . ' a protector in the system and will front when somepony cannot handle it anymore." class="badge rounded-pill bg-' . ($use2023UI ? "success" : "black") . '"><span>Protector</span></span>'
- ];
- }
-
- if (($metadata["little"] ?? 0) === 2) {
- $badges[] = [
- "id" => "little",
- "color" => "success",
- "html" => '<span style="height:24px;display: inline-flex;align-items: center;position: relative;top: 1px;" data-bs-toggle="tooltip" data-bs-html="true" title="<b>Little</b><br>' . ucfirst(getMemberPronouns($member['pronouns'])["subjective"]) . ' ' . (getMemberPronouns($member['pronouns'])["third"] ? "is" : "are") . ' mentally younger, and therefore behaves and feels younger than the body is." class="badge rounded-pill bg-success"><span>Little</span></span>'
- ];
- }
-
- if (($metadata["little"] ?? 0) === 3) {
- $badges[] = [
- "id" => "younger",
- "color" => "dark",
- "html" => '<span style="height:24px;display: inline-flex;align-items: center;position: relative;top: 1px;" data-bs-toggle="tooltip" data-bs-html="true" title="<b>Younger</b><br>' . ucfirst(getMemberPronouns($member['pronouns'])["subjective"]) . ' ' . (getMemberPronouns($member['pronouns'])["third"] ? "is" : "are") . ' younger than the body, but not young enough to be classified as a little." class="badge rounded-pill bg-' . ($use2023UI ? "success" : "dark") . '"><span>Younger</span></span>'
- ];
- }
-
- if (($isLoggedIn || $isLowerLoggedIn) && isset($metadata["alcohol"]) && $metadata["alcohol"] !== false) {
- $badges[] = [
- "id" => "alcohol",
- "color" => "secondary",
- "html" => '<span style="height:24px;display: inline-flex;align-items: center;position: relative;top: 1px;" data-bs-toggle="tooltip" data-bs-html="true" title="<b>Alcohol</b><br>' . ucfirst(getMemberPronouns($member['pronouns'])["subjective"]) . ' drinks alcohol, and thus may be drunk or hungover at times." class="badge rounded-pill bg-' . ($use2023UI ? "success" : "secondary") . '"><span>Alcohol</span></span>'
- ];
- }
-
- return [
- 'id' => $member['name'],
- 'color' => $member["color"] ?? "000000",
- 'icon' => [
- "online" => getAsset($system, $member["id"]),
- "offline" => "pf-$system-$id.webp"
- ],
- 'median' => $metadata["median"],
- 'little' => $metadata["little"] >= 2,
- 'name' => $member["display_name"] ?? $member["name"],
- 'gender' => "Agender",
- 'badges' => $badges,
- 'prefixes' => $prefixes,
- 'pronouns' => isset($member["pronouns"]) && trim($member["pronouns"]) !== "" ? $member["pronouns"] : "<i>they/them</i>",
- 'pronouns_usage' => getMemberPronouns($member['pronouns']),
- 'last_fronted' => $lastFronted,
- 'species' => $speciesList,
- 'system' => $systemData,
- 'age' => -1,
- 'relations' => [
- 'marefriends' => $marefriends ?? [],
- 'sexfriends' => $sexfriends ?? null,
- 'sisters' => $sisters ?? [],
- 'caretakers' => $caretakers ?? [],
- 'friends' => $friends ?? []
- ]
- ];
-}