====== Передача произвольных сообщений пользователям. Flashbox ====== Часто позникает передать пользовалю сообщение, например, об успешно выполненной операции или о возникновении какой-либо ошибки. Для этих целей есть в Limb3 такое понятие, как flashbox, идея которого в общем-то была заимствована из Ruby-on-Rails. Flashbox хранит сообщения в сесии до момента их отображения. При первом отображении сообщения из flashbox-а удаляются. ===== Добавление сообщений во flashbox ===== Flashbox - это контейнер обычных сообщений 2 видов: * обычные (уведомления) * критические (ошибки) Объект flashbox-а можно получить из toolkit-а при помощи метода **getFlashbox()**. Для добавления сообщений во flashbox есть методы: * **addError($error)** * **addMessage($message)** Тулкит также содержит методы для быстрого добавления сообщений во flashbox: * **flashMessage($message)** * **flashError($message)** Точно такие же методы есть в классе lmbController: class PollController extends lmbController { function doCreate() { $item = new Poll(); $this->useForm('poll_form'); $this->setFormDatasource($item); if($this->request->hasPost()) { $item->import($this->request->export()); if($item->trySave($this->error_list)) $this->flashMessage("Опрос {$item->getSignature()} создан"); } } } ===== Вывод сообщений ===== Для вывода сообщений в MACRO-шаблонах используется специальный тег %%{{flashbox}}%%, который передает список сообщений (массив) в переменную $flashbox. Если нужно использовать другую переменную для передачи списка, то можно воспользоваться специальным атрибутом %%{{flashbox to="$variable"}}%%. {{flashbox}} {{list using="$flashbox"}} {{list:item}} {$item.message} {{/list:item}} {{/list}} {{/flashbox}} Для вывода сообщений в WACT-шаблонах используется специальный WACT тег , который передает в тег список сообщений: Это ошибка: {$message} Это уведомление: {$message}