CakePHP: Modificar el estilo de los flashMessage
Posted by faemino | Filed under CakePHP
En los parámetros que tiene el método Session->setFlash nos encontramos con lo siguiente:
setFlash( $message, $layout = 'default', $params = array ( ), $key = 'flash' )
Nos centraremos en el segundo parámetro, $layout. Por defecto a este parámetro se le asigna el layout, default (que aún no he visto que archivo relacionado utiliza para mostrarse).
Si a la llamado a Session->setFlash de nuestro controlador, cambiamos el parámetro layout por, por ejemplo, ‘flash_contacto_error’:
$this->Session->setFlash(__('Nada es lo mismo que el nihilismo', true), 'flash_contacto_error', null);
y generamos un archivo llamado ‘flash_contacto_error.ctp’ en la carpeta /app/views/layouts con, por ejemplo el siguiente contenido:
<div class="claseMsgError" id="MsgFlash"><p><?php echo $content_for_layout; ?></p></div>
Al mostrarse ese mensaje, lo hará usando el layout que acabamos de crear. Pudiendo añadir todos los elementos HTML que necesitemos en cada ocasión.
Tags: views
May 5th, 2010 at 4:58 pm
útil!
August 30th, 2010 at 10:13 pm
$this->Session->setFlash(’Ha ocurrido un error mientras se guardaba.’, ‘default’, array(’class’ => ‘error’));
$this->redirect(array(’action’ => ‘index’));
August 30th, 2010 at 10:15 pm
creo que es mucho mas util que crear un nuevo layout
August 31st, 2010 at 8:43 am
@megalomania
En función de lo que se quiera hacer con un FlashMessage es útil conocer esta técnica. Es cierto que en la mayoría de ocasiones, pasando un class como parámetro como tu bien has propuesto será suficiente. Pero a lo largo del tiempo usando CakePHP, esta técnica me ha ayudado.
Saludos.