diff options
author | RaindropsSys <raindrops@equestria.dev> | 2024-03-30 23:40:33 +0100 |
---|---|---|
committer | RaindropsSys <raindrops@equestria.dev> | 2024-03-30 23:40:33 +0100 |
commit | 6b796258d413f00e498ce7f80f73a9f6c061f29c (patch) | |
tree | 49e64a5dd4cde2acff7f0a93ed3f8e20e1cb2dc8 /includes/util/functions.inc | |
parent | 5860551daa0f60103ad24e93da29f401a653f144 (diff) | |
download | pluralconnect-6b796258d413f00e498ce7f80f73a9f6c061f29c.tar.gz pluralconnect-6b796258d413f00e498ce7f80f73a9f6c061f29c.tar.bz2 pluralconnect-6b796258d413f00e498ce7f80f73a9f6c061f29c.zip |
Updated 5 files, added 2 files, deleted 495 files and renamed 7 files (automated)
Diffstat (limited to 'includes/util/functions.inc')
-rw-r--r-- | includes/util/functions.inc | 691 |
1 files changed, 0 insertions, 691 deletions
diff --git a/includes/util/functions.inc b/includes/util/functions.inc deleted file mode 100644 index b01476f..0000000 --- a/includes/util/functions.inc +++ /dev/null @@ -1,691 +0,0 @@ -<?php - -use JetBrains\PhpStorm\NoReturn; - -require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/util/score.inc"; -require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/util/homepage.inc"; -require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/util/random.inc"; - -if (!function_exists("getMemberPronouns")) { - function getMemberPronouns(?string $pronouns): ?array { - return [ - "gender" => "invalid", - "gender:fr" => "invalide", - "object" => "this pony", - "person" => "pony", - "possessive_det" => "this pony's", - "possessive_pro" => "this pony's", - "reflexive" => "this pony", - "subjective" => "this pony", - "third" => true, - "color" => "success" - ]; - } -} - -if (!function_exists("file_get_contents_or_defaults")) { - function file_get_contents_or_defaults($file, $default) { - if (file_exists($file)) { - return file_get_contents($file); - } else { - return $default; - } - } -} - -if (!function_exists("parseMetadata")) { - function parseMetadata ($metadata) { - $metadata["little"] = 0; - - $age = -1; - - if (isset($metadata["birth"]["age"]) && $metadata["birth"]["age"] !== 0) { - $age = $metadata["birth"]["age"]; - } else if (isset($metadata["birth"]["year"]) && $metadata["birth"]["year"] > 1990) { - $age = (int)date('Y') - $metadata["birth"]["year"] + (strtotime(date('Y') . "-" . $metadata["birth"]["date"]) <= time() ? 0 : -1); - } - - if (is_string($age) && isset(explode("-", $age)[1]) && is_numeric(explode("-", $age)[1])) { - $age = (int)explode("-", $age)[1]; - } - - if ($age > 0 && $age <= 10) { - $metadata["little"] = 2; - } else if ($age > 0 && $age <= 15) { - $metadata["little"] = 3; - } - - return $metadata; - } -} - -if (!function_exists("pf_utf8_decode")) { - function pf_utf8_decode(string $string): string { - return iconv("UTF-8", "ISO-8859-1", $string); - } -} - -if (!function_exists("pf_utf8_encode")) { - function pf_utf8_encode(string $string): string { - return iconv("ISO-8859-1", "UTF-8", $string); - } -} - -if (!function_exists("getLastFronted")) { - function getLastFronted($members, $id) { - foreach ($members as $member) { - if ($member["id"] === $id) { - return $member["_lastFronted"]; - } - } - - return -1; - } -} - -if (!function_exists("createJob")) { - function createJob($title, $options): void { - $job = [ - "name" => $title, - "options" => $options, - "date" => date('c') - ]; - - file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/jobs/" . round(microtime(true) * 1000000) . "-" . random() . ".json", json_encode($job)); - } -} - -if (!function_exists("formatPonypush")) { - function formatPonypush($message): string { - return "Update to Ponypush 3.1.0 or later — (\$PA1$\$" . base64_encode($message) . "\$\$)"; - } -} - -if (!function_exists("generateToken")) { - function generateToken(): string { - return "peh" . str_replace("/", ".", base64_encode(random_bytes(96))); - } -} - -if (!function_exists("peh_error")) { - #[NoReturn] function peh_error($message, $code = 500): void { - header("Location: /?em=" . urlencode(base64_encode($message)) . "&ec=" . $code); - die(); - } -} - -if (!function_exists("getAsset")) { - function getAsset($systemID, $memberID = null, $type = "avatars"): string { - if ($systemID === "gdapd") { - if (isset($memberID)) { - if ($type === "avatars" || $type === "heads") { - return getSystemMember($systemID, $memberID)["avatar_url"]; - } else { - return getSystemMember($systemID, $memberID)["banner"]; - } - } else { - $system = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/" . $systemID . "/general.json"), true); - - if ($type === "avatars" || $type === "heads") { - return $system["avatar_url"]; - } else { - return $system["banner"]; - } - } - } - - $app = $GLOBALS["ColdHazeApp"] ?? json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/app.json"), true); - $systemFile = (isset($app["other"]) && $systemID === $app["other"]["id"]) ? "other" : $systemID; - - if (file_exists($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$systemFile/general.json")) { - $id1 = preg_replace("/^([\da-f]{8})-([\da-f]{4})-([\da-f]{4})-([\da-f]{4})-([\da-f]{12})$/", "$1$2$3$4$5", json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$systemFile/general.json"), true)["uuid"]); - - if (isset($memberID)) { - $members = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$systemFile/members.json"), true); - $list = array_map(function ($i) { - return $i["id"]; - }, $members); - - if (in_array($memberID, $list)) { - $id2 = preg_replace("/^([\da-f]{8})-([\da-f]{4})-([\da-f]{4})-([\da-f]{4})-([\da-f]{12})$/", "$1$2$3$4$5", (getMemberWithoutSystem($memberID) ?? ['uuid' => ''])["uuid"]); - } else { - return "/error/nomember/?s=$systemID&m=$memberID&t=$type"; - } - - $id = $id1 . $id2; - - if (str_ends_with((getMemberWithoutSystem($memberID) ?? ['name' => ''])["name"], "-travelling")) { - $id1 = preg_replace("/^([\da-f]{8})-([\da-f]{4})-([\da-f]{4})-([\da-f]{4})-([\da-f]{12})$/", "$1$2$3$4$5", json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/" . ($systemID === "gdapd" ? "hrbom" : "gdapd") . "/general.json"), true)["uuid"]); - - $members = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/" . ($systemID === "gdapd" ? "hrbom" : "gdapd") . "/members.json"), true); - $list = array_map(function ($i) { - return $i["name"]; - }, $members); - - if (in_array(substr(getMemberWithoutSystem($memberID)["name"], 0, -11), $list)) { - $id2 = preg_replace("/^([\da-f]{8})-([\da-f]{4})-([\da-f]{4})-([\da-f]{4})-([\da-f]{12})$/", "$1$2$3$4$5", getMemberFromName(substr(getMemberWithoutSystem($memberID)["name"], 0, -11))["uuid"]); - } else { - return "/error/nomember/?s=$systemID&m=$memberID&t=$type"; - } - - $id = $id1 . $id2; - } - } else { - $id = $id1; - } - - if ($type === "bodies" || $type === "heads") { - if (getSystemMember($systemID, $memberID) !== null && getSystemMember($systemID, $memberID)["_metadata"] !== null && getSystemMember($systemID, $memberID)["_metadata"]["species"] !== null && in_array("human", getSystemMember($systemID, $memberID)["_metadata"]["species"])) { - $type = "avatars"; - - if (file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/" . $type . "/" . $id . ".webp")) { - return "/assets/" . $type . "/" . $id . ".webp"; - } else { - return "/error/nofile/?s=$systemID&m=$memberID&t=$type"; - } - } else { - if (file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/" . $type . "/" . $id . ".png")) { - return "/assets/" . $type . "/" . $id . ".png"; - } else { - return "/error/nofile/?s=$systemID&m=$memberID&t=$type"; - } - } - } else { - if (file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/" . $type . "/" . $id . ".webp")) { - return "/assets/" . $type . "/" . $id . ".webp"; - } else { - return "/error/nofile/?s=$systemID&m=$memberID&t=$type"; - } - } - } else { - return "/error/nosys/?s=$systemID&m=$memberID&t=$type"; - } - } -} - -if (!function_exists("rgbToHsl")) { - function rgbToHsl($r, $g, $b): array { - $r /= 255; - $g /= 255; - $b /= 255; - - $max = max($r, $g, $b); - $min = min($r, $g, $b); - - $l = ($max + $min) / 2; - $d = $max - $min; - - if ($d == 0) { - $h = $s = 0; - } else { - $s = $d / (1 - abs(2 * $l - 1)); - - switch ($max) { - case $r: - $h = 60 * fmod((($g - $b) / $d), 6); - if ($b > $g) { - $h += 360; - } - break; - - case $g: - $h = 60 * (($b - $r) / $d + 2); - break; - - case $b: - $h = 60 * (($r - $g) / $d + 4); - break; - } - } - - return array(round($h, 2), round($s, 2), round($l, 2)); - } -} - -if (!function_exists("imageCreateCorners")) { - function imageCreateCorners($sourceImageFile, $radius) { - if (file_exists($sourceImageFile)) { - $res = is_array($info = getimagesize($sourceImageFile)); - } - else $res = false; - - if ($res) { - $w = $info[0]; - $h = $info[1]; - switch ($info['mime']) { - case 'image/jpeg': $src = imagecreatefromjpeg($sourceImageFile); - break; - case 'image/gif': $src = imagecreatefromgif($sourceImageFile); - break; - case 'image/png': $src = imagecreatefrompng($sourceImageFile); - break; - default: - $res = false; - } - } - - if ($res) { - - $q = 10; - $radius *= $q; - - do { - $r = rand(0, 255); - $g = rand(0, 255); - $b = rand(0, 255); - } - while (imagecolorexact($src, $r, $g, $b) < 0); - - $nw = $w*$q; - $nh = $h*$q; - - $img = imagecreatetruecolor($nw, $nh); - $alphacolor = imagecolorallocatealpha($img, $r, $g, $b, 127); - imagealphablending($img, false); - imagesavealpha($img, true); - imagefilledrectangle($img, 0, 0, $nw, $nh, $alphacolor); - - imagefill($img, 0, 0, $alphacolor); - imagecopyresampled($img, $src, 0, 0, 0, 0, $nw, $nh, $w, $h); - - imagearc($img, $radius-1, $radius-1, $radius*2, $radius*2, 180, 270, $alphacolor); - imagefilltoborder($img, 0, 0, $alphacolor, $alphacolor); - imagearc($img, $nw-$radius, $radius-1, $radius*2, $radius*2, 270, 0, $alphacolor); - imagefilltoborder($img, $nw-1, 0, $alphacolor, $alphacolor); - imagearc($img, $radius-1, $nh-$radius, $radius*2, $radius*2, 90, 180, $alphacolor); - imagefilltoborder($img, 0, $nh-1, $alphacolor, $alphacolor); - imagearc($img, $nw-$radius, $nh-$radius, $radius*2, $radius*2, 0, 90, $alphacolor); - imagefilltoborder($img, $nw-1, $nh-1, $alphacolor, $alphacolor); - imagealphablending($img, true); - imagecolortransparent($img, $alphacolor); - - $dest = imagecreatetruecolor($w, $h); - imagealphablending($dest, false); - imagesavealpha($dest, true); - imagefilledrectangle($dest, 0, 0, $w, $h, $alphacolor); - imagecopyresampled($dest, $img, 0, 0, 0, 0, $w, $h, $nw, $nh); - - $res = $dest; - imagedestroy($src); - imagedestroy($img); - } - - return $res; - } -} - -if (!function_exists("getMiniName")) { - function getMiniName(string $name): string { - return $name; - } -} - -if (!function_exists("withCaretakersDown")) { - function withCaretakersDown(array $ordered): array { - return $ordered; - } -} - -if (!function_exists("getSystemMember")) { - function getSystemMember(string $system, string $id) { - $app = $GLOBALS["ColdHazeApp"] ?? json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/app.json"), true); - $systemID = $system; - - $members = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/" . ($systemID === $app["other"]["id"] ? "other" : $systemID) . "/members.json"), true); - $member = null; - - foreach ($members as $m) { - if ($m["id"] === $id) $member = $m; - } - - $member["system"] = $member["_system"] = $system; - $member["_metadata"] = file_exists($_SERVER['DOCUMENT_ROOT'] . "/includes/data/metadata/" . $id . ".json") ? json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/metadata/" . $id . ".json"), true) : null; - - return $member; - } -} - -if (!function_exists("getMemberWithoutSystem")) { - function getMemberWithoutSystem(string $id) { - global $isLowerLoggedIn; global $isLoggedIn; - $member = null; - - $members2 = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/gdapd/members.json"), true); - foreach ($members2 as $m) { - $m["_system"] = "gdapd"; - $m["system"] = "gdapd"; - if ($m["id"] === $id) $member = $m; - } - - $members3 = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/hrbom/members.json"), true); - foreach ($members3 as $m) { - $m["_system"] = "hrbom"; - $m["system"] = "hrbom"; - if ($m["id"] === $id) $member = $m; - } - - if ($isLowerLoggedIn || $isLoggedIn) { - $app = $GLOBALS["ColdHazeApp"] ?? json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/app.json"), true); - $members4 = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/other/members.json"), true); - - foreach ($members4 as $m) { - $m["_system"] = $app["other"]["id"]; - $m["system"] = $app["other"]["id"]; - if ($m["id"] === $id) $member = $m; - } - } - - return $member; - } -} - -if (!function_exists("showMembersFromList")) { - function showMembersFromList(array $list): void { - foreach ($list as $member) { if ($member['name'] !== "unknown" && $member['name'] !== "fusion") { - echo('<a href="/' . $member['name'] . '" style="text-decoration:none !important;filter:none !important;"><div class="hpd-item-card" style="background-color:rgba(255, 255, 255, .1);border:1px solid ' . (isset($member['color']) ? "#" . $member['color'] . "55" : "transparent") . ';outline-color:' . (isset($member['color']) ? "#" . $member['color'] . "55" : "transparent") . ';border-radius:10px;text-align:center;display:flex;align-items:center;justify-content:center;padding:5px;' . (isset($member["equestria"]) && $member["equestria"] ? 'opacity:.5;' : '') . '"><div> -<img alt="" src="' . getAsset($member["system"], $member["id"]) . '" style="border-radius:999px;background-color:rgba(0, 0, 0, .25);height:48px;width:48px;display:block;margin-left:auto;margin-right:auto;"> -<div style="text-decoration:none;color:white;margin-top:5px;" class="member-card-name">' . ($member['display_name'] ?? $member['name']) . '</div> -<div style="text-decoration:none !important;color:black !important;" class="member-card-prefix"><code style="text-decoration:none !important;color:white;">' . (isset($member['travelling']) && $member['travelling'] ? "+" . ($member['proxy_tags'][0]['prefix'] ?? " ") : ($member['proxy_tags'][0]['prefix'] ?? " ")) . '</code></div> -</div></div></a>'); - }} - } -} - -if (!function_exists("prettySize")) { - function prettySize($bytes): string { - if ($bytes > 1024) { - if ($bytes > 1024**2) { - if ($bytes > 1024**3) { - return round($bytes / 1024**3, 1) . " GB"; - } else { - return round($bytes / 1024**2, 1) . " MB"; - } - } else { - return round($bytes / 1024, 1) . " KB"; - } - } else { - return $bytes . " B"; - } - } -} - -if (!function_exists("showSystem")) { - function showSystem(string $id, string $name, string $color, bool $hideTitle): void { - $app = $GLOBALS["ColdHazeApp"] ?? json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/app.json"), true); - global $travelling; - - $global = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/" . (isset($app["other"]) && $id === $app["other"]["id"] ? "other" : $id) . "/general.json"), true); - - if ($hideTitle) { - echo('<div id="hpd-' . ($id === "gdapd" ? "raindrops" : ($id === "hrbom" ? "moonglow" : "other")) . '" style="background:rgba(255, 255, 255, .1);border-radius:10px;padding:10px;display:grid;grid-template-columns: 1fr;margin-bottom:10px;">'); - } else { - echo('<div id="hpd-' . ($id === "gdapd" ? "raindrops" : ($id === "hrbom" ? "moonglow" : "other")) . '" style="background:rgba(255, 255, 255, .1);border-radius:10px;padding:10px 10px 10px 20px;display:grid;grid-template-columns: 128px 1fr;margin-bottom:10px;">'); - } - if (!$hideTitle) echo('<a style="display:flex;margin: -10px -20px;align-items:center;justify-content:center;text-align:center;padding: 10px 20px;border-radius: 10px;background: #' . $global['color'] . '55;width: 148px;text-decoration:none;color:white;filter:none !important;" href="/' . ($id === "gdapd" ? "raindrops" : ($id === $app["other"]["id"] ? $app["other"]["slug"] : "moonglow")) . '" class="hpd-system"> -<div style="text-align:center;"><img src="' . getAsset($id) . '" style="width:64px;"><br>' . $name . '</div> -</a>'); - - if ($hideTitle) { - echo(' <div style="display:grid;grid-template-columns:repeat(6, 1fr);grid-gap:10px;">'); - } else { - echo(' <div style="display:grid;grid-template-columns:repeat(6, 1fr);padding-left:10px;grid-gap:10px;">'); - } - - showMembersFromList(scoreOrder([...array_map(function ($i) use ($id, $travelling) { - $i["travelling"] = false; - $i["system"] = $id; - $i["equestria"] = false; - return $i; - }, json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/" . (isset($app["other"]) && $id === $app["other"]["id"] ? "other" : $id) . "/members.json"), true))], $id)); - - echo('</div> - -</div>'); - } -} - -if (!function_exists("raindrops")) { - function raindrops(bool $hideTitle): void { - showSystem("gdapd", "Raindrops System", "#a95f08a6", $hideTitle); - } -} - -if (!function_exists("moonglow")) { - function moonglow(bool $hideTitle): void { - showSystem("hrbom", "Moonglow", "#9064cca6", $hideTitle); - } -} - -if (!function_exists("other")) { - function other(bool $hideTitle): void { - $app = $GLOBALS["ColdHazeApp"] ?? json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/app.json"), true); - showSystem($app["other"]["id"], $app["other"]["name"], "#" . $app["other"]["color"] . "a6", $hideTitle); - } -} - -if (!function_exists("getMember")) { - function getMember(string $id) { - global $systemID; - - $members = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$systemID/members.json"), true); - $member = null; - - foreach ($members as $m) { - if ($m["id"] === $id) $member = $m; - } - - return $member; - } -} - -if (!function_exists("timeAgo")) { - function timeAgo($time, $french = false, $isDifference = false, $long = false, $showTense = true): string { - $lengths = array("60", "60", "24", "7", "4.35", "12", "100"); - - if ($long) { - $periods = ["second", "minute", "hour", "day", "week", "month", "year", "age"]; - } else { - $periods = ["sec", "min", "hr", "d", "wk", "mo", "y", "ages"]; - } - - if ($isDifference) { - $difference = $time; - } else { - if (!is_numeric($time)) { - $time = strtotime($time); - } - - $now = time(); - $difference = $now - $time; - } - - if ($difference <= 10 && $difference >= 0) { - return $tense = "now"; - } elseif ($difference > 0) { - $tense = "ago"; - } else { - $tense = "later"; - } - - for ($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) { - $difference /= $lengths[$j]; - } - - $difference = round($difference); - - $period = $periods[$j]; - - if ($showTense) { - if ($long) { - return "{$difference} {$period}" . ($difference > 1 ? "s" : "") . " {$tense}"; - } else { - return "{$difference} {$period} {$tense}"; - } - } else { - if ($long) { - return "{$difference} {$period}" . ($difference > 1 ? "s" : ""); - } else { - return "{$difference} {$period}"; - } - } - } -} - -if (!function_exists("timeIn")) { - function timeIn($time, $isDifference = false): string { - $periods = ["second", "minute", "hour", "day", "week", "month", "year", "age"]; - $lengths = array("60", "60", "24", "7", "4.35", "12", "100"); - - if ($isDifference) { - $difference = $time; - } else { - if (!is_numeric($time)) { - $time = strtotime($time); - } - - $now = time(); - $difference = $time - $now; - } - - if ($difference <= 10 && $difference >= 0) { - return $tense = "now"; - } elseif ($difference > 0) { - $tense = "in"; - } else { - $tense = "ago"; - } - - for ($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) { - $difference /= $lengths[$j]; - } - - $difference = round($difference); - - $period = $periods[$j] . ($difference >1 ? "s" :''); - return "{$tense} {$difference} {$period}"; - } -} - -if (!function_exists("duration")) { - function duration($seconds): string { - global $lang; global $pages; - - if ($seconds >= 60) { - if (floor($seconds / 60) >= 60) { - if (floor($seconds / 3600) >= 24) { - $days = floor($seconds / 86400); - - if ($lang["_french"]) { - return $days . " jour" . ($days > 1 ? "s" : ""); - } else { - return $days . " day" . ($days > 1 ? "s" : ""); - } - } else { - $hours = floor($seconds / 3600); - - if ($lang["_french"]) { - return $hours . " heure" . ($hours > 1 ? "s" : ""); - } else { - return $hours . " hour" . ($hours > 1 ? "s" : ""); - } - } - } else { - $minutes = floor($seconds / 60); - return $minutes . " minute" . ($minutes > 1 ? "s" : ""); - } - } else { - if ($lang["_french"]) { - return $seconds . " secondes"; - } else { - return $seconds . " seconds"; - } - } - } -} - -if (!function_exists("relativeDate")) { - function relativeDate($date, $showTime = true): string { - if (!is_numeric($date)) $date = strtotime($date); - - if (!$showTime) { - if (date('Y-m-d', $date) === date('Y-m-d')) { - return "today"; - } elseif (date('Y-m-d', $date) === date('Y-m-d', time() + 86400)) { - return "tomorrow"; - } elseif ($date < time() + 518400) { - return date('l', $date); - } else { - return date('D j M', $date); - } - } else { - if (date('Y-m-d', $date) === date('Y-m-d')) { - return "today, <span class='time-adjust'>" . date('H:i', $date) . "</span>"; - } elseif (date('Y-m-d', $date) === date('Y-m-d', time() + 86400)) { - return "tomorrow, <span class='time-adjust'>" . date('H:i', $date) . "</span>"; - } elseif ($date < time() + 518400) { - return date('l', $date) . ", <span class='time-adjust'>" . date('H:i', $date) . "</span>"; - } else { - return date('D j M', $date) . ", <span class='time-adjust'>" . date('H:i', $date) . "</span>"; - } - } - } -} - -if (!function_exists("getMemberSystem")) { - function getMemberSystem(string $id) { - $list = scoreOrderGlobal(); - - foreach ($list as $item) { - if ($item["id"] === $id) return $item["_system"]; - } - - return null; - } -} - -if (!function_exists("getMemberFromName")) { - function getMemberFromName(string $name) { - $list = [...json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/gdapd/members.json"), true), ...json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/hrbom/members.json"), true), ...json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/other/members.json"), true)]; - - foreach ($list as $item) { - if ($item["name"] === $name) return getMemberWithoutSystem($item["id"]); - } - - return null; - } -} - -if (!function_exists("resolveMember")) { - function resolveMember(mixed $name) { - if (is_string($name)) { - if (str_ends_with($name, "-travelling")) { - return substr($name, 0, strlen($name) - 11); - } else { - return $name; - } - } else { - return $name; - } - } -} - -if (!function_exists("calculateFullAmount")) { - function calculateFullAmount($account, $asNumber = false, $gbpOnly = false): string|float|int { - global $rate; - $total = 0; - - foreach ($account["transactions"] as $transaction) { - $total += $transaction["amount"]; - } - - if ($asNumber) { - if ($gbpOnly && $account["currency"] === "eur") { - return $total * $rate; - } else { - return $total; - } - } else { - return number_format($total, 2, '.', ','); - } - } -} |