Add files via upload

This commit is contained in:
tips-of-mine
2025-06-14 19:03:54 +02:00
committed by GitHub
parent 2df60f551b
commit b17c666c5a
51 changed files with 4363 additions and 0 deletions

View File

@@ -0,0 +1,56 @@
<?php
namespace App\Utils;
/**
* Utilitaire pour gérer le mode sombre/clair de l'application via la session.
*/
class DarkMode
{
/**
* Initialise l'état du mode sombre dans la session si ce n'est pas déjà fait.
* Le mode clair est le mode par défaut.
*/
public static function init()
{
if (!isset($_SESSION['dark_mode'])) {
$_SESSION['dark_mode'] = false; // false = mode clair, true = mode sombre
}
}
/**
* Bascule l'état du mode sombre ou le définit explicitement.
*
* @param string|null $mode 'on' pour activer, 'off' pour désactiver, null pour basculer.
*/
public static function toggle($mode = null)
{
if ($mode === 'on') {
$_SESSION['dark_mode'] = true;
} elseif ($mode === 'off') {
$_SESSION['dark_mode'] = false;
} else {
$_SESSION['dark_mode'] = !($_SESSION['dark_mode'] ?? false); // Bascule l'état actuel
}
}
/**
* Vérifie si le mode sombre est activé.
*
* @return bool Vrai si le mode sombre est activé, faux sinon.
*/
public static function isEnabled()
{
return $_SESSION['dark_mode'] ?? false;
}
/**
* Retourne la classe CSS à appliquer au body HTML en fonction de l'état du mode sombre.
*
* @return string La classe CSS ('dark-mode') ou une chaîne vide.
*/
public static function getBodyClass()
{
return self::isEnabled() ? 'dark-mode' : '';
}
}