-
Notifications
You must be signed in to change notification settings - Fork 39
Messages
Компонент для организации так называемых flash-сообщений - т.е. уведомлений от системы пользователю. Данные сообщения завязаны на Translator, так что нет необходимости лишний раз его дёргать.
Технология Adobe Flash тут ни при чём
Нет
с версии 0.6.0 изменился способ вызова - теперь только через Proxy
с версии 1.0.0 добавлены опциональные параметры для подстановки вsprintf()
Данные сообщения одинаково работают как с обычными HTTP запросами, так и с AJAX запросами:
Messages::addNotice("Notice text");
Messages::addWarning("Warning text");
Messages::addError("Error text");
// @since 1.0.0
Messages::addNotice("Hello %s", 'World'); // > "Hello World"
Messages::addWarning("%d %d %d", 1, 2, 3); // > "1 2 3"
Messages::addError("%1$d+%1$d=%2$d", 1, 2); // > "1+1=2"
Внутри методов пакета идёт автоматический вызов переводчика 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:
<?php use \Bluz\Proxy\Messages; ?>
<?php 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>
<?php endif; ?>
Acl
Application
Auth
Cache
Common
— Exception
— Collection
— Container
— Helper
— Options
— Singleton
Config
Controller
— Data
— Mapper
—— Crud
—— Rest
— Reflection
Crud
— Crud Table
Db
— Row
— Table
— Relations
— Query
Debug
EventManager
Grid
Http
Layout
Logger
Mailer
Messages
Nil
Proxy
Registry
Request
Response
Router
Session
Translator
Validator
View