Pregunta

En una aplicación CakePHP 1.2 , estoy usando

<?php $session->flash();?>

para mostrar mensajes como " Grabar editado " ;. Está funcionando muy bien.

Sin embargo, quiero agregar un enlace llamado " Descartar " que se desvanecerá el mensaje. Sé cómo construir el enlace, pero no sé cómo insertarlo en la salida del mensaje flass.

El mensaje flash se envuelve en una etiqueta DIV . Quiero insertar mi código de salida en ese div, pero no sé cómo.

¿Fue útil?

Solución 3

Descubrí esto: Cree un nuevo diseño en su carpeta de diseños:

layouts/message.ctp

En ese diseño, incluya la llamada para generar el contenido:

<?php echo $content_for_layout; ?>

Luego, cuando configura el mensaje flash, especifique el diseño a utilizar:

$this->Session->setFlash('Your record has been created! Wicked!','message');

Otros consejos

Desea utilizar la función setflash . Si pasa setflash una cadena vacía por $ default, no envolverá su mensaje en un div y simplemente lo almacenará como está. De esta manera, puede mostrar cualquier marca que desee o, como publicó Justin, puede usar otra página de vista para su mensaje para no mezclar la vista y los controladores.

Puedes lograr esto con jQuery:

$(document).ready(function() {

    $("#flashMessage").each(function() {
        $close = $("<span class='close'>Close</span>");
        $close.click(function () {
            $(this).parent().hide("slow");
        });
        $(this).append($close);
    });

});

Tendrás que embellecerlo con un poco de CSS, pero estoy seguro de que entiendes la idea.

la forma predeterminada de hacerlo es crear un flash.ctp en su / app / views / layouts. Esto anulará el flash.ctp predeterminado que puede encontrar en / cake / libs / view / layouts. Por lo tanto, no es necesario utilizar el parámetro adicional.

btw: esto funciona para todas las vistas y diseños estándar de CakePHP.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top