Skip to content
AntonShevchuk edited this page Oct 13, 2014 · 13 revisions

Описание

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

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

Настройки

Нет

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

с версии 0.6.0 изменился способ вызова - теперь только через Proxy

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

Messages::addNotice($text)
Messages::addWarning($text)
Messages::addError($text)

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

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

// from controller
Messages::addNotice('Thank you');
$this->redirect($url);

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

use \Bluz\Proxy\Messages;

if (Messages::count()) {
    $messages = Messages::popAll();
    // as HTML
    foreach ($messages as $type => $set) {
        echo "<h3>$type</h3>"
        foreach ($set as $message) {
            echo "<p>$message</p>";
        }
    }
}

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

use \Bluz\Proxy\Messages;

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

Clone this wiki locally