mirror of
https://github.com/tips-of-mine/gestion-certificats2.git
synced 2025-08-26 13:15:49 +02:00
Add files via upload
This commit is contained in:
56
app/src/Utils/DarkMode.php
Normal file
56
app/src/Utils/DarkMode.php
Normal 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' : '';
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user