Skip to content
Anton edited this page Oct 29, 2013 · 13 revisions

Описание

Компонент для организации так называемых flash-сообщений - т.е. уведомлений от системы пользователю. Данные сообщения завязаны на Translator, так что нет необходимости лишний раз его дёргать.

Технология Adobe Flash тут ни при чём

Настройки

Нет

Использование

Данные сообщения одинаково работают как с обычными HTTP запросами, так и с AJAX запросами:

<?php
// from controller
$this->getMessages()->addNotice($text)
$this->getMessages()->addWarning($text)
$this->getMessages()->addError($text)

Внутри методов пакета идёт автоматический вызов переводчика Translate, так что нет необходимости оборачивать текст сообщения в обёртку __(..)

Если после отработки кода скрипта необходимо сделать перенаправление на другую страницу, то дополнительных манипуляций не требуется, достаточно будет использовать средства самого фреймворка:

<?php
// from controller
$this->getMessages()->addNotice('Thank you');
$this->redirect($url);

Для вывода сообщений в шаблоне:

<?php
if (app()->hasMessages()) {
    $messages = app()->getMessages()->popAll();
    foreach ($messages as $type => $set) {
        echo "<h3>$type</h3>"
        foreach ($set as $message) {
            echo "<p>$message</p>";
        }
    }
}

Для вывода сообщений с использованием bluz.notify.js встроенного в skeleton:

<?php if (app()->hasMessages()):
    // JS not allow read headers of current request, only for XMLHTTPRequests :(
    ?>
    <script>
        require(['bluz.notify'], function(notify) {
            notify.set(<?=json_encode(app()->getMessages()->popAll())?>);
        });
    </script>
<?php endif; ?>

Clone this wiki locally