Mode maintenance - Utiliser la feature native
Easy2Do gère nativement le mode maintenance. Il suffit d'une ligne pour l'activer.
Le framework affiche automatiquement modules/easy2do/vues/maintenance.html avec les styles templates/commun/maintenance.css et le logo.
TL;DR
Modifier une seule ligne dans surcharge_conf.php :
$GLOBALS['bCoupureMaintenance'] = true; // true = maintenance ON
Done ! 🎉
Prérequis
| Élément | État |
|---|---|
| PHP | 8.4 |
| E2D - Core | 2.18 |
Comment ça marche
Le framework Easy2Do a une variable globale native : $GLOBALS['bCoupureMaintenance']
Quand elle vaut true :
- ✅
AffichageHTML.class.phpdétecte la variable - ✅ Remplace toute page par
modules/easy2do/vues/maintenance.html - ✅ Applique automatiquement
templates/commun/maintenance.css - ✅ Injecte le logo depuis
institution/img/logo.png
C'est automatique. Rien à coder.
Activation du mode maintenance
1. Ouvrir surcharge_conf.php
<?php
// surcharge_conf.php
// Actuellement (maintenance DÉSACTIVÉE)
$GLOBALS['bCoupureMaintenance'] = false;
2. Passer à true
<?php
// surcharge_conf.php
// MAINTENANCE ACTIVÉE
$GLOBALS['bCoupureMaintenance'] = true;
3. Tester
Accéder à n'importe quelle URL :
http://localhost:8080/
http://localhost:8080/admin
http://localhost:8080/n-importe-quoi
Résultat : Page de maintenance affichée partout ✅
Désactiver le mode maintenance
Revenir à false dans surcharge_conf.php :
$GLOBALS['bCoupureMaintenance'] = false;
L'application redevient normale.
Personnaliser l'apparence
Le message
Éditer modules/easy2do/vues/maintenance.html :
<!-- modules/easy2do/vues/maintenance.html -->
<div class="bloc-texte">
<p>Maintenance</p>
<p>Nous revenons vite !</p> ← Votre message ici
</div>
Les styles
Modifier templates/commun/maintenance.css :
- Couleurs
- Dégradé de fond
- Animations (l'icône flotte déjà 🛠️)
- Taille du bloc
Le logo
Le framework charge automatiquement depuis :
institution/img/logo.png
Remplacer simplement ce fichier. Sinon, éditer AffichageHTML.class.php ligne 272 :
.logo {
background-image: url('/img/mon-logo.svg');
}
État actuel de votre projet
| Composant | État |
|---|---|
| Vue HTML | ✅ Existe |
| Styles CSS | ✅ Existe (moderne + animations) |
| Gestion du mode | ✅ Gérée nativement par le framework |
| Variable de contrôle | ✅ $GLOBALS['bCoupureMaintenance'] |
Aucun code à créer. Juste à flip le booléen !
Comment ça fonctionne en détail
Le framework écoute cette variable :
// core/lib/interne/PHP/AffichageHTML.class.php (ligne 122)
$this->bCoupureMaintenance = isset($GLOBALS['bCoupureMaintenance']) === true
&& $GLOBALS['bCoupureMaintenance'] === true;
// Puis (ligne 259)
if ($this->bCoupureMaintenance === true) {
$szContenuModele = $this->szGetContenuFichierHTML(
$this->szGetFichierPourInclusion('modules', 'easy2do/vues/maintenance.html')
);
}
// Et (ligne 267)
if ($this->bCoupureMaintenance === true) {
$this->bSetFeuilleStyle(
$this->szGetFichierPourInclusion('templates', 'commun/maintenance.css', 'url')
);
}
Voilà. C'est tout. Le framework fait le reste.
Avancé : Activer/désactiver via une condition
Si vous voulez activer la maintenance conditionnellement (ex: par heure, par IP, etc) :
// surcharge_conf.php
// Maintenance active seulement entre 20h et 21h
$heure = (int)date('H');
$GLOBALS['bCoupureMaintenance'] = ($heure >= 20 && $heure < 21);
// Ou : Maintenance sauf pour les admins
$bUserIsAdmin = isset($_SESSION['nProfil']) && $_SESSION['nProfil'] === 0;
$GLOBALS['bCoupureMaintenance'] = true && !$bUserIsAdmin;
// Ou : Maintenance sauf sur cette IP
$GLOBALS['bCoupureMaintenance'] = $_SERVER['REMOTE_ADDR'] !== '192.168.1.100';
Résumé
| Action | Fichier | Ligne |
|---|---|---|
| Activer maintenance | surcharge_conf.php | $GLOBALS['bCoupureMaintenance'] = true; |
| Personnaliser message | modules/easy2do/vues/maintenance.html | Éditer le texte |
| Personnaliser styles | templates/commun/maintenance.css | Éditer le CSS |
| Changer le logo | institution/img/logo.png | Remplacer l'image |
Voilà tout ! 🚀