summaryrefslogtreecommitdiff
path: root/includes/components/details.inc
diff options
context:
space:
mode:
Diffstat (limited to 'includes/components/details.inc')
-rw-r--r--includes/components/details.inc166
1 files changed, 166 insertions, 0 deletions
diff --git a/includes/components/details.inc b/includes/components/details.inc
new file mode 100644
index 0000000..b7d0ebe
--- /dev/null
+++ b/includes/components/details.inc
@@ -0,0 +1,166 @@
+<?php global $isLoggedIn; global $metadata; global $memberData; global $isLowerLoggedIn; global $systemID; global $app; global $lang; global $pages; $pronouns = getMemberPronouns($memberData['pronouns']); ?>
+<div id="member-details" class="<?= (($isLoggedIn || $isLowerLoggedIn) && $systemID !== $app["other"]["id"]) ? 'member-details-loggedIn' : 'member-details-loggedIn2' ?>" style="<?php if (!$isLoggedIn && !$isLowerLoggedIn): ?>grid-template-columns: repeat(4, 1fr);<?php endif; ?> background-color: <?= isset($memberData["color"]) ? '#' . $memberData["color"] . "33" : "transparent" ?>; margin-left: -20px; margin-right: -20px;">
+ <div>
+ <b><?= $lang["details"]["food"] ?></b><span class="member-small-separator"><br></span>
+ <?= match ($metadata["food"]) {
+ 0 => "<span data-bs-toggle='tooltip' title='" . ucfirst(str_replace("'", "&apos;", $pronouns["possessive_det"])) . " species indicates that " . str_replace("'", "&apos;", $pronouns["subjective"]) . ' ' . ($pronouns["third"] ? "doesn&apos;t" : "don&apos;t") . " need to eat food, therefore " . str_replace("'", "&apos;", $pronouns["subjective"]) . " can eat all foods.'>" . $lang["details"]["food_states"][0] . "</span>",
+ 1 => "<span data-bs-toggle='tooltip' title='" . ucfirst(str_replace("'", "&apos;", $pronouns["subjective"])) . " can&apos;t eat fish or meat.'>" . $lang["details"]["food_states"][1] . "</span>",
+ 2 => "<span data-bs-toggle='tooltip' title='" . ucfirst(str_replace("'", "&apos;", $pronouns["subjective"])) . " can&apos;t eat meat, but can eat fish.'>" . $lang["details"]["food_states"][2] . "</span>",
+ 3 => "<span data-bs-toggle='tooltip' title='" . ucfirst(str_replace("'", "&apos;", $pronouns["subjective"])) . " can eat all foods, meat and fish included.'>" . $lang["details"]["food_states"][3] . "</span>",
+ } ?>
+ </div>
+ <div>
+ <b><?= $lang["details"]["memory"] ?></b><span class="member-small-separator"><br></span>
+ <?= match ($metadata["shared_memory"]) {
+ 0 => "<span data-bs-toggle='tooltip' title='" . str_replace("'", "&apos;", ucfirst($pronouns["subjective"])) . ($pronouns["third"] ? " doesn&apos;t directly share" : " don&apos;t directly share") . " memory with " . str_replace("'", "&apos;", $pronouns["possessive_det"]) . " headmates, but is able to (slowly) query it if that is needed.'>" . $lang["details"]["memory_states"][0] . "</span>",
+ 1 => "<span data-bs-toggle='tooltip' title='" . str_replace("'", "&apos;", ucfirst($pronouns["subjective"])) . ($pronouns["third"] ? " doesn&apos;t directly shares" : " don&apos;t directly share") . " all memories with " . str_replace("'", "&apos;", $pronouns["possessive_det"]) . " headmates, but may be able to share certain memories and/or share memories at will.'>" . $lang["details"]["memory_states"][1] . "</span>",
+ 2 => "<span data-bs-toggle='tooltip' title='" . str_replace("'", "&apos;", ucfirst($pronouns["subjective"])) . ($pronouns["third"] ? " shares" : " share") . " all memories with " . str_replace("'", "&apos;", $pronouns["possessive_det"]) . " headmates.'>" . $lang["details"]["memory_states"][2] . "</span>",
+ } ?>
+ </div>
+ <?php if ($isLoggedIn || $isLowerLoggedIn): ?>
+ <div>
+ <b>Age:</b><span class="member-small-separator"><br></span>
+ <?php if (!isset($metadata["birth"]["year"]) || $metadata["birth"]["age"] > 0): ?>
+ <?php if ($metadata["birth"]["age"] === -1): $age = abs(log(0)); // => INF ?>
+ <?= "<span data-bs-toggle='tooltip' title='" . str_replace("'", "&apos;", ucfirst($pronouns["subjective"])) . " never age" . str_replace("'", "&apos;", $pronouns["third"] ? "s" : "") . " and " . str_replace("'", "&apos;", $pronouns["third"] ? "doesn't" : "don't") . " have a defined age, making " . str_replace("'", "&apos;", $pronouns["object"]) . " pretty much eternal.'>Eternal</span>" ?>
+ <?php elseif ($metadata["birth"]["age"] <= 0): ?>
+ -
+ <?php else: $age = $metadata["birth"]["age"]; if (is_numeric($metadata["birth"]["age"])): ?>
+ <?= "<span data-bs-toggle='tooltip' title='" . str_replace("'", "&apos;", ucfirst($pronouns["subjective"])) . str_replace("'", "&apos;", $pronouns["third"] ? " doesn't" : " don't") . " age like the body does, making " . str_replace("'", "&apos;", $pronouns["object"]) . " stay " . $metadata["birth"]["age"] . " years old for " . str_replace("'", "&apos;", $pronouns["possessive_det"]) . " entire life.'>" . $metadata["birth"]["age"] . "* years old</span>" ?>
+ <?php else: ?>
+ <?= "<span data-bs-toggle='tooltip' title='" . str_replace("'", "&apos;", ucfirst($pronouns["object"])) . " age " . str_replace("'", "&apos;", $pronouns["third"] ? " changes" : " change") . " frequently between " . explode("-", $metadata["birth"]["age"])[0] . " and " . explode("-", $metadata["birth"]["age"])[1] . " years old, and " . str_replace("'", "&apos;", $pronouns["subjective"]) . " " . str_replace("'", "&apos;", $pronouns["third"] ? " doesn't" : " don't") . " have a single defined age.'>Sliding " . explode("-", $metadata["birth"]["age"])[0] . " to " . explode("-", $metadata["birth"]["age"])[1] . "</span>" ?>
+ <?php endif; endif; ?>
+ <?php else: ?>
+ <?php if ($metadata["birth"]["year"] <= 1900): ?>
+ -
+ <?php else: ?>
+ <?php
+
+ $birthdate = $metadata["birth"]["year"] . date('-m-d');
+ if (isset($metadata["birth"]["date"]) && trim($metadata["birth"]["date"]) !== "" && $metadata["birth"]["date"] !== "01-01") {
+ $birthdate = $metadata["birth"]["year"] . "-" . $metadata["birth"]["date"];
+ }
+
+ $age = (int)date('Y') - $metadata["birth"]["year"] + (strtotime(date('Y') . "-" . $metadata["birth"]["date"]) <= time() ? 0 : -1);
+ $age2 = floor((time() - strtotime($birthdate)) / 31557600);
+ $birthday = "as time passes";
+
+ if (isset($metadata["birth"]["date"]) && trim($metadata["birth"]["date"]) !== "" && $metadata["birth"]["date"] !== "01-01") {
+ $birthday = "every " . date('F jS', strtotime(date('Y') . "-" . $metadata["birth"]["date"]));
+ }
+
+ ?>
+ <?= "<span data-bs-toggle='tooltip' title='$age2 with the old algorithm | " . str_replace("'", "&apos;", ucfirst($pronouns["subjective"])) . " age" . str_replace("'", "&apos;", $pronouns["third"] ? "s" : "") . " like the body does, making " . str_replace("'", "&apos;", $pronouns["object"]) . " stay " . $age . " years old for now, having this age change $birthday.'>" . $age . " years old</span>" ?>
+ <?php endif; ?>
+ <?php endif; ?>
+ </div>
+ <?php endif; ?>
+ <?php if ($systemID !== $app["other"]["id"]): ?>
+ <div>
+ <b><?= $lang["details"]["code"] ?></b><span class="member-small-separator"><br></span>
+ <?php if (isset($metadata["code"]) && trim($metadata["code"]) !== ""): ?>
+ <code style="color: white;"><?= strtoupper(substr($metadata["code"], 0, 3)) ?></code>
+ <?php else: ?>
+ -
+ <?php endif; ?>
+ </div>
+ <div>
+ <b>Primary interest:</b><span class="member-small-separator"><br></span>
+ <?php if (isset($metadata["interest"]) && trim($metadata["interest"]) !== ""): ?>
+ <?= trim($metadata["interest"]) ?>
+ <?php else: ?>
+ -
+ <?php endif; ?>
+ </div>
+ <?php endif; ?>
+<?php if ($systemID !== $app["other"]["id"]): ?>
+</div>
+<?php endif; ?>
+<?php if ($isLoggedIn || $isLowerLoggedIn): ?>
+<?php if ($systemID !== $app["other"]["id"]): ?>
+<div id="member-details-2" style="background-color: <?= isset($memberData["color"]) ? '#' . $memberData["color"] . "33" : "transparent" ?>; margin-left: -20px; margin-right: -20px;<?php if ($isLowerLoggedIn): ?>grid-template-columns: repeat(3, 1fr);<?php endif; ?>">
+<?php endif; ?>
+ <?php if (((isset($age) && $age >= 16 && $metadata["little"] === 0) || (!isset($age) && $metadata["little"] === 0)) || $metadata["sexual_features"]): ?>
+ <?php if ($isLoggedIn && $systemID !== $app["other"]["id"]): ?>
+ <div>
+ <span style="vertical-align: middle;">
+ <b>Sexual consent:</b><span class="member-small-separator"><br></span>
+ <?php if ($metadata["sexually_active"]): ?>
+ <span title="Consent is assumed when having sex with <?= $pronouns["object"] ?>, however <?= $pronouns["subjective"] ?> may ask to not have sex at the moment and such request must be honored." data-bs-toggle="tooltip">Preemptive</span>
+ <?php else: ?>
+ <span title="Consent is absolutely required every time when having sex with <?= $pronouns["object"] ?>." data-bs-toggle="tooltip">Required</span>
+ <?php endif; ?>
+ </span>
+ <?php if (!((isset($age) && $age >= 16 && $metadata["little"] === 0) || (!isset($age) && $metadata["little"] === 0))): ?>
+ <img src="/assets/icons/warning.svg" style="width: 16px;" title="Although this pony is able to engage in sexual relationships, they are not allowed to have sex with ponies who are over 16 years old." data-bs-toggle="tooltip">
+ <?php endif; ?>
+ </div>
+ <?php endif; ?>
+ <div>
+ <b><span class="member-detail-desktop">Sexual alignment</span><span class="member-detail-mobile">Sex. algn.</span>:</b><span class="member-small-separator"><br></span>
+ <?php switch ($metadata["alignment"]["sexual"]) {
+ case "aroace":
+ echo "Asexual";
+ break;
+ case "hetero":
+ echo "Straight";
+ break;
+ case "homo":
+ echo $pronouns["subjective"] === "she" ? "Lesbian" : ($pronouns["subjective"] === "he" ? "Gay" : "Homosexual");
+ break;
+ case "bi":
+ echo "Bisexual";
+ break;
+ case "pan":
+ echo "Pansexual";
+ break;
+ case "poly":
+ echo "Polysexual";
+ break;
+ } ?><?php if ($metadata["polyamorous"]["sexual"]): ?> (poly)<?php endif; ?>
+ </div>
+ <?php else: ?>
+ <div>
+ <style>
+ #member-details-2 {
+ grid-template-columns: <?= $isLowerLoggedIn ? "1fr 1fr 1fr" : "2fr 1fr 1fr" ?>;
+ }
+ </style>
+ <div style="display: flex; align-items: center; justify-content: center; height: 100%;opacity:.5;">This member is too young to be in a sexual relationship.</div>
+ </div>
+ <?php endif; ?>
+ <div>
+ <b><span class="member-detail-desktop">Romantic alignment</span><span class="member-detail-mobile">Rom. algn.</span>:</b><span class="member-small-separator"><br></span>
+ <?php switch ($metadata["alignment"]["romantic"]) {
+ case "aroace":
+ echo "Aromantic";
+ break;
+ case "hetero":
+ echo "Heteroromantic";
+ break;
+ case "homo":
+ echo $pronouns["subjective"] === "she" ? "Lesbiromantic" : ($pronouns["subjective"] === "he" ? "Gay" : "Homoromantic");
+ break;
+ case "bi":
+ echo "Biromantic";
+ break;
+ case "pan":
+ echo "Panromantic";
+ break;
+ case "poly":
+ echo "Polyromantic";
+ break;
+ } ?><?php if ($metadata["polyamorous"]["romantic"]): ?> (poly)<?php endif; ?>
+ </div>
+ <?php if ($systemID !== $app["other"]["id"]): ?>
+ <div>
+ <b>Birthday:</b><span class="member-small-separator"><br></span>
+ <?php if (isset($metadata["birth"]["date"]) && trim($metadata["birth"]["date"]) !== "" && $metadata["birth"]["date"] !== "01-01"): ?>
+ <?= date('F jS', strtotime(date('Y') . "-" . $metadata["birth"]["date"])) ?>
+ <?php else: ?>
+ -
+ <?php endif; ?>
+ </div>
+ <?php endif; ?>
+</div>
+<?php endif; ?>