messageservice · messageservice 26.100.0 Заметное

messageservice 26.100.0: публичный UI-слой редактора сообщений и селектора каналов

3 мин чтения

Крупный релиз почти без ломающих изменений: модуль обзавёлся публичным Public\UI — фабрикой, из которой любой модуль собирает редактор сообщения, селектор канала или слайдер подключений. Раньше каждый потребитель (CRM, рассылки, роботы бизнес-процессов) рисовал этот интерфейс сам.

Что решает Factory

Точка входа одна, регистрируется в .settings.php как сервис messageservice.public.ui.factory:

        $factory = \Bitrix\Main\DI\ServiceLocator::getInstance()
    ->get('messageservice.public.ui.factory');

$editor    = $factory->createEditor($scene, $context);
$selector  = $factory->createSelector($scene, $context);
$slider    = $factory->createConnectionsSlider();

    

Scene и Context — это то, ради чего фабрика вообще нужна: один и тот же редактор должен выглядеть по-разному в карточке сделки, в роботе и в рассылке — разный набор каналов, разные плейсхолдеры, разные ограничения. Вместо копии компонента на каждый случай сцена описывает контекст, а сборку берёт на себя модуль.

Слои:

  • РедакторMessageEditor\Editor, Layout, Context, Scene (+ NullScene), ViewChannel с Appearance / Backend / Icon, каналы Channel\From и Channel\To, провайдеры контента (ContentProvider\Copilot, Files, интерфейс Showable), NotificationTemplate с Placeholder, Preferences, PromoBanner.
  • Селектор каналовChannelSelector\Selector, ViewChannel.
  • Слайдер подключенийConnectionsSlider со страницами Recommendations и Sms и секциями. Компонент bitrix:messageservice.connections теперь просто дёргает фабрику.

Плюс Public\UI\SenderCode с константами SMS_PROVIDER и BITRIX24 — код провайдера перестал быть строковым литералом на стороне вызывающего.

Настройки поведения вынесены в Infrastructure\UI\Message\Editor\GlobalConfig и читаются из опций модуля: message_editor_max_visible_channels (10), message_editor_min_visible_channels (1), message_editor_recommended_max_message_length (200). JS-конфиги расширений берут GlobalConfig из ServiceLocator по FQCN — так что крутить эти числа можно централизованно, без правки бандлов.

Для IDE в модуле появился .phpstorm.meta.php на код сервиса — автодополнение по ServiceLocator::get('messageservice.public.ui.factory') работает.

Единственное изменение поведения существующего API

Sender\Sms\Wazzup::isSupported() больше не проверяет imconnector.feature_wazzup и Bitrix\Crm\Feature\TelegramActivity — остался только parent::isSupported(). Проще говоря, провайдер стал доступен там, где раньше отсекался фичефлагами. Если ваш код завязан на то, что Wazzup недоступен без включённого коннектора, — проверьте, что список провайдеров у вас не поехал.

Ломающих удалений в api.diff нет: релиз только добавляет.

Мелочи, которые видно только в диффе

  • У Wazzup появились константы CHANNEL_TYPE_TGAPI и CHANNEL_TYPE_WHATSAPP, а URL контакт-центра берётся через Integration\ImOpenLines::getContactCenterUrl() — то же сделано для Edna WhatsApp Informant.
  • Converter::convertOptions() избавился от литералов 'smsru' и 'twilio' в пользу SmsRu::ID / Twilio::ID.
  • Integration\Notifications вырос: canSendMessage, isAvailableInRegion, isLimited, isModulesInstalled, переводы шаблонов и константа SCENARIO_CRM_PAYMENT.

Что делать

  • Если вы рисуете свой выбор SMS-канала или форму отправки сообщения — посмотрите на Public\UI\Factory прежде чем поддерживать свою копию дальше. Это ровно тот случай, когда самописный компонент можно списать.
  • Проверьте доступность Wazzup в своих сценариях.
  • Новые лимиты редактора настраиваются опциями модуля, а не правкой JS.

Читайте дальше

calendar 25.195.0 Заметное Свежее

calendar 25.195.0: активность БП считает минуты встреч и перестала терять последний день

Точечный релиз вокруг одной активности бизнес-процессов — «Получить информацию из календаря». Она научилась отдавать списки заголовков и суммарные минуты встреч, а заодно у неё поправили границу выборки. Публичного PHP API релиз не меняет.

3 мин
calendar 25.197.0 Заметное Свежее

calendar 25.197.0: тип события call_sync и чат, который создаётся сам

У события календаря появился собственный тип, и первый его пользователь — синхронизированные созвоны: при создании такого события автоматически поднимается чат с гостевой ссылкой. Ломающих изменений нет, все правки сигнатур совместимы.

3 мин
bizprocdesigner 26.500.0 Заметное Свежее

bizprocdesigner 26.500.0: фильтр ноды приехал выключенным

Крупный UI-релиз редактора схем плюс новый тип конструкции — фильтр ноды. Ломающих изменений нет: все правки контроллера и DTO совместимы со старыми вызовами. Главное, что стоит знать заранее: фича спрятана за опцией и по умолчанию выключена.

3 мин
calendar 25.200.0 Ломающее Свежее

calendar 25.200.0: таймзона пользователя переехала в b_user.TIME_ZONE — и это ломающий релиз

Самый «ломающий» календарный релиз батча. Часовой пояс пользователя перестал быть настройкой календаря и стал полем пользователя, из-за чего у AJAX-экшена сохранения настроек изменилась сигнатура. Плюс вырезаны два метода `SynchronizationFeature`. Обновление стоит смотреть внимательно, если вы что-т...

4 мин
Мы используем файлы cookie для улучшения работы сайта. Продолжая использовать сайт, вы соглашаетесь с нашей политикой конфиденциальности.
AI Домовой

AI Домовой История

на связи

пишет…
Нет истории чатов
AI Домовой

Нужна авторизация

Войдите, чтобы задавать вопросы AI Домовому.

Войти