Центр документации
Карта сайта

Новая документация

Расширенная настройка
Разработчикам (API)

Обновленная документация 

Разработчикам (API)

Статусные сообщения

Статусные сообщения предназначены для вывода результата последнего совершенного действия или описания ошибки, если она произошла во время действия.

По умолчанию компоненты списка и формы уже содержат статусные сообщения удаления, добавления и изменения элементов. Для отображения статусных сообщений в плагине, нужно добавить соответствующие переменные в языковые файлы компонент:

%%status_del%% для компоненты списка, %%status_add%% и %%status_apply%% для компоненты формы.

Для добавления статусного сообщения используется метод AMI_Response::addStatusMessage().

При добавлении сообщения вызывается событие on_add_status_message:


НазваниеЗначениеКомментарий
modId ID модуля ami_sample
key Ключ переменной из языкового шаблона status_add
type Тип сообщения (AMI_Response::STATUS_MESSAGE)
aParams Параметры сообщения array()


Возможно три типа сообщений:

AMI_Response::STATUS_MESSAGE – обычное сообщение

AMI_Response::STATUS_MESSAGE_WARNING - предупреждение

AMI_Response::STATUS_MESSAGE_ERROR – ошибка


aParams – массив для замены в языковых переменных параметров значениями (ключ => значение).

Перед отдачей массива сообщений вызывается событие on_get_status_messages:


ПараметрОписание
aStatusMessages Массив содержащий все сообщения, подготовленные для вывода. Каждое сообщение содержит параметры: key – ключ переменной из языкового шаблона, message – локализованное сообщение, type – тип сообщения.


Для удаления всех статусных сообщений используется метод:

AMI_Response::resetStatusMessages()

Эти события позволяют влиять на статусные сообщения.


Рассмотрим добавление своего параметризованного сообщения на примере плагина ami_sample.

 

Сообщение будет выводиться при добавлении новой записи, также в сообщении будет выводиться «Имя» новой записи.

 

В контроллере модуля AmiSample_Adm добавляем обработчик события on_add_status_message.

public function __construct(AMI_Request $oRequest, AMI_Response $oResponse){
parent::__construct($oRequest, $oResponse);
// Загрузка локализации статусных сообщений
$oResponse->loadStatusMessages('_local/plugins_distr/' . $this->getModId() . '/templates/messages.lng');
// Добавление компонент фильтра, списка и формы
$this->addComponents(array('filter', 'list', 'form'));

// Обработчик события добавления статусного сообщения
AMI_Event::addHandler('on_add_status_message', array($this, 'handleAddStatusMessage'), $this->getModId());
}

В обработчике события заменяем ключ сообщения 'status_add' на новый 'status_name_add'. В параметры сообщения добавляем «Имя» добавленной записи.

    public function handleAddStatusMessage($name, array $aEvent, $handlerModId, $srcModId){
if($aEvent['key'] == 'status_add'){
$aEvent['key'] = 'status_name_add';
$aEvent['aParams'] = array('name' => AMI::getSingleton('env/request')->get('nickname'));
}

return $aEvent;
}

В языковой шаблон messages.lng добавляем новую переменную с ключом 'status_name_add'. Параметры обрамляются подчёркиваниями:

public function __construct(AMI_Request $oRequest, AMI_Response $oResponse){
parent::__construct($oRequest, $oResponse);
// Add following components: 'filter', 'list', 'form'
$this->addComponents(array('filter', 'list', 'form'));

// Add handler on adding status messages
AMI_Event::addHandler('on_add_status_message', array($this, 'handleAddStatusMessage'), $this->getModId());
}

В обработчике события заменяем ключ сообщения 'status_add' на новый 'status_name_add'. В параметры сообщения добавляем «Имя» добавленной записи.

%%status_name_add%en%%
Record with name “_name_” was added.
%%status_name_add%ru%%
Запись с именем “_name_” добавлена.
Установка и настройка Руководство пользователя Интеграция дизайна Разработчикам (API) Документация для скачивания
 2000 – 2011 © Amiro.CMS Все права защищены.
Работает на: Amiro CMS