+7 495 008 8452 пн.-пт. 10:00 – 17:00
Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.


Добавляем нотификатор в админке, Битрикс 12

В 12-й версии появился такой удобный нотификатор

4.jpg

Рассмотрим как разработчики могут добавить туда свои системные сообщения.

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

AddEventHandler('main', 'OnAdminInformerInsertItems', 'OnAdminInformerInsertItemsHandler'); function OnAdminInformerInsertItemsHandler() {       
   $arParams = array(             
      'TITLE' => 'Заголовок',             
      'COLOR' => 'green',             
      'FOOTER' => '<a href="#">Ссылка</a> в футере',             
      'ALERT' => true, //false             
      'HTML' => 'Test',   );       
CAdminInformer::AddItem($arParams); }


2.jpg

Некоторые параметры:

COLOR - их несколько вариантов,в зависимости от которых меняется не только цвет, но и иконка. Например, blue

3.jpg

Конечно же, вы можете добавлять свои стили в админке. Название класса: adm-informer-item-<COLOR>

ALERT - если он true, то ваш нотификатор будет висеть как бельмо на глазу, пока вы не выполните условия, которые он требует. Если false, то пользователь сможет его скрыть ссылкой "Скрыть лишние". Но! Удалить пользователь ваш нотификатор никак не сможет, посему логика такая:

1. Обработчик висит всегда, ИЛИ (лучше) регистрируем его когда он действительно требуется.
2. В этом обработчике проверяем условия, если они не выполнены, рисуем нотификатор. Выполнены - удаляем обработчик.

В целях оптимизации нагрузки я бы рекомендовал такую схему (например, у вашего модуля случился ахтунг, и надо сообщить об этом пользователю):

- Обычный режим модуля, ничего не делаем...
- Случается ахтунг, регистрируем обработчик с помощью RegisterModuleDependences
- Каждый вызов в обработчике рисуем нотификатор
- Ахтунг кончается, удаляем обработчик с UnRegisterModuleDependences

На этом все, но коль зашла тема нотификатор, опишу как еще вывести вот такой

1.jpg

Этот добавляется уже в базу
CAdminNotify::Add(array(          
   'MESSAGE' => 'Сообщение, быть может, содержащее <a href="/">html</a>.',          
   'TAG' => 'test_notif',          
   'MODULE_ID' => 'mymodule',          
   'ENABLE_CLOSE' => 'Y',));

5.jpg

ENABLE_CLOSE - позволяет пользователю закрыть его. Если стоит N, то закрыть он его не сможет (ахтунг), а только после выполнения ваших условий. И закрыть должны будете уже его вы, таким кодом

CAdminNotify::DeleteByModule($moduleId) //или CAdminNotify::DeleteByTag($tagId)
(выше мы регистрируем тег нотификатора и сам модуль, удалять надо как вам удобнее)

Назад в раздел

Подписаться на новые материалы раздела:












CAPTCHA