Bonsoir à tous,
Je cherche à créer un système de mise hors ligne / en ligne de mon site sous cake php.
Je m'explique :
Dans le panneau d'admin, une page réservé à la gestion du site permet de mettre en ligne ou non le site.
Si on choisit en ligne, pas de problème le site est en ligne, si on choisit hors ligne, tous les visiteurs sont redirigés automatiquement sans voir le site vers une page de maintenance qui afficherait un message du style
"Notre site est actuellement en maintenance"
sauf les adresse IP qui seront déclarés manuellement sur le panneau admin au préalable dans la table (ex : le webmaster).

En php simple j'arrivais simplement à faire un tel système qui me permettait de mettre hors ligne le site le temps d'un mise à jour et de faire des essais, mais sous cake, je ne sais pas par où commencer.

Une petite piste ou idée pour réaliser cela ?

3 réponses


Grafikart
Réponse acceptée

Met la logique qui bloque les pages dans l'appController en vérifiant l'existence par exemple du fichier .maintenance (c'est une idée ya plusieurs solutions)

Boobha
Réponse acceptée

dans l'appcontroller tu pourrais mettre dans le beforeFilter un truc du genre :

public function beforeFilter(){
    // Maintenance
    $maintenance = 0; // valeur que tu pourrais aller chercher en bdd par exemple
    if($maintenance==1){
        echo "Site en maintenance";
        die();
    }
}

Evidemment, il y a plusieurs façon de faire ...

flo69
Auteur

Effectivement il fallait passer par l'AppController. Boobha ta réponse aussi est correcte j'ai fais un select de l'état du site, si il retourne 0 (désactivé) il redirige vers un dossier /off dans le dossier webroot.
Ensuite une petite gestion en administration + vérification des IP autorisés à voir le site et le système est bouclé !
Merci de vos réponses
++