Aller au contenu principal

Mode maintenance - Utiliser la feature native

Easy2Do gère nativement le mode maintenance. Il suffit d'une ligne pour l'activer.

C'est tout ce qu'il y a à faire

Le framework affiche automatiquement modules/easy2do/vues/maintenance.html avec les styles templates/commun/maintenance.css et le logo.

Easy2Do : 5min Total : 5min

TL;DR

Modifier une seule ligne dans surcharge_conf.php :

$GLOBALS['bCoupureMaintenance'] = true;  // true = maintenance ON

Done ! 🎉

Prérequis

ÉlémentÉtat
PHP8.4
E2D - Core2.18

Comment ça marche

Le framework Easy2Do a une variable globale native : $GLOBALS['bCoupureMaintenance']

Quand elle vaut true :

  1. AffichageHTML.class.php détecte la variable
  2. ✅ Remplace toute page par modules/easy2do/vues/maintenance.html
  3. ✅ Applique automatiquement templates/commun/maintenance.css
  4. ✅ 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 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 modeGé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é

ActionFichierLigne
Activer maintenancesurcharge_conf.php$GLOBALS['bCoupureMaintenance'] = true;
Personnaliser messagemodules/easy2do/vues/maintenance.htmlÉditer le texte
Personnaliser stylestemplates/commun/maintenance.cssÉditer le CSS
Changer le logoinstitution/img/logo.pngRemplacer l'image

Voilà tout ! 🚀