Question

Dans une application CakePHP 1.2 , j'utilise

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

pour générer des messages tels que "Enregistrement modifié". Cela fonctionne très bien.

Toutefois, je souhaite ajouter un lien appelé "Dismiss". cela fera disparaître le message. Je sais comment construire le lien, mais je ne sais pas comment insérer dans la sortie du message flass.

Le message flash s’enveloppe dans une balise DIV . Je veux insérer mon code de licenciement dans cette division, mais je ne sais pas comment.

Était-ce utile?

La solution 3

J'ai compris ceci: Créez une nouvelle mise en page dans votre dossier de mises en forme:

layouts/message.ctp

Dans cette présentation, incluez l'appel à la sortie du contenu:

<?php echo $content_for_layout; ?>

Ensuite, lorsque vous définissez le message flash, spécifiez la mise en page à utiliser:

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

Autres conseils

Vous souhaitez utiliser la fonction setflash . Si vous transmettez à setflash une chaîne vide pour $ default, le message ne sera pas encapsulé dans un div, il sera simplement stocké tel quel. De cette façon, vous pouvez afficher le balisage de votre choix ou, comme Justin l’a écrit, vous pouvez utiliser une autre page de vue pour votre message afin de ne pas mélanger votre vue et vos contrôleurs.

Vous pouvez y parvenir avec jQuery:

$(document).ready(function() {

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

});

Vous aurez besoin d'un peu de CSS, mais je suis sûr que vous avez compris l'idée.

La méthode par défaut consiste à créer un fichier flash.ctp dans votre / app / views / layouts. Cela remplacera le fichier flash.ctp par défaut que vous pouvez trouver dans / cake / libs / view / layouts. Vous n'avez donc pas besoin d'utiliser le paramètre supplémentaire.

btw: cela fonctionne pour toutes les vues et présentations standard de CakePHP.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top