diff options
Diffstat (limited to 'includes/components/details.inc')
-rw-r--r-- | includes/components/details.inc | 166 |
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("'", "'", $pronouns["possessive_det"])) . " species indicates that " . str_replace("'", "'", $pronouns["subjective"]) . ' ' . ($pronouns["third"] ? "doesn't" : "don't") . " need to eat food, therefore " . str_replace("'", "'", $pronouns["subjective"]) . " can eat all foods.'>" . $lang["details"]["food_states"][0] . "</span>", + 1 => "<span data-bs-toggle='tooltip' title='" . ucfirst(str_replace("'", "'", $pronouns["subjective"])) . " can't eat fish or meat.'>" . $lang["details"]["food_states"][1] . "</span>", + 2 => "<span data-bs-toggle='tooltip' title='" . ucfirst(str_replace("'", "'", $pronouns["subjective"])) . " can't eat meat, but can eat fish.'>" . $lang["details"]["food_states"][2] . "</span>", + 3 => "<span data-bs-toggle='tooltip' title='" . ucfirst(str_replace("'", "'", $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("'", "'", ucfirst($pronouns["subjective"])) . ($pronouns["third"] ? " doesn't directly share" : " don't directly share") . " memory with " . str_replace("'", "'", $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("'", "'", ucfirst($pronouns["subjective"])) . ($pronouns["third"] ? " doesn't directly shares" : " don't directly share") . " all memories with " . str_replace("'", "'", $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("'", "'", ucfirst($pronouns["subjective"])) . ($pronouns["third"] ? " shares" : " share") . " all memories with " . str_replace("'", "'", $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("'", "'", ucfirst($pronouns["subjective"])) . " never age" . str_replace("'", "'", $pronouns["third"] ? "s" : "") . " and " . str_replace("'", "'", $pronouns["third"] ? "doesn't" : "don't") . " have a defined age, making " . str_replace("'", "'", $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("'", "'", ucfirst($pronouns["subjective"])) . str_replace("'", "'", $pronouns["third"] ? " doesn't" : " don't") . " age like the body does, making " . str_replace("'", "'", $pronouns["object"]) . " stay " . $metadata["birth"]["age"] . " years old for " . str_replace("'", "'", $pronouns["possessive_det"]) . " entire life.'>" . $metadata["birth"]["age"] . "* years old</span>" ?> + <?php else: ?> + <?= "<span data-bs-toggle='tooltip' title='" . str_replace("'", "'", ucfirst($pronouns["object"])) . " age " . str_replace("'", "'", $pronouns["third"] ? " changes" : " change") . " frequently between " . explode("-", $metadata["birth"]["age"])[0] . " and " . explode("-", $metadata["birth"]["age"])[1] . " years old, and " . str_replace("'", "'", $pronouns["subjective"]) . " " . str_replace("'", "'", $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("'", "'", ucfirst($pronouns["subjective"])) . " age" . str_replace("'", "'", $pronouns["third"] ? "s" : "") . " like the body does, making " . str_replace("'", "'", $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; ?> |