diff options
author | RaindropsSys <raindrops@equestria.dev> | 2024-04-11 23:29:04 +0200 |
---|---|---|
committer | RaindropsSys <raindrops@equestria.dev> | 2024-04-11 23:29:04 +0200 |
commit | 9cb95f62c6dc710de66df79611c40b5674587a04 (patch) | |
tree | 4abca3167ea87e8d1559240c81eba50ee6b362d0 | |
parent | 176cb7429f44ea69e3e4c866c529cc19a86b80ba (diff) | |
download | delta-9cb95f62c6dc710de66df79611c40b5674587a04.tar.gz delta-9cb95f62c6dc710de66df79611c40b5674587a04.tar.bz2 delta-9cb95f62c6dc710de66df79611c40b5674587a04.zip |
Updated 7 files and deleted 2 files (automated)
-rw-r--r-- | includes/header.php | 6 | ||||
-rw-r--r-- | index.php | 31 | ||||
-rw-r--r-- | lang/en.json | 2 | ||||
-rw-r--r-- | lang/fr.json | 2 | ||||
-rw-r--r-- | nickname/change/index.php | 108 | ||||
-rw-r--r-- | nickname/index.php | 183 | ||||
-rw-r--r-- | plus/index.php | 9 | ||||
-rw-r--r-- | plus/subscribe/index.php | 12 | ||||
-rw-r--r-- | version | 2 |
9 files changed, 48 insertions, 307 deletions
diff --git a/includes/header.php b/includes/header.php index c59262e..ca60d9e 100644 --- a/includes/header.php +++ b/includes/header.php @@ -54,6 +54,12 @@ if (isset($_GET["__"])) { $_id = str_replace("/", "-", substr($_GET["__"], 1)); } +if (isset($_PROFILE) && $_PROFILE["ultra"]) { + $_PROFILE["ultra"] = false; + $_PROFILE["hadUltra"] = true; + saveProfile(); +} + ?> <!doctype html> <html lang="en"> @@ -14,12 +14,35 @@ $version = file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/version"); <br><br> <h1><?= l("lang_home_greeting") ?> <?= $_PROFILE["nick_name"] ?? $_PROFILE["first_name"] . " " . $_PROFILE["last_name"] ?></h1> - <?php if ($_SERVER["SERVER_PORT"] === "81"): ?> - <div class="alert alert-danger"> - <b>This is a development environment.</b> All data is reset with data from production every 60 minutes. Run <code style="color: inherit;"><?= $_SERVER['DOCUMENT_ROOT'] ?>/includes/prod.sh</code> to push this release to production. - </div> + <?php if ($_PROFILE["hadUltra"]): ?> + <div class="alert alert-danger"> + <b>Votre abonnement Delta Ultra a été converti en abonnement Delta Plus.</b> En raison de l'arrêt progressif de Delta, Delta Ultra n'est désormais plus disponible. Votre abonnement a donc été converti en Delta Plus. + </div> <?php endif; ?> + <details class="alert alert-danger"> + <summary> + <b>Arrêt progressif de service pour la plate-forme Delta et les services associés</b> + </summary> + + <p style="margin-top: 1rem;">Nous avons le regret de vous annoncer la fermeture de Delta le 16 juin 2024, avec une désactivation progressive des fonctionnalités sur les prochains mois à raison d'une fonctionnalité par semaine, ainsi que la migration du contenu vers une plate-forme plus économe (avec cependant moins de contrôle).</p> + <ul> + <li style="opacity: .25;">31 mars : Retrait de l'offre de support technique gratuit pour les utilisateurs Delta Ultra. Le prix de l'abonnement Delta Ultra sera abaissé à 6 pièces par mois (soit 1,50€ par mois).</li> + <li style="opacity: .25;">7 avril : Désactivation de Delta Studio. Le prix de l'abonnement Delta Ultra sera abaissé à 5 pièces par mois (soit 1,25€ par mois).</li> + <li style="font-weight: bold;">14 avril : Retrait de Delta Ultra (et par conséquent de l'option de surnom). Les abonnements Delta Ultra en cours de validité seront convertis en abonnements Delta Plus.</li> + <li>21 avril : Désactivation de Delta Beta. Étant donné qu'il n'y a, à l'heure actuelle, aucune fonctionnalité expérimentale, la page correspondante est simplement retirée. Le prix de l'abonnement Delta Plus sera abaissé à 3 pièces par mois (soit 0,75€ par mois).</li> + <li>28 avril : Activation de l'option d'impression des pages pour tous les utilisateurs de Delta. Le prix de l'abonnement Delta Plus sera abaissé à 2 pièces par mois (soit 0,50€ par mois).</li> + <li>5 mai : Retrait de Delta Plus (et par conséquent du badge de profil et des relectures privilégiées). Les abonnements Delta Plus en cours de validité expireront.</li> + <li>12 mai : Désactivation de l'option d'aide intégrée. À partir de ce jour, aucun support technique ne sera fourni aux utilisateurs de Delta.</li> + <li>19 mai : Retrait du Pass Événements. Les intégrations dans des applications tierces utilisant le Pass Événements cesseront de fonctionner.</li> + <li>26 mai : Retrait du système de recherche.</li> + <li>2 juin : Désactivation des albums de galerie. Étant donné qu'aucun album n'existe actuellement, la page est simplement retirée.</li> + <li>9 juin : Désactivation de toutes les fonctionnalités de modification de Delta. Pour modifier du contenu après cette date, contactez les administrateurs.</li> + <li>16 juin : Fermeture définitive de Delta</li> + </ul> + <div>Si vous avez la moindre question ou le moindre renseignement à nous faire parvenir, utilisez soit <a href="/support/">l'option d'aide de Delta</a>, ou l'adresse <a href="mailto:delta@equestria.dev">delta@equestria.dev</a>.</div> + </details> + <?php if (str_contains($version, "rc") || str_contains($version, "eap") || str_contains($version, "beta") || diff --git a/lang/en.json b/lang/en.json index d56e320..5c0f959 100644 --- a/lang/en.json +++ b/lang/en.json @@ -343,7 +343,7 @@ }, "trial": { "title": "Get 5 coins free", - "description": "First time using Delta Plus? You can get 5 coins for free (1 month of Delta Ultra subscription%1)." + "description": "First time using Delta Plus? You can get 5 coins for free (1 month of Delta Plus subscription%1)." }, "notes": [ "Delta Plus is only available for users who are 16 years old or more and without an active account block.", diff --git a/lang/fr.json b/lang/fr.json index 1aba543..e46f51f 100644 --- a/lang/fr.json +++ b/lang/fr.json @@ -343,7 +343,7 @@ }, "trial": { "title": "Obtenez 5 pièces gratuitement", - "description": "Première fois avec Delta Plus ? Vous pouvez obtenir 5 pièces Delta gratuites (1 mois d'abonnement Delta Ultra%1)." + "description": "Première fois avec Delta Plus ? Vous pouvez obtenir 5 pièces Delta gratuites (1 mois d'abonnement Delta Plus%1)." }, "notes": [ "Delta Plus est disponible uniquement aux utilisateurs de 16 ans ou plus et sans blocage de compte.", diff --git a/nickname/change/index.php b/nickname/change/index.php deleted file mode 100644 index 9786cbc..0000000 --- a/nickname/change/index.php +++ /dev/null @@ -1,108 +0,0 @@ -<?php - -require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/session.php"; -global $_PROFILE; global $_USER; - -if (!isset($_PROFILE["ultra"]) || !$_PROFILE["ultra"]) { - header("Location: /"); - die(); -} - -if (!isset($_GET["name"])) die(); -$name = trim(base64_decode(trim($_GET["name"]))); - -if (strlen($name) === 0) { - $_PROFILE["nick_name"] = null; - saveProfile(); - return; -} - -$valid = true; -$failed = []; - -if (strlen($name) >= 3) { - $lettersProp = ceil(strlen($name) / 2); -} else { - $lettersProp = 1; -} - -if (!(strlen($name) >= 3 && strlen($name) <= 25)) { - $valid = false; - $failed[] = "LENGTH"; -} - -if (preg_match("/[^\da-z]{2,}/mi", $name) === 1 || preg_match("/[^\da-z]{2,}/mi", $name)) { - $valid = false; - $failed[] = "CONSECUTIVE"; -} - -if (preg_match_all("/[^\da-z]/mi", $name) > 3) { - $valid = false; - $failed[] = "SPECIAL"; -} - -if (strlen(preg_replace("/[^\d]/mi", "", $name)) > 4) { - $valid = false; - $failed[] = "DIGITS"; -} - -if (preg_match("/^[a-z]/mi", $name) == 0) { // Not === because we also want to match 'false' - $valid = false; - $failed[] = "START"; -} - -if (preg_match("/[a-z\d]$/mi", $name) == 0) { // Not === because we also want to match 'false' - $valid = false; - $failed[] = "END"; -} - -if (strlen(preg_replace("/[^a-z]/mi", "", $name)) < $lettersProp) { - $valid = false; - $failed[] = "LETTERS"; -} - -if (!$valid) { - header("Location: /nickname/?prefill=" . urlencode(pf_utf8_decode($_GET["name"])) . "&invalid=" . implode(",", $failed)); - die(); -} - -$users = []; - -foreach (array_filter(scandir($_SERVER['DOCUMENT_ROOT'] . "/includes/data/profiles"), function ($i) { - return !str_starts_with($i, "."); -}) as $user) { - if ($_USER . ".json" !== $user) { - $data = json_decode(pf_utf8_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/profiles/" . $user)), true); - $users[] = $data["first_name"] . " " . $data["last_name"]; - $users[] = $data["first_name"]; - if (isset($data["nick_name"]) && strlen(trim($data["nick_name"])) > 0 && isset($data["ultra"]) && $data["ultra"]) $users[] = $data["nick_name"]; - } -} - -foreach (array_filter(scandir($_SERVER['DOCUMENT_ROOT'] . "/includes/data/people"), function ($i) { - return !str_starts_with($i, "."); -}) as $user) { - $data = json_decode(pf_utf8_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/people/" . $user)), true); - if (!isset($data["delta"]) || $data["delta"] !== $_USER) { - $users[] = $data["first_name"] . " " . $data["last_name"]; - $users[] = $data["first_name"]; - } -} - -$close = false; - -foreach ($users as $user) { - if (levenshtein($name, $user) < 7) { - $close = true; - } -} - -if ($close) { - header("Location: /nickname/?prefill=" . urlencode(pf_utf8_decode($_GET["name"])) . "&close"); - die(); -} - -$_PROFILE["nick_name"] = pf_utf8_encode(str_replace("'", "'", str_replace('"', """, str_replace("<", "<", str_replace(">", ">", str_replace("&", "&", $name)))))); -saveProfile(); -header("Location: /nickname/?success"); -die();
\ No newline at end of file diff --git a/nickname/index.php b/nickname/index.php deleted file mode 100644 index bbf14bc..0000000 --- a/nickname/index.php +++ /dev/null @@ -1,183 +0,0 @@ -<?php - -$title = "lang_nickname_title"; -require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/session.php"; - -if (!isset($_PROFILE["ultra"]) || !$_PROFILE["ultra"]) { - header("Location: /"); - die(); -} - -require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/header.php"; -require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/navigation.php"; -global $_PROFILE; global $_USER; - -?> - -<style> - @media (max-width: 900px) { - #grid { - grid-template-columns: 1fr !important; - grid-gap: 0 !important; - } - - #grid > hr { - display: block !important; - } - } -</style> - -<div class="container"> - <br><br> - <h1><?= l("lang_nickname_title2") ?></h1> - - <?php if (isset($_GET["invalid"]) || isset($_GET["close"])): ?> - <div id="alert" class="alert alert-primary"> - <?php if (isset($_GET["invalid"])): ?><b><?= l("lang_upload_error") ?></b><?= l("lang_nickname_invalid") ?><?php endif; ?> - <?php if (isset($_GET["close"])): ?><b><?= l("lang_upload_error") ?></b><?= l("lang_nickname_close") ?><?php endif; ?> - </div> - <?php endif; ?> - - <?php if (isset($_GET["success"])): ?> - <div id="alert" class="alert alert-success"> - <b><?= l("lang_nickname_done_0") ?></b> <?= l("lang_nickname_done_1") ?> - </div> - <?php endif; ?> - - <div style="display: grid; grid-template-columns: 1fr 1fr; grid-gap: 20px;" id="grid"> - <div> - <form onsubmit="checkAndSubmit(); return false;"> - <p> - <input autofocus name="name" id="name" onkeydown="checkName();" onkeyup="checkName();" autocomplete="false" autocapitalize="false" spellcheck="false" class="form-control" placeholder="<?= "$_PROFILE[first_name] $_PROFILE[last_name]" ?>" value="<?= isset($_GET["prefill"]) ? str_replace('"', '"', base64_decode($_GET["prefill"])) : ($_PROFILE["nick_name"] ?? "") ?>"> - </p> - - <button id="confirm-btn" class="btn btn-primary" disabled><?= l("lang_nickname_confirm") ?></button> - </form> - </div> - - <hr style="display: none;"> - - <div> - <p><?= l("lang_nickname_requirements") ?></p> - - <ul> - <li id="condition-0" class="text-success"><?= l("lang_nickname_list_0") ?></li> - <li id="condition-1" class="text-success"><?= l("lang_nickname_list_1") ?></li> - <li id="condition-2" class="text-success"><?= l("lang_nickname_list_2") ?></li> - <li id="condition-3" class="text-success"><?= l("lang_nickname_list_5") ?></li> - <li id="condition-5" class="text-success"><?= l("lang_nickname_list_3") ?></li> - <li id="condition-6" class="text-success"><?= l("lang_nickname_list_4") ?></li> - <li id="condition-4-a" class="text-success"><?= l("lang_nickname_list_6") ?></li> - <li id="condition-4-b" class="text-success" data-text-original="<?= l("lang_nickname_list_7") ?>"><?= l("lang_nickname_list_7") ?></li> - </ul> - </div> - - <script> - window.isValid = false; - - function checkName(skip) { - if (document.getElementById("alert") && !skip) document.getElementById("alert").outerHTML = ""; - - let isValid = false; - let lettersProp = 1; - let name = document.getElementById("name").value.trim(); - document.getElementById("confirm-btn").disabled = true; - - if (name.length >= 3) { - lettersProp = Math.ceil(name.length / 2); - document.getElementById("condition-4-a").style.display = "none"; - document.getElementById("condition-4-b").style.display = ""; - document.getElementById("condition-4-b").innerText = document.getElementById("condition-4-b").getAttribute("data-text-original").replace("%1", lettersProp); - } else { - document.getElementById("condition-4-b").style.display = "none"; - document.getElementById("condition-4-a").style.display = ""; - } - - if (name.length === 0) { - isValid = true; - } else { - for (let i of [0, 1, 2, 3, "4-a", "4-b", 5, 6]) { - document.getElementById("condition-" + i).classList.remove("text-success"); - document.getElementById("condition-" + i).classList.add("text-danger"); - } - - isValid = true; - - if (name.length >= 3 && name.length <= 25) { - document.getElementById("condition-0").classList.add("text-success"); - document.getElementById("condition-0").classList.remove("text-danger"); - } else { - isValid = false; - } - - if (!name.match(/[^\da-z]{2,}/gmi)) { - document.getElementById("condition-1").classList.add("text-success"); - document.getElementById("condition-1").classList.remove("text-danger"); - } else { - isValid = false; - } - - if ( - (name.match(/[^\da-z]/gmi) && name.match(/[^\da-z]/gmi).length <= 3) || - (!name.match(/[^\da-z]/gmi)) - ) { - document.getElementById("condition-2").classList.add("text-success"); - document.getElementById("condition-2").classList.remove("text-danger"); - } else { - isValid = false; - } - - if (name.replace(/[^\d]/gmi, "").length <= 4) { - document.getElementById("condition-3").classList.add("text-success"); - document.getElementById("condition-3").classList.remove("text-danger"); - } else { - isValid = false; - } - - if (name.match(/^[a-z]/gmi)) { - document.getElementById("condition-5").classList.add("text-success"); - document.getElementById("condition-5").classList.remove("text-danger"); - } else { - isValid = false; - } - - if (name.match(/[a-z\d]$/gmi)) { - document.getElementById("condition-6").classList.add("text-success"); - document.getElementById("condition-6").classList.remove("text-danger"); - } else { - isValid = false; - } - - if (name.replace(/[^a-z]/gmi, "").length >= lettersProp) { - document.getElementById("condition-4-a").classList.add("text-success"); - document.getElementById("condition-4-a").classList.remove("text-danger"); - document.getElementById("condition-4-b").classList.add("text-success"); - document.getElementById("condition-4-b").classList.remove("text-danger"); - } else { - isValid = false; - } - } - - if (isValid) { - document.getElementById("confirm-btn").disabled = false; - } else { - document.getElementById("confirm-btn").disabled = true; - } - - return isValid; - } - - function checkAndSubmit() { - if (checkName()) { - location.href = "/nickname/change/?name=" + encodeURIComponent(btoa(document.getElementById("name").value.trim())) - } - } - - checkName(true); - </script> - </div> - - <br><br> -</div> - -<?php require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/footer.php"; ?>
\ No newline at end of file diff --git a/plus/index.php b/plus/index.php index 5e7f517..3d93432 100644 --- a/plus/index.php +++ b/plus/index.php @@ -37,7 +37,6 @@ $age = (int)(explode(" ", timeAgo($_PROFILE["birth"] ?? "1990-01-01", false, tru <span style="font-family: 'Josefin Sans', sans-serif; font-weight: bold; font-size: 40px; vertical-align: middle;">Delta</span> <div id="plus-types" style="display: inline-grid;vertical-align: middle; grid-template-rows: 1fr; grid-gap: 10px;"> <span class="badge badge-plus rounded-pill" style="display: inline-block !important;font-size: 24px; vertical-align: middle; margin-left: 10px;">PLUS</span> - <span class="badge badge-ultra rounded-pill" style="display: inline-block !important;font-size: 24px; vertical-align: middle; margin-left: 10px;">ULTRA</span> </div> </div> </div> @@ -106,9 +105,9 @@ $age = (int)(explode(" ", timeAgo($_PROFILE["birth"] ?? "1990-01-01", false, tru </div> </div> - <h2 style="margin-bottom: 20px;margin-top: 30px;"><?= l("lang_plus_perks2") ?></h2> + <!--<h2 style="margin-bottom: 20px;margin-top: 30px;"><?= l("lang_plus_perks2") ?></h2> <div id="plus-grid" style="display: grid; grid-template-columns: repeat(2, 1fr); grid-gap: 20px;"> - <!--<div class="promo-wrapper promo-ultra"> + <div class="promo-wrapper promo-ultra"> <div class="card promo-item"> <div class="card-body"> <img src="/icons/brush.svg" style="width: 48px;"><br> @@ -136,7 +135,7 @@ $age = (int)(explode(" ", timeAgo($_PROFILE["birth"] ?? "1990-01-01", false, tru <span><?= str_replace("%2", "<sup>9</sup>", str_replace("%1", "<sup>8</sup>", l("lang_plus_list_0_description"))) ?></span> </div> </div> - </div>--> + </div> <div class="promo-wrapper promo-ultra"> <div class="card promo-item"> @@ -147,7 +146,7 @@ $age = (int)(explode(" ", timeAgo($_PROFILE["birth"] ?? "1990-01-01", false, tru </div> </div> </div> - </div> + </div>--> <h2 style="margin-bottom: 20px;margin-top: 30px;"><?= l("lang_plus_how") ?></h2> diff --git a/plus/subscribe/index.php b/plus/subscribe/index.php index 56eb200..ad44d88 100644 --- a/plus/subscribe/index.php +++ b/plus/subscribe/index.php @@ -7,6 +7,10 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/email.php"; $age = (int)(explode(" ", timeAgo($_PROFILE["birth"] ?? "1990-01-01", false, true))[0]); +if (isset($_GET["plan"]) && $_GET["plan"] === "ultra") { + header("Location: ?plan=plus"); +} + if ($age < 16) { header("Location: /"); die(); @@ -217,7 +221,7 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/navigation.php"; </div> </div> - <div class="promo-wrapper promo-ultra"> + <!--<div class="promo-wrapper promo-ultra"> <div class="card promo-item"> <div class="card-body"> <h4 class="card-title" style="text-align: center; margin-top: 10px;"> @@ -234,9 +238,9 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/navigation.php"; <li><?= l("lang_plus_list_3_pretty") ?></li> <li><?= l("lang_plus_list_4_pretty") ?></li> <li style="color: var(--bs-link-color);"><?= l("lang_plus_list_5_pretty") ?></li> - <!--<li style="color: var(--bs-link-color);"><?= l("lang_plus_list_0_pretty") ?></li> + <li style="color: var(--bs-link-color);"><?= l("lang_plus_list_0_pretty") ?></li> <li style="color: var(--bs-link-color);"><?= l("lang_plus_list_6_pretty") ?></li> - <li style="color: var(--bs-link-color);"><?= l("lang_plus_list_7_pretty") ?></li>--> + <li style="color: var(--bs-link-color);"><?= l("lang_plus_list_7_pretty") ?></li> </ul> <?php if ($_PROFILE["plus"] && $_PROFILE["ultra"]): ?> @@ -248,7 +252,7 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/navigation.php"; <div style="margin-top: 10px;" class="small text-muted"><?= $price * 1.25 ?> <?= l("lang_plus_subscribe_coin") ?> · <?= str_replace("%1", coinsToEur($price * 1.25), l("lang_plus_subscribe_monthly")) ?></div> </div> </div> - </div> + </div>--> </div> <?php endif; ?> @@ -1 +1 @@ -5.3.4 +5.3.5 |