Un layout automatique pour l’interface d’administration

Donc, dans cakePHP, on a un layout par défaut (par exemple, layout.ctp). Quand on a une interface d’administration, on a bien souvent besoin d’avoir un layout particulier pour cette partie (par exemple, admin_layout.ctp).

Quand on active l’admin routing (ie. que toutes les url du type /admin/moncontroleur/monaction appellent en fait la méthode admin_monaction du contrôleur moncontroleur), il ne resterait plus qu’à ajouter à toutes ces méthodes en admin_monaction une ligne de code du genre :

$this->layout=’admin_layout’;

Fastidieux…

Petite astuce, on ajoute dans la méthode beforeRender() de notre app_controller.php (celui situé dans /app) le bout de code suivant :

if (isset($this->params[CAKE_ADMIN])) {
$this->layout=’admin_layout’;
}

Où CAKE_ADMIN vaut le préfixe utilisé pour notre interface d’administration (par exemple, admin).
Et le tour est joué pour toute notre interface d’administration.

Leave a Comment