Changer le design des flash notices en cakephp
Utiliser les flash notices c’est bien, pouvoir les styliser c’est mieux non?
Voyons comment faire cela.
Ce que vous faites
Pour lancer vos flash notices avec cakephp vous faites quelque chose comme:
<?php public function index() { $this->Session->setFlash('Super notice'); } ?>
et vous génère quelque chose comme :
<div class="message" id="flashMessage">Super notice</div>
Ce que dit la doc
Si vous lisez la doc sur les flash notices cakephp, vous tombez sur :
setFlash(string $message, string $element = 'default', array $params = array(), string $key = 'flash')
$message correspond à votre message (logique)
$element le template .ctp dans le dossier elements dans votre dossier view
$array est le tableau des params qui seront disponible sur le template « element »
$key est la clé pour l’appeler sur sur votre view (de base sur votre default.ctp
<?php echo $this->Session->flash(); ?>
Qu’est ce que ça donne en vrai?
Vous allez créer une page notice.ctp dans votre dossier app/Views/Elements avec ce contenu :
<div class="alert alert-<?php echo $type; ?>"> <button class="close" data-dismiss="alert" type="button">×</button> <?php echo $message; ?> </div>
Dans votre contrôleur, plus précisément dans votre méthode:
$this->Session->setFlash("Super notice", "notice",array('type'=>'info'));
Si vous utilisez bootstrap (ou que vous utilisez un css perso), vous pouvez générer plusieurs styles (alert-danger, alert-info etc…) grâce à la variable $type du template (et de la clé ‘type’ du tableau de la notice du contrôleur).
Votre notice est affichée grâce à cette ligne :
<?php echo $this->Session->flash(); ?>
Vous pouvez aussi utiliser le dernier élément que l’on a vu tout à l’heure de setflash « $key »
$this->Session->setFlash("Super notice", "notice",array('type'=>'info'), 'manotice');
Et il faudra par contre modifier votre
<?php echo $this->Session->flash(); ?>
en
<?php echo $this->Session->flash('manotice); ?>
Vous voilà un expert pour les flash notices en cakephp 😉
Si vous avez apprécié cet article, n’hésitez pas à le partager sur les réseaux sociaux et/ou de laisser un commentaire ci dessous.
Bon dev à vous 😉