summaryrefslogtreecommitdiff
path: root/includes/banner.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/banner.php')
-rw-r--r--includes/banner.php167
1 files changed, 133 insertions, 34 deletions
diff --git a/includes/banner.php b/includes/banner.php
index 48bba83..6305857 100644
--- a/includes/banner.php
+++ b/includes/banner.php
@@ -1,5 +1,6 @@
<?php
+require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/session.php"; global $isLoggedIn;
require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/pronouns.php";
$travelling = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/travelling.json"), true);
@@ -102,16 +103,21 @@ function _header_getSubsystemFromMember(array $member) {
return $ss;
}
-function getMemberBannerData(string $id, string $system) {
+function getMemberBannerData(string $id, string $system, bool $french = false) {
global $subsystems;
global $travelling;
$subsystems = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$system-subsystems.json"), true) ?? [];
$member = getSystemMember($system, $id);
- $metadata = parseMetadata(json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$system-$id-metadata.json"), true));
-
- $prn = getMemberPronouns($member['pronouns']);
+ $metadata = file_exists($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$system-$id-metadata.json") ? parseMetadata(json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$system-$id-metadata.json"), true)) : parseMetadata([
+ "bitset" => 4196352,
+ "regression" => null,
+ "median" => null,
+ "marefriends" => [],
+ "sisters" => [],
+ "caretakers" => []
+ ]);
$prefixes = [];
foreach ($member['proxy_tags'] as $proxy) {
@@ -167,14 +173,24 @@ function getMemberBannerData(string $id, string $system) {
'timestamp' => strtotime($frontingEnd["timestamp"]),
'duration' => [
'seconds' => $seconds,
- 'pretty' => $seconds . " seconds"
+ 'pretty' => $seconds . ($french ? " secondes" : " seconds")
]
];
- if ($seconds > 60) {
- if ($seconds > 3600) {
- $lastFronted['duration']['pretty'] = round($seconds / 3600) . " hours";
- } else {
- $lastFronted['duration']['pretty'] = round($seconds / 60) . " minutes";
+ 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";
+ }
}
}
}
@@ -183,21 +199,34 @@ function getMemberBannerData(string $id, string $system) {
$speciesList = [];
foreach ($metadata["species"] ?? [] as $species) {
- $name = match ($species) {
- "earth" => $metadata["robot"] ? "Robot earth pony" : "Earth pony",
- "alicorn" => $metadata["robot"] ? "Robot alicorn" : "Alicorn",
- "crystal" => $metadata["robot"] ? "Robot crystal pony" : "Crystal pony",
- "pegasus" => $metadata["robot"] ? "Robot pegasus" : "Pegasus",
- "batpony" => $metadata["robot"] ? "Robot bat pony" : "Bat pony",
- "unicorn" => $metadata["robot"] ? "Robot unicorn" : "Unicorn",
- default => $species . "_" . $metadata["robot"]
- };
+ 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"),
+ 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"),
+ default => $species . "_" . $metadata["robot"]
+ };
+ }
$speciesList[] = [
"id" => $species,
"name" => $name,
"robot" => $metadata["robot"],
- "icon" => $species . ($metadata["robot"] ? "-robot" : "") . ".png"
+ "plush" => $metadata["plush"],
+ "icon" => $species . ($metadata["robot"] ? "-robot" : ($metadata["plush"] ? "-plush" : "")) . ".png"
];
}
@@ -239,7 +268,7 @@ function getMemberBannerData(string $id, string $system) {
$marefriends[] = [
"id" => $marefriend,
- "link" => "/" . ($mfSystem === "gdapd" ? "raindrops" : "cloudburst") . "/" . ($mfMember["name"]),
+ "link" => "/" . ($mfMember["name"]),
"icon" => "pt" . (file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $mfMember['name'] . ".png") ? "-" . $mfMember['name'] : "") . ".png",
"name" => getMiniName($mfMember["display_name"] ?? $mfMember["name"]),
"full_name" => $mfMember["display_name"] ?? $mfMember["name"]
@@ -258,7 +287,7 @@ function getMemberBannerData(string $id, string $system) {
$sisters[] = [
"id" => $marefriend,
- "link" => "/" . ($mfSystem === "gdapd" ? "raindrops" : "cloudburst") . "/" . ($mfMember["name"]),
+ "link" => "/" . ($mfMember["name"]),
"icon" => "pt" . (file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $mfMember['name'] . ".png") ? "-" . $mfMember['name'] : "") . ".png",
"name" => getMiniName($mfMember["display_name"] ?? $mfMember["name"]),
"full_name" => $mfMember["display_name"] ?? $mfMember["name"]
@@ -280,7 +309,7 @@ function getMemberBannerData(string $id, string $system) {
$caretakers[] = [
"id" => $marefriend,
- "link" => "/" . ($mfSystem === "gdapd" ? "raindrops" : "cloudburst") . "/" . ($mfMember["name"]),
+ "link" => "/" . ($mfMember["name"]),
"icon" => "pt" . (file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $mfMember['name'] . ".png") ? "-" . $mfMember['name'] : "") . ".png",
"name" => getMiniName($mfMember["display_name"] ?? $mfMember["name"]),
"full_name" => $mfMember["display_name"] ?? $mfMember["name"]
@@ -295,16 +324,44 @@ function getMemberBannerData(string $id, string $system) {
$badges[] = [
"id" => "host",
"color" => "primary",
- "html" => '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Host</b><br>' . ucfirst($prn["subjective"]) . ' ' . ($prn["third"] ? "is" : "are") . ' the one who fronts the most often in ' . $prn["possessive_det"] . ' system." class="badge rounded-pill bg-primary">Host</span>'
+ "html" => (
+ $french
+ ?
+ '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Hôte</b><br>' . ucfirst(getMemberPronouns($member['pronouns'])["subjective"]) . ' ' . (getMemberPronouns($member['pronouns'])["third"] ? "is" : "are") . ' the one who fronts the most often in ' . getMemberPronouns($member['pronouns'])["possessive_det"] . ' system." class="badge rounded-pill bg-primary">Hôte</span>'
+ :
+ '<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 one who fronts the most often in ' . getMemberPronouns($member['pronouns'])["possessive_det"] . ' system." class="badge rounded-pill bg-primary">Host</span>'
+ )
];
}
}
+ if (($metadata["age_spells"] ?? false) && !$french) {
+ $badges[] = [
+ "id" => "age_spells",
+ "color" => "primary",
+ "html" => '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Affected by age spells</b><br>' . ucfirst(getMemberPronouns($member['pronouns'])["subjective"]) . ' can feel younger than ' . getMemberPronouns($member['pronouns'])["subjective"] . ' actually ' . (getMemberPronouns($member['pronouns'])["third"] ? "is" : "are") . ' when somepony else casts an age spell on ' . getMemberPronouns($member['pronouns'])["object"] . '." class="badge rounded-pill" style="background-color: #6f42c1;">Affected by age spells</span>'
+ ];
+ }
+
if ($metadata["fictive"] ?? false) {
$badges[] = [
"id" => "fictive",
"color" => "info",
- "html" => '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Fictive</b><br>' . ucfirst($prn["subjective"]) . ' ' . ($prn["third"] ? "is" : "are") . ' based on the personality, look and behavior of a character that is fictional in this world." class="badge rounded-pill bg-info">Fictive</span>'
+ "html" => (
+ $french
+ ?
+ '<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 fictional in this world." class="badge rounded-pill bg-info">Fictive</span>'
+ :
+ '<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 fictional in this world." class="badge rounded-pill bg-info">Fictive</span>'
+ )
+ ];
+ }
+
+ if ($member["name"] === "fusion") {
+ $badges[] = [
+ "id" => "fusion",
+ "color" => "d63384",
+ "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" style="background-color:#d63384;">Fusion</span>'
];
}
@@ -312,7 +369,13 @@ function getMemberBannerData(string $id, string $system) {
$badges[] = [
"id" => "protector",
"color" => "black",
- "html" => '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Protector</b><br>' . ucfirst($prn["subjective"]) . ' ' . ($prn["third"] ? "is" : "are") . ' a protector in the system and will front when somepony cannot handle it anymore." class="badge rounded-pill bg-black">Protector</span>'
+ "html" => (
+ $french
+ ?
+ '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>' . (getMemberPronouns($member['pronouns'])["gender"] === "female" ? "Protectrice" : (getMemberPronouns($member['pronouns'])["gender"] === "male" ? "Protecteur" : "Protecteur·ice")) . '</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-black">' . (getMemberPronouns($member['pronouns'])["gender"] === "female" ? "Protectrice" : (getMemberPronouns($member['pronouns'])["gender"] === "male" ? "Protecteur" : "Protecteur·ice")) . '</span>'
+ :
+ '<span 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-black">Protector</span>'
+ )
];
}
@@ -320,7 +383,13 @@ function getMemberBannerData(string $id, string $system) {
$badges[] = [
"id" => "little",
"color" => "success",
- "html" => '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Little</b><br>' . ucfirst($prn["subjective"]) . ' ' . ($prn["third"] ? "is" : "are") . ' mentally younger, and therefore behaves and feels younger than the body is." class="badge rounded-pill bg-success">Little</span>'
+ "html" => (
+ $french
+ ?
+ '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Petit' . (getMemberPronouns($member['pronouns'])["gender"] === "female" ? "e" : (getMemberPronouns($member['pronouns'])["gender"] === "male" ? "" : "·e")) . '</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">Petit' . (getMemberPronouns($member['pronouns'])["gender"] === "female" ? "e" : (getMemberPronouns($member['pronouns'])["gender"] === "male" ? "" : "·e")) . '</span>'
+ :
+ '<span 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">Little</span>'
+ )
];
}
@@ -328,7 +397,13 @@ function getMemberBannerData(string $id, string $system) {
$badges[] = [
"id" => "younger",
"color" => "dark",
- "html" => '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Younger</b><br>' . ucfirst($prn["subjective"]) . ' ' . ($prn["third"] ? "is" : "are") . ' younger than the body, but not young enough to be classified as a little." class="badge rounded-pill bg-dark">Younger</span>'
+ "html" => (
+ $french
+ ?
+ '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Plus jeune</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-dark">Plus jeune</span>'
+ :
+ '<span 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-dark">Younger</span>'
+ )
];
}
@@ -338,13 +413,25 @@ function getMemberBannerData(string $id, string $system) {
$badges[] = [
"id" => "regressor_median",
"color" => "secondary",
- "html" => '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Age regressor</b><br>' . ucfirst($prn["subjective"]) . ' ' . ($prn["third"] ? "is" : "are") . ' capable of regressing ' . $prn["possessive_det"] . ' mental age, which causes ' . $prn["object"] . ' to become ' . (getMiniName($regression["display_name"] ?? $regression["name"])) . ', temporarily behaving and feeling younger than the body is." class="badge rounded-pill bg-secondary">Age regresses into <a href="/' . ($system === "gdapd" ? "raindrops" : "cloudburst") . '/' . $regression["name"] . '">'. (getMiniName($regression["display_name"] ?? $regression["name"])) . '</a></span>'
+ "html" => (
+ $french
+ ?
+ '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Régresseur d\'âge</b><br>' . ucfirst(getMemberPronouns($member['pronouns'])["subjective"]) . ' ' . (getMemberPronouns($member['pronouns'])["third"] ? "is" : "are") . ' capable of regressing ' . getMemberPronouns($member['pronouns'])["possessive_det"] . ' mental age, which causes ' . getMemberPronouns($member['pronouns'])["object"] . ' to become ' . (getMiniName($regression["display_name"] ?? $regression["name"])) . ', temporarily behaving and feeling younger than the body is." class="badge rounded-pill bg-secondary">Régresse en âge en <a href="/' . $regression["name"] . '">'. (getMiniName($regression["display_name"] ?? $regression["name"])) . '</a></span>'
+ :
+ '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Age regressor</b><br>' . ucfirst(getMemberPronouns($member['pronouns'])["subjective"]) . ' ' . (getMemberPronouns($member['pronouns'])["third"] ? "is" : "are") . ' capable of regressing ' . getMemberPronouns($member['pronouns'])["possessive_det"] . ' mental age, which causes ' . getMemberPronouns($member['pronouns'])["object"] . ' to become ' . (getMiniName($regression["display_name"] ?? $regression["name"])) . ', temporarily behaving and feeling younger than the body is." class="badge rounded-pill bg-secondary">Age regresses into <a href="/' . $regression["name"] . '">'. (getMiniName($regression["display_name"] ?? $regression["name"])) . '</a></span>'
+ )
];
} else {
$badges[] = [
"id" => "regressor",
"color" => "secondary",
- "html" => '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Age regressor</b><br>' . ucfirst($prn["subjective"]) . ' ' . ($prn["third"] ? "is" : "are") . ' capable of regressing ' . $prn["possessive_det"] . ' mental age, temporarily behaving and feeling younger than the body is." class="badge rounded-pill bg-secondary">Age regressor</span>'
+ "html" => (
+ $french
+ ?
+ '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Régresseur d\'âge</b><br>' . ucfirst(getMemberPronouns($member['pronouns'])["subjective"]) . ' ' . (getMemberPronouns($member['pronouns'])["third"] ? "is" : "are") . ' capable of regressing ' . getMemberPronouns($member['pronouns'])["possessive_det"] . ' mental age, temporarily behaving and feeling younger than the body is." class="badge rounded-pill bg-secondary">Régresseur d\'âge</span>'
+ :
+ '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Age regressor</b><br>' . ucfirst(getMemberPronouns($member['pronouns'])["subjective"]) . ' ' . (getMemberPronouns($member['pronouns'])["third"] ? "is" : "are") . ' capable of regressing ' . getMemberPronouns($member['pronouns'])["possessive_det"] . ' mental age, temporarily behaving and feeling younger than the body is." class="badge rounded-pill bg-secondary">Age regressor</span>'
+ )
];
}
}
@@ -355,13 +442,25 @@ function getMemberBannerData(string $id, string $system) {
$badges[] = [
"id" => "regressed",
"color" => "warning",
- "html" => '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Age regressed</b><br>' . ucfirst($prn["subjective"]) . ' has regressed ' . $prn["possessive_det"] . ' mental age, making ' . $prn["object"] . ' ' . getMiniName($member["display_name"] ?? $member["name"]) . ' instead of ' . (getMiniName($source["display_name"] ?? $source["name"])) . ', temporarily behaving and feeling younger than the body is." class="badge rounded-pill bg-warning">Age regressed from <a href="/' . ($system === "gdapd" ? "raindrops" : "cloudburst") . '/' . $source["name"] . '">' . (getMiniName($source["display_name"] ?? $source["name"])) . '</a></span>'
+ "html" => (
+ $french
+ ?
+ '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Régressée en âge</b><br>' . ucfirst(getMemberPronouns($member['pronouns'])["subjective"]) . ' has regressed ' . getMemberPronouns($member['pronouns'])["possessive_det"] . ' mental age, making ' . getMemberPronouns($member['pronouns'])["object"] . ' ' . getMiniName($member["display_name"] ?? $member["name"]) . ' instead of ' . (getMiniName($source["display_name"] ?? $source["name"])) . ', temporarily behaving and feeling younger than the body is." class="badge rounded-pill bg-warning">Régressé en âge de <a href="/' . $source["name"] . '">' . (getMiniName($source["display_name"] ?? $source["name"])) . '</a></span>'
+ :
+ '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Age regressed</b><br>' . ucfirst(getMemberPronouns($member['pronouns'])["subjective"]) . ' has regressed ' . getMemberPronouns($member['pronouns'])["possessive_det"] . ' mental age, making ' . getMemberPronouns($member['pronouns'])["object"] . ' ' . getMiniName($member["display_name"] ?? $member["name"]) . ' instead of ' . (getMiniName($source["display_name"] ?? $source["name"])) . ', temporarily behaving and feeling younger than the body is." class="badge rounded-pill bg-warning">Age regressed from <a href="/' . $source["name"] . '">' . (getMiniName($source["display_name"] ?? $source["name"])) . '</a></span>'
+ )
];
} else {
$badges[] = [
"id" => "facet",
"color" => "light",
- "html" => '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Facet</b><br>' . ucfirst($prn["subjective"]) . ' is a facet of ' . getMiniName($source["display_name"] ?? $source["name"]) . ', meaning ' . $prn["subjective"] . ' ' . ($prn["third"] ? "is" : "are") . ' not totally independent of ' . getMiniName($source["display_name"] ?? $source["name"]) . '." class="badge rounded-pill bg-light">Facet of <a href="/' . ($system === "gdapd" ? "raindrops" : "cloudburst") . '/' . $source["name"] . '">' . getMiniName($source["display_name"] ?? $source["name"]) . '</a></span>'
+ "html" => (
+ $french
+ ?
+ '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Facette</b><br>' . ucfirst(getMemberPronouns($member['pronouns'])["subjective"]) . ' is a facet of ' . getMiniName($source["display_name"] ?? $source["name"]) . ', meaning ' . getMemberPronouns($member['pronouns'])["subjective"] . ' ' . (getMemberPronouns($member['pronouns'])["third"] ? "is" : "are") . ' not totally independent of ' . getMiniName($source["display_name"] ?? $source["name"]) . '." class="badge rounded-pill bg-light">Facette de <a href="/' . $source["name"] . '">' . getMiniName($source["display_name"] ?? $source["name"]) . '</a></span>'
+ :
+ '<span data-bs-toggle="tooltip" data-bs-html="true" title="<b>Facet</b><br>' . ucfirst(getMemberPronouns($member['pronouns'])["subjective"]) . ' is a facet of ' . getMiniName($source["display_name"] ?? $source["name"]) . ', meaning ' . getMemberPronouns($member['pronouns'])["subjective"] . ' ' . (getMemberPronouns($member['pronouns'])["third"] ? "is" : "are") . ' not totally independent of ' . getMiniName($source["display_name"] ?? $source["name"]) . '." class="badge rounded-pill bg-light">Facet of <a href="/' . $source["name"] . '">' . getMiniName($source["display_name"] ?? $source["name"]) . '</a></span>'
+ )
];
}
}
@@ -378,8 +477,8 @@ function getMemberBannerData(string $id, string $system) {
'name' => $member["display_name"] ?? $member["name"],
'badges' => $badges,
'prefixes' => $prefixes,
- 'pronouns' => getTooltipsFromMark($member["pronouns"]) ?? "<span data-bs-toggle='tooltip' title='Pronouns not specified' class='text-muted'>she/her</span>",
- 'pronouns_usage' => $prn,
+ 'pronouns' => getTooltipsFromMark($member["pronouns"], $french) ?? "<span data-bs-toggle='tooltip' title='Pronouns not specified' class='text-muted'>she/her</span>",
+ 'pronouns_usage' => getMemberPronouns($member['pronouns']),
'last_fronted' => $lastFronted,
'species' => $speciesList,
'system' => $systemData,