Domanda

In un'app CakePHP 1.2 , sto usando

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

per generare messaggi come " Record modificato " ;. Funziona benissimo.

Tuttavia, voglio aggiungere un link chiamato " Ignora " che sbiadirà il messaggio. So come costruire il collegamento, ma non so come inserire nell'output del messaggio flass.

Il messaggio flash si avvolge in un tag DIV . Voglio inserire il mio codice di rifiuto in quel div, ma non so come.

È stato utile?

Soluzione 3

Capito questo: Crea un nuovo layout nella cartella dei layout:

layouts/message.ctp

In quel layout, includi la chiamata per produrre il contenuto:

<?php echo $content_for_layout; ?>

Quindi, quando si imposta il messaggio flash, specificare il layout da utilizzare:

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

Altri suggerimenti

Desideri utilizzare la funzione setflash . Se si passa a setflash una stringa vuota per $ default non avvolgerà il messaggio in un div e lo memorizzerà così com'è. In questo modo è possibile visualizzare qualsiasi markup desiderato o, come pubblicato da Justin, è possibile utilizzare un'altra pagina di visualizzazione per il messaggio in modo da non mescolare visualizzazione e controller.

Puoi farlo con jQuery:

$(document).ready(function() {

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

});

Dovrai risolverlo con un po 'di CSS, ma sono sicuro che avrai l'idea.

il modo predefinito di fare è creare un flash.ctp in / app / views / layout. Questo sovrascriverà il flash.ctp predefinito che puoi trovare in / cake / libs / view / layouts. Quindi non è necessario utilizzare il parametro aggiuntivo.

btw: funziona con tutte le viste e i layout standard di CakePHP.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top