summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMinteck <contact@minteck.org>2023-02-12 22:01:50 +0100
committerMinteck <contact@minteck.org>2023-02-12 22:01:50 +0100
commitdc1de74470b953c9b5c7834b272df58287be8eff (patch)
tree965a5992968b872554eb676ff9141dcd286c79ab
parentde3eeee25f63de933571240b29b7cb0605472b12 (diff)
downloaddelta-dc1de74470b953c9b5c7834b272df58287be8eff.tar.gz
delta-dc1de74470b953c9b5c7834b272df58287be8eff.tar.bz2
delta-dc1de74470b953c9b5c7834b272df58287be8eff.zip
Updated 8 files and added 8 files (automated)
-rw-r--r--_profile/index.php76
-rw-r--r--badges/eap.svg17
-rw-r--r--badges/hunter.svg25
-rw-r--r--badges/staff.svg37
-rw-r--r--includes/functions.php56
-rw-r--r--includes/header.php29
-rw-r--r--includes/skels/profiles.json23
-rw-r--r--lang/en.json42
-rw-r--r--logo-plus-trim.svg21
-rw-r--r--logo-plus.svg20
-rw-r--r--logo-ultra-trim.svg19
-rw-r--r--logo-ultra.svg19
-rw-r--r--mobile_profile/index.php14
-rw-r--r--plus/subscribe/index.php16
-rw-r--r--studio/index.php29
-rw-r--r--studio/profile/index.php17
16 files changed, 420 insertions, 40 deletions
diff --git a/_profile/index.php b/_profile/index.php
index 5bcfb08..a7f01ca 100644
--- a/_profile/index.php
+++ b/_profile/index.php
@@ -35,8 +35,12 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/navigation.php";
<div class="container">
<br><br>
<h1>
- <span><?= $data["nick_name"] ?? $data["first_name"] . " " . $data["last_name"] ?><?php if (isset($data["nick_name"]) && trim($data["nick_name"]) !== ""): ?> <small><small><small>(<?= $data["first_name"] . " " . $data["last_name"] ?>)</small></small></small><?php endif; ?><?php if ($data["plus"] && !$data["ultra"]): ?> <small><small><small><small><small><small><span class="badge badge-plus rounded-pill" style="vertical-align: middle; margin-top: -5px;">PLUS</span></small></small></small></small></small></small><?php elseif ($data["plus"] && $data["ultra"]): ?> <small><small><small><small><small><small><span class="badge badge-ultra rounded-pill" style="vertical-align: middle; margin-top: -5px;">ULTRA</span></small></small></small></small></small></small><?php endif; ?></span>
- <span style="float: right;"><?php if ($id === $_USER): ?><a href="/edit/<?= $id ?>" class="btn btn-outline-dark"><?= l("lang_people_edit") ?></a><?php endif; ?>
+ <span><?= $data["nick_name"] ?? $data["first_name"] . " " . $data["last_name"] ?><?php if (isset($data["nick_name"]) && trim($data["nick_name"]) !== ""): ?> <small><small><small>(<?= $data["first_name"] . " " . $data["last_name"] ?>)</small></small></small><?php endif; ?></span>
+ <span style="float: right;">
+ <div style="display: inline-block; margin-right: 10px;">
+ <?php badges($data) ?>
+ </div>
+ <?php if ($id === $_USER): ?><a href="/edit/<?= $id ?>" class="btn btn-outline-dark"><?= l("lang_people_edit") ?></a><?php endif; ?>
<div class="dropdown" style="display: inline-block;">
<button type="button" class="btn btn-outline-dark dropdown-toggle" data-bs-toggle="dropdown"><?= l("lang_profile_options") ?></button>
<ul class="dropdown-menu">
@@ -53,7 +57,8 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/navigation.php";
</span>
</h1>
- <div id="profile-grid" style="margin-top: 20px; display: grid; grid-template-columns: repeat(2, 1fr); grid-column-gap: 20px;">
+ <div id="profile-grid" style="margin-top: 20px; display: grid; grid-template-columns: repeat(<?= hasProfileSetting("hide", false) ? "1" : "2" ?>, 1fr); grid-column-gap: 20px;">
+ <?php if (!hasProfileSetting("hide", false)): ?>
<div class="card">
<div class="card-body">
<table>
@@ -72,15 +77,18 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/navigation.php";
</table>
</div>
</div>
+ <?php endif; ?>
<div class="card">
<div class="card-body">
- <div id="profile-grid-user" style="display: grid; grid-template-columns: 64px max-content; grid-gap: 10px;">
+ <div id="profile-grid-user" style="display: grid; grid-template-columns: <?= hasProfileSetting("photo", true) ? "64px max-content" : "1fr" ?>; grid-gap: 10px;">
+ <?php if (hasProfileSetting("photo", true)): ?>
<div style="display: flex; align-items: center;">
<img src="<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/uploads/" . $id . ".jpg") ? "/uploads/" . $id . ".jpg" : "/icons/defaultuser.svg" ?>" style="width: 64px; height: 64px; border-radius: 100%;">
</div>
+ <?php endif; ?>
<table>
<tr>
- <td><img alt="" src="/icons/age.svg" style="vertical-align: middle; width: 29px; padding-right: 5px;"></td>
+ <td style="width: 28px;"><img alt="" src="/icons/age.svg" style="vertical-align: middle; width: 29px; padding-right: 5px;"></td>
<td><?php
if (isset($data["birth"])):
@@ -88,7 +96,7 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/navigation.php";
$bdate = strtotime($data["birth"]);
echo(timeAgo($bdate, false, true) . " " . l("lang_profile_old"));
- ?> (<?= l("lang_profile_birth") ?> <?= formatDate($data["birth"], false) ?>)<?php else: ?>-<?php endif; ?></td>
+ ?><?php if (hasProfileSetting("birth", true)): ?> (<?= l("lang_profile_birth") ?> <?= formatDate($data["birth"], false) ?>)<?php endif; ?><?php else: ?>-<?php endif; ?></td>
</tr>
<tr>
<?php
@@ -96,12 +104,12 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/navigation.php";
$email = $data["email"];
?>
- <td><img alt="" src="/icons/email.svg" style="vertical-align: middle; width: 29px; padding-right: 5px;"></td>
- <td><a href="mailto:<?= $email ?>"><?= $email ?></a></td>
+ <td style="width: 28px;"><img alt="" src="/icons/email.svg" style="vertical-align: middle; width: 29px; padding-right: 5px;"></td>
+ <td><?php if (hasProfileSetting("email", true)): ?><a href="mailto:<?= $email ?>"><?= $email ?></a><?php else: ?><?= l("lang_studio_redacted") ?><?php endif; ?></td>
</tr>
<tr>
- <td><img alt="" src="/icons/phone.svg" style="vertical-align: middle; width: 29px; padding-right: 5px;"></td>
- <td><?php if (isset($data["phone"]) && $data["phone"] !== ""): ?><a href="tel:<?= str_replace(" ", "", $data["phone"]) ?>"><?= $data["phone"] ?></a><?php else: ?>-<?php endif; ?></td>
+ <td style="width: 28px;"><img alt="" src="/icons/phone.svg" style="vertical-align: middle; width: 29px; padding-right: 5px;"></td>
+ <td><?php if (hasProfileSetting("phone", true)): ?><?php if (isset($data["phone"]) && $data["phone"] !== ""): ?><a href="tel:<?= str_replace(" ", "", $data["phone"]) ?>"><?= $data["phone"] ?></a><?php else: ?>-<?php endif; ?><?php else: ?><?= l("lang_studio_redacted") ?><?php endif; ?></td>
</tr>
</table>
</div>
@@ -109,12 +117,58 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/navigation.php";
</div>
</div>
+ <?php if (hasProfileSetting("detailed", false)): ?>
+ <div id="profile-grid-2" style="margin-top: 20px; display: grid; grid-template-columns: repeat(2, 1fr); grid-column-gap: 20px;">
+ <div class="card">
+ <div class="card-body">
+ <div style="height: 28px; display: flex; align-items: center;"><b><?= l("lang_studio_details_most") ?></b></div>
+ <?php
+
+ if (file_exists($_SERVER['DOCUMENT_ROOT'] . "/includes/data/history/" . $_USER . ".json")) {
+ $history = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/history/" . $_USER . ".json"), true);
+ } else {
+ $history = [];
+ }
+
+ uasort($history, function ($a, $b) { return $b - $a; });
+ array_filter($history, function ($i) { return getFileFromId($i) !== null; }, ARRAY_FILTER_USE_KEY);
+
+ ?>
+
+ <table>
+ <?php if (isset(array_keys($history)[0])): ?>
+ <tr>
+ <td style="width: 28px;"><img alt="" src="/icons/<?= getTypeFromId(array_keys($history)[0]) ?>.svg" style="vertical-align: middle; width: 29px; padding-right: 5px;"></td>
+ <td><a href="<?= getUrlFromId(array_keys($history)[0]) ?>"><?= getNameFromId(array_keys($history)[0]) ?></a></td>
+ </tr>
+ <?php endif; ?>
+ <?php if (isset(array_keys($history)[1])): ?>
+ <tr>
+ <td style="width: 28px;"><img alt="" src="/icons/<?= getTypeFromId(array_keys($history)[1]) ?>.svg" style="vertical-align: middle; width: 29px; padding-right: 5px;"></td>
+ <td><a href="<?= getUrlFromId(array_keys($history)[1]) ?>"><?= getNameFromId(array_keys($history)[1]) ?></a></td>
+ </tr>
+ <?php endif; ?>
+ </table>
+ </div>
+ </div>
+
+ <div class="card">
+ <div class="card-body">
+ <div style="height: 28px; display: flex; align-items: center;"><b><?= l("lang_studio_details_requests") ?></b></div>
+ <span class="text-muted">Not working as of M4</span>
+ </div>
+ </div>
+ </div>
+ <?php endif ;?>
+
<div style="margin-top: 20px;">
<?php if (isset($data["contents"]) && trim($data["contents"] !== "")): ?>
<div>
- <?= $data["contents"] ?>
+ <?= str_replace("<script>", "&lt;script&gt;", $data["contents"]) ?>
</div>
+ <?php if (!hasProfileSetting("hide", false)): ?>
<small class="text-muted"><?= str_replace("%1", timeAgo($data["update"]), l("lang_time_update")) ?></small>
+ <?php endif; ?>
<?php else: ?>
<p class="text-muted"><?= l("lang_profile_empty") ?></p>
<?php endif; ?>
diff --git a/badges/eap.svg b/badges/eap.svg
new file mode 100644
index 0000000..989b1c6
--- /dev/null
+++ b/badges/eap.svg
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 26.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
+<style type="text/css">
+ .st0{fill:url(#SVGID_1_);}
+</style>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="12.628" y1="7.4023" x2="32.6451" y2="42.0728">
+ <stop offset="0" style="stop-color:#FFB894"/>
+ <stop offset="1" style="stop-color:#D48800"/>
+</linearGradient>
+<path class="st0" d="M21.7,43.2c-1.9-1.4-4-2.5-6.1-3.4c-2.2-0.9-4.4-1.4-6.6-1.7c-0.8-0.1-1.5-0.5-2.1-1.1C6.3,36.4,6,35.7,6,34.9
+ V19.4c0-0.9,0.3-1.6,0.9-2.1c0.6-0.5,1.3-0.8,2-0.6c2.6,0.4,5.2,1.3,7.8,2.6s5,3.1,7.3,5.3c2.3-2.2,4.7-3.9,7.3-5.3s5.1-2.2,7.8-2.6
+ c0.8-0.1,1.5,0.1,2,0.6c0.6,0.6,0.9,1.3,0.9,2.1v15.6c0,0.8-0.3,1.5-0.8,2.1c-0.6,0.6-1.3,1-2.1,1.1c-2.3,0.3-4.5,0.8-6.6,1.7
+ c-2.1,0.9-4.2,2-6.1,3.4c-0.7,0.5-1.4,0.7-2.3,0.7C23.1,43.9,22.4,43.6,21.7,43.2z M24.2,17.4c-2.2,0-4-0.7-5.5-2.2
+ s-2.2-3.3-2.2-5.5s0.7-4,2.2-5.5C20.2,2.7,22,2,24.1,2s4,0.7,5.5,2.2s2.2,3.3,2.2,5.5s-0.7,4-2.2,5.5S26.3,17.4,24.2,17.4z"/>
+</svg>
diff --git a/badges/hunter.svg b/badges/hunter.svg
new file mode 100644
index 0000000..3775bec
--- /dev/null
+++ b/badges/hunter.svg
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 26.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
+<style type="text/css">
+ .st0{fill:url(#SVGID_1_);}
+</style>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="9.2997" y1="14.8093" x2="41.0791" y2="33.1571">
+ <stop offset="0" style="stop-color:#A9FF7F"/>
+ <stop offset="1" style="stop-color:#00D407"/>
+</linearGradient>
+<path class="st0" d="M24,42c-2.2,0-4.2-0.5-6.1-1.7s-3.2-2.5-4.1-4.3H9.4c-0.4,0-0.7-0.1-1-0.5c-0.3-0.3-0.4-0.7-0.4-1
+ c0-0.4,0.1-0.8,0.4-1.1C8.7,33.1,9.1,33,9.5,33h3.1c-0.2-0.8-0.3-1.6-0.3-2.6v-2.7H9.4c-0.4,0-0.7-0.1-1-0.5c-0.3-0.3-0.4-0.6-0.4-1
+ c0-0.4,0.1-0.8,0.4-1.1c0.3-0.3,0.6-0.4,1.1-0.4h2.8v-2.9c0-1.1,0.1-2,0.4-2.8H9.4c-0.4,0-0.7-0.1-1-0.5c-0.3-0.3-0.4-0.6-0.4-1
+ c0-0.4,0.1-0.8,0.4-1.1C8.7,16.1,9.1,16,9.5,16H14c0.5-0.8,1.1-1.6,1.9-2.4c0.8-0.8,1.6-1.4,2.5-1.8L15.5,9c-0.3-0.3-0.4-0.6-0.4-1
+ c0-0.4,0.2-0.7,0.4-1c0.3-0.3,0.6-0.4,1-0.4s0.7,0.1,1,0.4l3.7,3.7c0.8-0.3,1.8-0.4,2.8-0.4c1,0,2,0.1,2.8,0.4L30.7,7
+ c0.3-0.3,0.6-0.4,1-0.4s0.7,0.2,1,0.4C32.9,7.3,33,7.6,33,8c0,0.4-0.1,0.7-0.4,1l-2.8,2.8c0.8,0.4,1.6,1,2.5,1.8
+ c0.8,0.8,1.4,1.6,1.9,2.4h4.5c0.4,0,0.7,0.1,1,0.5c0.3,0.3,0.4,0.7,0.4,1c0,0.4-0.1,0.8-0.4,1.1C39.3,18.9,39,19,38.5,19h-3.2
+ c0.3,0.8,0.4,1.8,0.4,2.8v2.9h2.9c0.4,0,0.7,0.1,1,0.5s0.4,0.7,0.4,1c0,0.4-0.1,0.8-0.4,1.1s-0.6,0.4-1.1,0.4h-2.9v2.7
+ c0,1-0.1,1.9-0.3,2.6h3.2c0.4,0,0.7,0.1,1,0.5c0.3,0.3,0.4,0.7,0.4,1c0,0.4-0.1,0.8-0.4,1.1S39,36,38.5,36h-4.3
+ c-0.8,1.8-2.1,3.2-4,4.3C28.3,41.5,26.2,42,24,42z M21.5,32h5c0.4,0,0.7-0.1,1-0.4c0.3-0.3,0.4-0.6,0.4-1.1s-0.1-0.8-0.4-1.1
+ c-0.3-0.3-0.6-0.4-1.1-0.4h-5c-0.4,0-0.7,0.1-1,0.4c-0.3,0.3-0.4,0.6-0.4,1.1s0.1,0.8,0.4,1.1C20.7,31.9,21.1,32,21.5,32z
+ M21.5,23.4h5c0.4,0,0.7-0.1,1-0.4s0.4-0.6,0.4-1.1c0-0.4-0.1-0.8-0.4-1.1c-0.3-0.3-0.6-0.4-1.1-0.4h-5c-0.4,0-0.7,0.1-1,0.4
+ c-0.3,0.3-0.4,0.6-0.4,1.1c0,0.4,0.1,0.8,0.4,1.1S21.1,23.4,21.5,23.4z"/>
+</svg>
diff --git a/badges/staff.svg b/badges/staff.svg
new file mode 100644
index 0000000..1ef4589
--- /dev/null
+++ b/badges/staff.svg
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 26.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
+<style type="text/css">
+ .st0{fill:url(#SVGID_1_);}
+</style>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="11.5188" y1="36.7188" x2="37.0187" y2="11.2187" gradientTransform="matrix(1 0 0 -1 0 50)">
+ <stop offset="0" style="stop-color:#7FE7FF"/>
+ <stop offset="1" style="stop-color:#158CFF"/>
+</linearGradient>
+<path class="st0" d="M39,19.1c-0.2,0-0.3,0-0.5-0.1c-0.1-0.1-0.2-0.2-0.3-0.4L38,17.4c-0.3-0.1-0.7-0.3-1-0.5
+ c-0.4-0.2-0.6-0.5-0.9-0.8l-1.6,0.6c-0.2,0.1-0.3,0.1-0.5,0s-0.3-0.2-0.4-0.4l-0.4-0.6C33,15.5,33,15.3,33,15.2
+ c0-0.2,0.1-0.3,0.3-0.4l1.2-1c-0.1-0.2-0.1-0.4-0.2-0.6c0-0.2-0.1-0.4-0.1-0.6s0-0.4,0.1-0.6c0.1-0.2,0.1-0.4,0.2-0.6l-1.2-1
+ C33.1,10.3,33,10.1,33,10s0-0.3,0.1-0.5l0.4-0.6c0.1-0.2,0.2-0.3,0.4-0.4c0.2-0.1,0.3-0.1,0.5,0L36,9.1c0.2-0.3,0.5-0.5,0.9-0.8
+ c0.3-0.2,0.7-0.4,1-0.5l0.3-1.2c0.1-0.2,0.2-0.3,0.3-0.4C38.7,6.1,38.8,6,39,6h0.7c0.2,0,0.3,0.1,0.5,0.2c0.1,0.1,0.2,0.2,0.3,0.4
+ l0.3,1.2c0.3,0.1,0.7,0.3,1,0.5s0.6,0.5,0.9,0.8l1.6-0.6c0.2-0.1,0.3-0.1,0.5,0s0.3,0.2,0.4,0.4l0.4,0.6c0.1,0.2,0.1,0.3,0.1,0.5
+ s-0.1,0.3-0.3,0.4l-1.2,1c0.1,0.2,0.1,0.4,0.2,0.6c0,0.2,0.1,0.4,0.1,0.6c0,0.2,0,0.4-0.1,0.6c0,0.2-0.1,0.4-0.2,0.6l1.2,1
+ c0.2,0.1,0.3,0.3,0.3,0.4c0,0.2,0,0.3-0.1,0.5l-0.4,0.7c-0.1,0.2-0.2,0.3-0.4,0.4s-0.3,0.1-0.5,0l-1.6-0.6c-0.2,0.3-0.5,0.5-0.9,0.8
+ s-0.7,0.4-1,0.5l-0.3,1.2c-0.1,0.2-0.2,0.3-0.3,0.4s-0.3,0.1-0.5,0.1H39V19.1z M39.3,15.5c0.8,0,1.5-0.3,2.1-0.8
+ c0.6-0.6,0.8-1.2,0.8-2.1c0-0.8-0.3-1.5-0.8-2.1c-0.5-0.5-1.2-0.8-2.1-0.8s-1.5,0.3-2.1,0.8c-0.6,0.6-0.8,1.2-0.8,2.1
+ c0,0.8,0.3,1.5,0.8,2.1C37.8,15.2,38.5,15.5,39.3,15.5z M33.4,30c0,0-0.2-0.1-0.5-0.4v-1c-0.2-0.1-0.5-0.3-0.7-0.5
+ c-0.3-0.2-0.5-0.3-0.7-0.5l-1,0.5c0,0-0.2-0.1-0.6-0.1l-0.6-1v-0.6l1-0.7c-0.1-0.1-0.1-0.3-0.1-0.4v-0.8c0-0.1,0-0.2,0.1-0.4l-1-0.7
+ c0,0,0-0.2,0-0.6l0.6-0.9c0,0,0.2-0.1,0.6-0.1l1,0.5l0.7-0.5c0.2-0.2,0.5-0.3,0.7-0.5v-1c0-0.1,0.2-0.2,0.5-0.4h1.2
+ c0,0,0.2,0.1,0.5,0.4v1c0.2,0.1,0.5,0.3,0.7,0.5l0.7,0.5l1-0.5c0,0,0.2,0,0.6,0.1l0.6,0.9v0.6l-1,0.7c0.1,0.1,0.1,0.3,0.1,0.4v0.8
+ c0,0.1,0,0.2-0.1,0.4l1,0.7c0,0,0,0.2,0,0.6l-0.6,0.9c0,0-0.2,0.1-0.6,0.1l-1-0.5c-0.2,0.2-0.4,0.3-0.7,0.5
+ c-0.2,0.2-0.5,0.3-0.7,0.5v1c0,0.1-0.2,0.2-0.5,0.4h-1.2V30z M34,26.9c0.5,0,1-0.2,1.3-0.5c0.4-0.4,0.5-0.8,0.5-1.4s-0.2-1-0.5-1.4
+ S34.5,23,34,23s-1,0.2-1.3,0.5s-0.5,0.8-0.5,1.4c0,0.5,0.2,1,0.5,1.4S33.5,26.9,34,26.9z M17.9,26.8c-2.2,0-4-0.7-5.4-2.1
+ s-2.1-3.2-2.1-5.4H9.9c-0.3,0-0.5-0.1-0.7-0.3c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3,0.1-0.5,0.3-0.7s0.4-0.3,0.7-0.3h0.5
+ c0-1.3,0.3-2.5,1-3.6s1.5-1.9,2.6-2.6v2c0,0.2,0.1,0.4,0.2,0.5c0.2,0.2,0.3,0.2,0.5,0.2s0.4-0.1,0.6-0.2c0.1-0.1,0.2-0.3,0.2-0.5
+ v-2.6c0.3-0.1,0.6-0.1,1.1-0.2c0.5-0.1,0.9-0.1,1.4-0.1s0.9,0,1.4,0.1c0.5,0,0.8,0.1,1.1,0.2V13c0,0.2,0.1,0.4,0.2,0.5
+ c0.1,0.2,0.3,0.2,0.5,0.2s0.4-0.1,0.5-0.2c0.1-0.1,0.2-0.3,0.2-0.5v-1.9c1.1,0.7,1.9,1.5,2.5,2.6s1,2.3,1,3.6h0.5
+ c0.3,0,0.5,0.1,0.7,0.3s0.3,0.4,0.3,0.7c0,0.3-0.1,0.5-0.3,0.7c-0.2,0.2-0.4,0.3-0.7,0.3h-0.5c0,2.1-0.7,3.9-2.1,5.4
+ C21.9,26,20.1,26.8,17.9,26.8z M17.9,23.8c1.4,0,2.5-0.4,3.3-1.2s1.2-1.9,1.2-3.2h-9c0,1.3,0.4,2.4,1.2,3.2
+ C15.4,23.3,16.5,23.8,17.9,23.8z M2.1,42v-4.6c0-1.1,0.3-2.1,0.8-2.8s1.3-1.4,2.2-1.8c1.8-0.9,3.7-1.6,5.8-2.1c2-0.6,4.4-0.9,7-0.9
+ s4.9,0.3,7,0.9s4,1.3,5.8,2.1c1,0.5,1.7,1.1,2.3,1.8s0.8,1.7,0.8,2.8V42H2.1z"/>
+</svg>
diff --git a/includes/functions.php b/includes/functions.php
index 9b5980d..c1562e2 100644
--- a/includes/functions.php
+++ b/includes/functions.php
@@ -10,6 +10,34 @@ function pf_utf8_encode(string $string): string {
return iconv("ISO-8859-1", "UTF-8", $string);
}
+function hasProfileSetting($setting, $default) {
+ global $_PROFILE;
+
+ if (isset($_PROFILE["ultra"]) && $_PROFILE["ultra"] && isset($_PROFILE["studio_settings"]) && isset($_PROFILE["studio_settings"]["profile"]) && isset($_PROFILE["studio_settings"]["profile"][$setting])) {
+ return $_PROFILE["studio_settings"]["profile"][$setting];
+ } else {
+ return $default;
+ }
+}
+
+function badges($data) { ?>
+ <?php if ($data["plus"] && !$data["ultra"]): ?>
+ <img title="Delta Plus" data-bs-toggle="tooltip" src="/logo-plus.svg" style="width: 36px;">
+ <?php endif; ?>
+ <?php if ($data["ultra"] && hasProfileSetting("badge", true)): ?>
+ <img title="Delta Ultra" data-bs-toggle="tooltip" src="/logo-ultra.svg" style="width: 36px;">
+ <?php endif; ?>
+ <?php if ($data["hunter"]): ?>
+ <img title="<?= l("lang_badges_hunter") ?>" data-bs-toggle="tooltip" src="/badges/hunter.svg" style="width: 36px;">
+ <?php endif; ?>
+ <?php if ($data["admin"]): ?>
+ <img title="<?= l("lang_badges_admin") ?>" data-bs-toggle="tooltip" src="/badges/staff.svg" style="width: 36px;">
+ <?php endif; ?>
+ <?php if ($data["eap"]): ?>
+ <img title="<?= l("lang_badges_eap") ?>" data-bs-toggle="tooltip" src="/badges/eap.svg" style="width: 36px;">
+ <?php endif; ?>
+<?php }
+
function initLang(): void {
if (isset($_PROFILE) && isset($_PROFILE["language"])) {
genLang("en");
@@ -350,6 +378,34 @@ function getFileFromId($id) {
return $_SERVER["DOCUMENT_ROOT"] . "/includes/data/profiles/" . $id . ".json";
}
+ return null;
+}
+
+function getUrlFromId($id) {
+ if (file_exists($_SERVER["DOCUMENT_ROOT"] . "/includes/data/people/" . $id . ".json")) {
+ return "/people/" . $id;
+ } elseif (file_exists($_SERVER["DOCUMENT_ROOT"] . "/includes/data/gallery/" . $id . ".json")) {
+ return "/gallery/" . $id;
+ } elseif (file_exists($_SERVER["DOCUMENT_ROOT"] . "/includes/data/articles/" . $id . ".json")) {
+ return "/articles/" . $id;
+ } elseif (file_exists($_SERVER["DOCUMENT_ROOT"] . "/includes/data/profiles/" . $id . ".json")) {
+ return "/profile/" . $id;
+ }
+
+ return "/";
+}
+
+function getTypeFromId($id) {
+ if (file_exists($_SERVER["DOCUMENT_ROOT"] . "/includes/data/people/" . $id . ".json")) {
+ return "people";
+ } elseif (file_exists($_SERVER["DOCUMENT_ROOT"] . "/includes/data/gallery/" . $id . ".json")) {
+ return "gallery";
+ } elseif (file_exists($_SERVER["DOCUMENT_ROOT"] . "/includes/data/articles/" . $id . ".json")) {
+ return "articles";
+ } elseif (file_exists($_SERVER["DOCUMENT_ROOT"] . "/includes/data/profiles/" . $id . ".json")) {
+ return "profiles";
+ }
+
return $id;
}
diff --git a/includes/header.php b/includes/header.php
index 3249eba..cfca944 100644
--- a/includes/header.php
+++ b/includes/header.php
@@ -20,10 +20,20 @@ if (isset($_PROFILE)) {
$_PROFILE["studio_settings"] = [
"theme" => $palettes["default"],
"dark" => false,
+ "navigation" => [
+ "top" => [],
+ "bottom" => [],
+ "home" => []
+ ],
"profile" => [
"badge" => true,
"theme" => -1,
- "detailed" => false
+ "detailed" => false,
+ "photo" => true,
+ "hide" => false,
+ "phone" => true,
+ "email" => true,
+ "birth" => true
]
];
}
@@ -45,10 +55,10 @@ if (isset($_PROFILE)) {
}
}
-$id = str_replace("/", "-", substr($_GET["__"], 1));
+$_id = str_replace("/", "-", substr($_GET["__"], 1));
-if (file_exists($_SERVER['DOCUMENT_ROOT'] . "/includes/data/profiles/" . $id . ".json")) {
- $_ = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/profiles/" . $id . ".json"), true);
+if (file_exists($_SERVER['DOCUMENT_ROOT'] . "/includes/data/profiles/" . $_id . ".json")) {
+ $_ = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/profiles/" . $_id . ".json"), true);
if (isset($_["ultra"]) && $_["ultra"] && isset($_["studio_settings"]) && isset($_["studio_settings"]["profile"]["theme"]) && $_["studio_settings"]["profile"]["theme"] !== -1 && isset($palettes["list"][$_["studio_settings"]["profile"]["theme"]])) {
$userPalette = $palettes["list"][$_["studio_settings"]["profile"]["theme"]][$_PROFILE["studio_settings"]["dark"] === true ? "dark" : "light"];
@@ -124,6 +134,10 @@ if (file_exists($_SERVER['DOCUMENT_ROOT'] . "/includes/data/profiles/" . $id . "
color: inherit !important;
}
+ figure.image img {
+ max-width: 100%;
+ }
+
.update-user:hover {
opacity: .75;
}
@@ -282,7 +296,7 @@ if (file_exists($_SERVER['DOCUMENT_ROOT'] . "/includes/data/profiles/" . $id . "
}
@media (max-width: 767px) {
- #profile-grid {
+ #profile-grid, #profile-grid-2 {
grid-template-columns: 1fr !important;
grid-row-gap: 20px;
}
@@ -422,6 +436,10 @@ if (file_exists($_SERVER['DOCUMENT_ROOT'] . "/includes/data/profiles/" . $id . "
margin-left: auto;
margin-right: auto;
}
+
+ .badge-subscription-mobile {
+ display: none;
+ }
<?php endif; ?>
<?php if (isset($_COOKIE["DeltaHandoffPalette"]) || isset($userPalette)):
@@ -446,6 +464,7 @@ if (file_exists($_SERVER['DOCUMENT_ROOT'] . "/includes/data/profiles/" . $id . "
--bs-secondary-color: #<?= $palette[6] ?> !important;
--bs-secondary-color-rgb: <?= rgb($palette[6]) ?> !important;
--bs-secondary-bg: #<?= $palette[1] ?> !important;
+ --bs-secondary: #<?= $palette[6] ?> !important;
--bs-secondary-bg-rgb: <?= rgb($palette[1]) ?> !important;
--bs-tertiary-color: #<?= $palette[6] ?> !important;
diff --git a/includes/skels/profiles.json b/includes/skels/profiles.json
index 6cff5fa..4979cb4 100644
--- a/includes/skels/profiles.json
+++ b/includes/skels/profiles.json
@@ -10,6 +10,8 @@
"date": null,
"plus": false,
"ultra": false,
+ "hunter": false,
+ "eap": false,
"renewal": null,
"last_plan_update": null,
"balance": 0,
@@ -21,5 +23,24 @@
"alerts": [],
"last_seen": null,
"contents": null,
- "devices": []
+ "devices": [],
+ "studio_settings": {
+ "theme": 14,
+ "dark": false,
+ "navigation": {
+ "top": [],
+ "bottom": [],
+ "home": []
+ },
+ "profile": {
+ "badge": true,
+ "theme": -1,
+ "detailed": false,
+ "photo": true,
+ "hide": false,
+ "phone": true,
+ "email": true,
+ "birth": true
+ }
+ }
} \ No newline at end of file
diff --git a/lang/en.json b/lang/en.json
index a858679..8f08fdd 100644
--- a/lang/en.json
+++ b/lang/en.json
@@ -700,6 +700,46 @@
"light": "Light theme",
"profile": "Profile",
"on": "On",
- "off": "Off"
+ "off": "Off",
+ "redacted": "[redacted]",
+ "settings": {
+ "badge": {
+ "title": "Show subscription badge",
+ "description": "Display the Delta Ultra badge next to your name"
+ },
+ "detailed": {
+ "title": "Detailed statistics information",
+ "description": "Show more statistics about you, such as your most viewed pages"
+ },
+ "photo": {
+ "title": "Show profile picture",
+ "description": "Show your profile picture next to other personal information"
+ },
+ "hide": {
+ "title": "Hide statistics information",
+ "description": "Hide all statistics from your profile (dates and pending requests)"
+ },
+ "birth": {
+ "title": "Show complete birth date",
+ "description": "Show your complete birth date next to your age"
+ },
+ "phone": {
+ "title": "Show phone number",
+ "description": "Show your phone number on your profile"
+ },
+ "email": {
+ "title": "Show email address",
+ "description": "Show your email address on your profile"
+ }
+ },
+ "details": {
+ "most": "Most viewed pages:",
+ "requests": "Latest change requests:"
+ }
+ },
+ "badges": {
+ "admin": "Delta staff",
+ "eap": "Early supporter",
+ "hunter": "Delta bug hunters"
}
} \ No newline at end of file
diff --git a/logo-plus-trim.svg b/logo-plus-trim.svg
new file mode 100644
index 0000000..81744e6
--- /dev/null
+++ b/logo-plus-trim.svg
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 26.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 39 39" style="enable-background:new 0 0 39 39;" xml:space="preserve">
+<style type="text/css">
+ .st0{fill:url(#SVGID_1_);}
+</style>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="5.7953" y1="16.9853" x2="33.2453" y2="44.4353" gradientTransform="matrix(1 0 0 -1 0 50)">
+ <stop offset="0" style="stop-color:#C711E1"/>
+ <stop offset="1" style="stop-color:#7F52FF"/>
+</linearGradient>
+<path class="st0" d="M19.5,39c-0.3,0-0.5,0-0.8-0.1s-0.5-0.2-0.7-0.3L3,30c-0.5-0.3-0.8-0.6-1.1-1.1c-0.3-0.4-0.4-0.9-0.4-1.4V11.1
+ c0-0.6,0.1-1.1,0.4-1.6S2.6,8.7,3,8.4l15-8.1c0.2-0.1,0.5-0.2,0.7-0.3c0.2,0,0.5-0.1,0.8-0.1s0.5,0,0.8,0.1c0.2,0.1,0.5,0.1,0.7,0.3
+ l15,8.1c0.5,0.3,0.8,0.6,1.1,1.1s0.4,1,0.4,1.6v16.4c0,0.6-0.1,1.1-0.4,1.5c-0.3,0.5-0.6,0.8-1.1,1.1l-15,8.6
+ c-0.2,0.1-0.5,0.2-0.7,0.3S19.8,39,19.5,39z M13.8,14.6c0.8-0.8,1.6-1.4,2.6-1.9s2-0.7,3.1-0.7s2.1,0.2,3.1,0.7s1.9,1.1,2.6,1.9
+ l7.7-4.5L19.5,3L6.1,10.1L13.8,14.6z M18,35.2v-8.4c-1.7-0.5-3.2-1.4-4.3-2.7S12,21.2,12,19.5c0-0.3,0-0.7,0-1
+ c0-0.4,0.1-0.8,0.3-1.2l-7.8-4.7v14.9L18,35.2z M19.5,24c1.3,0,2.3-0.4,3.2-1.3c0.9-0.9,1.3-1.9,1.3-3.2c0-1.3-0.4-2.3-1.3-3.2
+ c-0.9-0.9-1.9-1.3-3.2-1.3c-1.2,0-2.3,0.4-3.2,1.3c-0.9,0.9-1.3,1.9-1.3,3.2c0,1.2,0.4,2.3,1.3,3.2C17.2,23.6,18.3,24,19.5,24z
+ M21,35.2l13.5-7.7V12.6l-7.9,4.6c0.2,0.5,0.3,0.9,0.3,1.2c0,0.3,0,0.7,0,1c0,1.7-0.6,3.3-1.7,4.6c-1.1,1.4-2.6,2.3-4.3,2.7L21,35.2
+ z"/>
+</svg>
diff --git a/logo-plus.svg b/logo-plus.svg
new file mode 100644
index 0000000..b280efb
--- /dev/null
+++ b/logo-plus.svg
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 26.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
+<style type="text/css">
+ .st0{fill:url(#SVGID_1_);}
+</style>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="10.2717" y1="37.4783" x2="37.7283" y2="10.0217">
+ <stop offset="0" style="stop-color:#C711E1"/>
+ <stop offset="1" style="stop-color:#7F52FF"/>
+</linearGradient>
+<path class="st0" d="M24,43.5c-0.3,0-0.5,0-0.8-0.1s-0.5-0.2-0.7-0.3l-15-8.6c-0.5-0.3-0.8-0.6-1.1-1.1C6.1,33,6,32.5,6,32V15.6
+ C6,15,6.1,14.5,6.4,14c0.3-0.5,0.7-0.8,1.1-1.1l15-8.1c0.2-0.1,0.5-0.2,0.7-0.3c0.2,0,0.5-0.1,0.8-0.1s0.5,0,0.8,0.1
+ c0.2,0.1,0.5,0.1,0.7,0.3l15,8.1c0.5,0.3,0.8,0.6,1.1,1.1c0.3,0.5,0.4,1,0.4,1.6V32c0,0.6-0.1,1.1-0.4,1.5c-0.3,0.5-0.6,0.8-1.1,1.1
+ l-15,8.6c-0.2,0.1-0.5,0.2-0.7,0.3S24.3,43.5,24,43.5z M18.3,19.1c0.8-0.8,1.6-1.4,2.6-1.9s2-0.7,3.1-0.7s2.1,0.2,3.1,0.7
+ s1.9,1.1,2.6,1.9l7.7-4.5L24,7.5l-13.4,7.1L18.3,19.1z M22.5,39.7v-8.4c-1.7-0.5-3.2-1.4-4.3-2.7s-1.7-2.9-1.7-4.6c0-0.3,0-0.7,0-1
+ c0-0.4,0.1-0.8,0.3-1.2L9,17.1V32L22.5,39.7z M24,28.5c1.3,0,2.3-0.4,3.2-1.3c0.9-0.9,1.3-1.9,1.3-3.2c0-1.3-0.4-2.3-1.3-3.2
+ c-0.9-0.9-1.9-1.3-3.2-1.3c-1.2,0-2.3,0.4-3.2,1.3s-1.3,1.9-1.3,3.2c0,1.2,0.4,2.3,1.3,3.2C21.7,28.1,22.8,28.5,24,28.5z M25.5,39.7
+ L39,32V17.1l-7.9,4.6c0.2,0.5,0.3,0.9,0.3,1.2c0,0.3,0,0.7,0,1c0,1.7-0.6,3.3-1.7,4.6c-1.1,1.4-2.6,2.3-4.3,2.7L25.5,39.7z"/>
+</svg>
diff --git a/logo-ultra-trim.svg b/logo-ultra-trim.svg
new file mode 100644
index 0000000..6654d3c
--- /dev/null
+++ b/logo-ultra-trim.svg
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 26.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 38.9 38.9" style="enable-background:new 0 0 38.9 38.9;" xml:space="preserve">
+<style type="text/css">
+ .st0{fill:url(#SVGID_1_);}
+</style>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="5.7875" y1="16.7625" x2="33.1407" y2="44.1158" gradientTransform="matrix(1 0 0 -1 0 50)">
+ <stop offset="6.200396e-04" style="stop-color:#D6E012;stop-opacity:0.75"/>
+ <stop offset="1" style="stop-color:#BF763D"/>
+</linearGradient>
+<path class="st0" d="M13.7,14.8L3.1,8.6L18,0.4C18.5,0.1,19,0,19.5,0s1,0.1,1.5,0.4L36,8.6l-10.6,6.2c-0.8-0.8-1.6-1.4-2.6-1.9
+ s-2-0.7-3.1-0.7s-2.1,0.2-3.1,0.7C15.3,13.4,14.6,13.9,13.7,14.8z M18,38.9L3,30.2c-0.5-0.3-0.8-0.6-1.1-1.1c-0.3-0.5-0.4-1-0.4-1.5
+ V11l10.9,6.4c-0.2,0.4-0.3,0.8-0.3,1.2c0,0.4,0,0.7,0,1c0,1.7,0.6,3.3,1.7,4.6c1.1,1.4,2.6,2.3,4.3,2.7L18,38.9z M19.5,24.1
+ c-1.2,0-2.3-0.4-3.2-1.3c-0.9-0.9-1.3-1.9-1.3-3.2c0-1.3,0.4-2.3,1.3-3.2c0.9-0.9,1.9-1.3,3.2-1.3c1.3,0,2.3,0.4,3.2,1.3
+ c0.9,0.9,1.3,1.9,1.3,3.2c0,1.2-0.4,2.3-1.3,3.2C21.8,23.8,20.8,24.1,19.5,24.1z M21,38.9V27c1.7-0.5,3.2-1.4,4.3-2.7
+ c1.1-1.4,1.7-2.9,1.7-4.6c0-0.3,0-0.7,0-1c0-0.4-0.1-0.8-0.3-1.2L37.5,11v16.7c0,0.6-0.1,1.1-0.4,1.5c-0.3,0.5-0.6,0.8-1.1,1.1
+ L21,38.9z"/>
+</svg>
diff --git a/logo-ultra.svg b/logo-ultra.svg
new file mode 100644
index 0000000..87f2572
--- /dev/null
+++ b/logo-ultra.svg
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 26.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
+<style type="text/css">
+ .st0{fill:url(#SVGID_1_);}
+</style>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="10.3234" y1="37.5299" x2="37.6766" y2="10.1766">
+ <stop offset="6.200396e-04" style="stop-color:#D6E012;stop-opacity:0.75"/>
+ <stop offset="1" style="stop-color:#BF763D"/>
+</linearGradient>
+<path class="st0" d="M18.3,19.1L7.7,12.9l14.9-8.1c0.5-0.3,1-0.4,1.5-0.4s1,0.1,1.5,0.4l14.9,8.1l-10.6,6.2
+ c-0.8-0.8-1.6-1.4-2.6-1.9s-2-0.7-3.1-0.7s-2.1,0.2-3.1,0.7C19.9,17.7,19.1,18.3,18.3,19.1z M22.5,43.2l-15-8.6
+ c-0.5-0.3-0.8-0.6-1.1-1.1C6.1,33,6,32.5,6,32V15.3l10.9,6.4c-0.2,0.4-0.3,0.8-0.3,1.2c0,0.4,0,0.7,0,1c0,1.7,0.6,3.3,1.7,4.6
+ c1.1,1.4,2.6,2.3,4.3,2.7L22.5,43.2z M24,28.5c-1.2,0-2.3-0.4-3.2-1.3c-0.9-0.9-1.3-1.9-1.3-3.2c0-1.3,0.4-2.3,1.3-3.2
+ s1.9-1.3,3.2-1.3c1.3,0,2.3,0.4,3.2,1.3c0.9,0.9,1.3,1.9,1.3,3.2c0,1.2-0.4,2.3-1.3,3.2C26.3,28.1,25.3,28.5,24,28.5z M25.5,43.2
+ V31.4c1.7-0.5,3.2-1.4,4.3-2.7c1.1-1.4,1.7-2.9,1.7-4.6c0-0.3,0-0.7,0-1c0-0.4-0.1-0.8-0.3-1.2L42,15.3V32c0,0.6-0.1,1.1-0.4,1.5
+ c-0.3,0.5-0.6,0.8-1.1,1.1L25.5,43.2z"/>
+</svg>
diff --git a/mobile_profile/index.php b/mobile_profile/index.php
index 2783f9b..4de51aa 100644
--- a/mobile_profile/index.php
+++ b/mobile_profile/index.php
@@ -9,14 +9,14 @@ global $_PROFILE; global $_USER; global $unreadAlerts;
?>
<div class="container">
- <br><br>
+ <br><br><br>
- <div style="text-align: center;">
- <img src="https://delta.equestria.dev/handoff/avatar/" style="width: 96px;">
- <h3 style="margin-top: 10px;"><?= $_PROFILE["nick_name"] ?? $_PROFILE["first_name"] . " " . $_PROFILE["last_name"] ?></h3>
- <?php if ($_PROFILE["plus"]): ?>
- <?php if (!$_PROFILE["ultra"]): ?> <span style="display: inline-block !important;" class="badge badge-plus rounded-pill">PLUS</span><?php else: ?> <span style="display: inline-block !important;" class="badge badge-ultra rounded-pill">ULTRA</span><?php endif; ?>
- <?php endif; ?>
+ <div style="margin: 0 20px;">
+ <img src="https://delta.equestria.dev/handoff/avatar/" style="width: 80px;">
+ <h3 style="margin-top: 10px;">
+ <span style="position: relative;top: 4px;"><?= $_PROFILE["nick_name"] ?? $_PROFILE["first_name"] . " " . $_PROFILE["last_name"] ?></span>
+ <span style="float: right;"><?php badges($_PROFILE); ?></span>
+ </h3>
</div>
<hr>
diff --git a/plus/subscribe/index.php b/plus/subscribe/index.php
index dced541..784d781 100644
--- a/plus/subscribe/index.php
+++ b/plus/subscribe/index.php
@@ -141,8 +141,8 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/navigation.php";
<div class="card promo-item">
<div class="card-body">
<h4 class="card-title" style="text-align: center; margin-top: 10px;">
- <img src="/logo.svg" style="width: 36px;margin-top: -5px;">
- <span style="font-family: 'Josefin Sans', sans-serif; font-weight: bold; vertical-align: middle;">Delta</span>
+ <img src="/logo.svg" style="width: 36px;margin-top: -5px;"><br>
+ <span style="margin-top:15px;display:inline-block;font-size:32px;font-family: 'Josefin Sans', sans-serif; font-weight: bold; vertical-align: middle;">Delta</span>
</h4>
<ul style="margin-bottom: 20px; margin-top: 20px;">
@@ -173,9 +173,9 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/navigation.php";
<div class="card promo-item">
<div class="card-body">
<h4 class="card-title" style="text-align: center; margin-top: 10px;">
- <img src="/logo.svg" style="width: 36px;margin-top: -5px;">
- <span style="font-family: 'Josefin Sans', sans-serif; font-weight: bold; vertical-align: middle;">Delta</span>
- <span class="badge badge-plus rounded-pill" style="font-size: 12px; vertical-align: middle; margin-top: -5px;margin-left:5px;">PLUS</span>
+ <img src="/logo-plus-trim.svg" style="width: 36px;margin-top: -5px;"><br>
+ <span style="margin-top:15px;display:inline-block;font-size:32px;font-family: 'Josefin Sans', sans-serif; font-weight: bold; vertical-align: middle;">Delta</span>
+ <span class="badge badge-plus rounded-pill" style="font-size: 12px; vertical-align: middle; margin-top: 12px;margin-left:5px;">PLUS</span>
</h4>
<ul style="margin-bottom: 20px; margin-top: 20px;">
@@ -208,9 +208,9 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/navigation.php";
<div class="card promo-item">
<div class="card-body">
<h4 class="card-title" style="text-align: center; margin-top: 10px;">
- <img src="/logo.svg" style="width: 36px;margin-top: -5px;">
- <span style="font-family: 'Josefin Sans', sans-serif; font-weight: bold; vertical-align: middle;">Delta</span>
- <span class="badge badge-ultra rounded-pill" style="font-size: 12px; vertical-align: middle; margin-top: -5px;margin-left:5px;">ULTRA</span>
+ <img src="/logo-ultra-trim.svg" style="width: 36px;margin-top: -5px;"><br>
+ <span style="margin-top:15px;display:inline-block;font-size:32px;font-family: 'Josefin Sans', sans-serif; font-weight: bold; vertical-align: middle;">Delta</span>
+ <span class="badge badge-ultra rounded-pill" style="font-size: 12px; vertical-align: middle; margin-top: 12px;margin-left:5px;">ULTRA</span>
</h4>
<ul style="margin-bottom: 20px; margin-top: 20px;">
diff --git a/studio/index.php b/studio/index.php
index 7f07758..250eab2 100644
--- a/studio/index.php
+++ b/studio/index.php
@@ -15,13 +15,16 @@ if (!isset($_PROFILE["ultra"]) || !$_PROFILE["ultra"]) {
$palettes = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/themes.json"), true);
-function check($name, $description, $checked, $action) { ?>
-<div style="display: grid; grid-template-columns: 1fr max-content;">
- <div></div>
+function check($name, $description, $checked, $actionOn, $actionOff, $disable = false) { ?>
+<div style="margin-top: 10px;display: grid; grid-template-columns: 1fr max-content;">
+ <div>
+ <p style="margin-bottom: 5px;"><?= $name ?></p>
+ <span class="text-muted"><?= $description ?></span>
+ </div>
<div style="display: flex; align-items: center; justify-content: end;">
<div class="btn-group">
- <a href="/studio/light/?dark" type="button" class="btn <?= $checked ? "btn-primary" : "btn-outline-primary" ?>"><?= l("lang_studio_on") ?></a>
- <a href="/studio/light/?light" type="button" class="btn <?= !$checked ? "btn-primary" : "btn-outline-primary" ?>"><?= l("lang_studio_off") ?></a>
+ <a href="<?= $actionOn ?>" type="button" class="<?= $disable ? "disabled " : "" ?>btn <?= $checked ? "btn-primary" : "btn-outline-primary" ?>"><?= l("lang_studio_on") ?></a>
+ <a href="<?= $actionOff ?>" type="button" class="<?= $disable ? "disabled " : "" ?>btn <?= !$checked ? "btn-primary" : "btn-outline-primary" ?>"><?= l("lang_studio_off") ?></a>
</div>
</div>
</div>
@@ -68,8 +71,20 @@ function check($name, $description, $checked, $action) { ?>
<?php endforeach; ?>
</div>
- <div style="margin-top: 10px;">
- <?php check("Test", "This is a test", false, "alert('a');") ?>
+ <div style="margin-top: 20px;">
+ <?php check(l("lang_studio_settings_badge_title"), l("lang_studio_settings_badge_description"), $_PROFILE["studio_settings"]["profile"]["badge"], "/studio/profile/?id=badge&value=1", "/studio/profile/?id=badge&value=0") ?>
+
+ <?php check(l("lang_studio_settings_photo_title"), l("lang_studio_settings_photo_description"), $_PROFILE["studio_settings"]["profile"]["photo"], "/studio/profile/?id=photo&value=1", "/studio/profile/?id=photo&value=0") ?>
+
+ <?php check(l("lang_studio_settings_birth_title"), l("lang_studio_settings_birth_description"), $_PROFILE["studio_settings"]["profile"]["birth"], "/studio/profile/?id=birth&value=1", "/studio/profile/?id=birth&value=0") ?>
+
+ <?php check(l("lang_studio_settings_phone_title"), l("lang_studio_settings_phone_description"), $_PROFILE["studio_settings"]["profile"]["phone"], "/studio/profile/?id=phone&value=1", "/studio/profile/?id=phone&value=0") ?>
+
+ <?php check(l("lang_studio_settings_email_title"), l("lang_studio_settings_email_description"), $_PROFILE["studio_settings"]["profile"]["email"], "/studio/profile/?id=email&value=1", "/studio/profile/?id=email&value=0") ?>
+
+ <?php check(l("lang_studio_settings_detailed_title"), l("lang_studio_settings_detailed_description"), $_PROFILE["studio_settings"]["profile"]["detailed"], "/studio/profile/?id=detailed&value=1", "/studio/profile/?id=detailed&value=0", true) ?>
+
+ <?php check(l("lang_studio_settings_hide_title"), l("lang_studio_settings_hide_description"), $_PROFILE["studio_settings"]["profile"]["hide"], "/studio/profile/?id=hide&value=1", "/studio/profile/?id=hide&value=0") ?>
</div>
<br><br>
diff --git a/studio/profile/index.php b/studio/profile/index.php
new file mode 100644
index 0000000..f2f72bc
--- /dev/null
+++ b/studio/profile/index.php
@@ -0,0 +1,17 @@
+<?php
+
+require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/session.php";
+if (!isset($_PROFILE["ultra"]) || !$_PROFILE["ultra"]) {
+ header("Location: /");
+ die();
+}
+
+$palettes = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/themes.json"), true);
+
+if (isset($_GET['value']) && isset($_GET['id']) && isset($_PROFILE["studio_settings"]["profile"][$_GET["id"]]) && is_bool($_PROFILE["studio_settings"]["profile"][$_GET["id"]])) {
+ $_PROFILE["studio_settings"]["profile"][$_GET["id"]] = (bool)$_GET["value"];
+ saveProfile();
+}
+
+header("Location: /studio");
+die(); \ No newline at end of file