Добавить управление отклонением к выходу session-flash () в CakePHP - PullRequest
0 голосов
/ 24 сентября 2008

В приложении CakePHP 1.2 я использую

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

для вывода сообщений типа «Запись отредактирована». Работает отлично.

Однако я хочу добавить ссылку «Отклонить», которая приведет к исчезновению сообщения. Я знаю, как создать ссылку, но не знаю, как вставить в вывод сообщения flass.

Flash-сообщение упаковывается в DIV tag. Я хочу вставить свой код отклонения в этот раздел, но я не знаю, как.

Ответы [ 4 ]

1 голос
/ 14 апреля 2009

Вы можете достичь этого с помощью jQuery:

$(document).ready(function() {

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

});

Вам понадобится добавить немного CSS, но я уверен, что вы поняли.

1 голос
/ 24 сентября 2008

Вы хотите использовать функцию setflash . Если вы передадите setflash пустую строку для $ default, она не будет переносить ваше сообщение в div и просто сохранит его как есть. Таким образом, вы можете отображать любую разметку, которую хотите, или, как Джастин опубликовал, вы можете использовать другую страницу просмотра для своего сообщения, чтобы не смешивать свой вид и контроллеры.

1 голос
/ 24 сентября 2008

понял это: Создайте новый макет в папке макетов:

layouts/message.ctp

В этот макет включите вызов для вывода содержимого:

<?php echo $content_for_layout; ?>

Затем, когда вы установите флэш-сообщение, укажите используемый макет:

$this->Session->setFlash('Your record has been created! Wicked!','message');
0 голосов
/ 12 января 2009

по умолчанию это создать flash.ctp в вашем / app / views / layouts. Это переопределит flash.ctp по умолчанию, который вы можете найти в / cake / libs / view / layouts. Поэтому вам не нужно использовать дополнительный параметр.

Кстати: это работает для всех стандартных видов и макетов CakePHP.

...