Встраивание приложений
Разработчику приложений для Маркетплейса Битрикс24 доступен простой механизм встраивания приложения в интерфейс Битрикс24. В разделе приведены справочные данные по методам и местам встраивания. Детальное описание примеров работы представлено в курсе Приложения Битрикс24.
Встраиваемые приложения, к которым пользователь доступа не имеет, не будут отображаться в списках, пунктах меню или в других местах, где могут быть видны приложения. Исключение - встройка через тип пользовательского поля. Но в фрейм не будет передаваться авторизация, и разработчик приложения должен это учитывать.
Доступны следующие места для встраивания:
- scope CRM
- scope intranet
- scope telephony
- scope landing
- scope worgroups
- scope task
- scope calendar
- scope contact_center
- scope im
- произвольное место
- Стандартный скоуп для встроек placement
scope CRM | |
---|---|
Код | Лиды |
CRM_LEAD_LIST_MENU | Контекстное меню лидов |
CRM_LEAD_DETAIL_TAB | Пункт в верхнем меню в карточке лида |
CRM_LEAD_DETAIL_ACTIVITY | Пункт в меню таймлайна лида |
CRM_LEAD_DETAIL_TOOLBAR | Пункт в списке приложений карточки лида |
Код | Сделки |
CRM_DEAL_LIST_MENU | Контекстное меню сделок |
CRM_DEAL_DETAIL_TAB | Пункт в верхнем меню в карточке сделки |
CRM_DEAL_DETAIL_ACTIVITY | Пункт в меню таймлайна сделки |
CRM_DEAL_DETAIL_TOOLBAR | Пункт в списке приложений карточки сделки. |
Код | Контакты |
CRM_CONTACT_LIST_MENU | Контекстное меню контактов |
CRM_CONTACT_DETAIL_TAB | Пункт в верхнем меню в карточке контакта |
CRM_CONTACT_DETAIL_ACTIVITY | Пункт в меню таймлайна контакта |
CRM_CONTACT_DETAIL_TOOLBAR | Пункт в списке приложений карточки контакта. |
Код | Компании |
CRM_COMPANY_LIST_MENU | Контекстное меню компаний |
CRM_COMPANY_DETAIL_TAB | Пункт в верхнем меню в карточке компании |
CRM_COMPANY_DETAIL_ACTIVITY | Пункт в меню таймлайна компании |
CRM_COMPANY_DETAIL_TOOLBAR | Пункт в списке приложений карточки компании. |
Код | Счета |
CRM_INVOICE_LIST_MENU | Контекстное меню счетов |
Код | Предложения |
CRM_QUOTE_LIST_MENU | Контекстное меню предложений |
Код | Дела |
CRM_ACTIVITY_LIST_MENU | Контекстное меню дел |
Код | CRM-аналитика |
CRM_ANALYTICS_MENU | Меню CRM-аналитики |
Код | Смарт-процессы |
Коды аналогичны кодам для любых сущностей CRM. Необходимо только добавить DYNAMIC. Например: CRM_DYNAMIC_185_LIST_MENU CRM_DYNAMIC_185_DETAIL_TAB CRM_DYNAMIC_185_DETAIL_ACTIVITY |
185 - ID конкретной сущности. |
scope intranet | |
Код | Встраивание Базы знаний |
CRM | |
CRM_FUNNELS_TOOLBAR | Кнопка в тулбаре Тунелей продаж |
CRM_ANALYTICS_TOOLBAR | Кнопка в тулбаре CRM-аналитики |
CRM_*_LIST_TOOLBAR | Кнопка около Роботов. Допустимые объекты: DEAL, LEAD, CONTACT, COMPANY, INVOICE, QUOTE. |
CRM_*_DETAIL_TOOLBAR | Кнопка в карточке сверху. Допустимые объекты: DEAL, LEAD, CONTACT, COMPANY, INVOICE, QUOTE |
CRM_*_ACTIVITY_TIMELINE_MENU | Кнопка в контекстном меню объекта (Только для объектов DEAL, LEAD). |
CRM_*_DOCUMENTGENERATOR_BUTTON | Кнопка в документах. Допустимые объекты: DEAL, LEAD, CONTACT, COMPANY, INVOICE, QUOTE |
CRM_*_ROBOT_DESIGNER_TOOLBAR | Кнопка в слайдере с роботами (Только для объектов DEAL, LEAD). |
Задачи | |
TASK_USER_LIST_TOOLBAR | Кнопка около Роботов. |
TASK_GROUP_LIST_TOOLBAR | Кнопка около Роботов. |
TASK_ROBOT_DESIGNER_TOOLBAR | Кнопка в слайдере с роботами. |
Профиль пользователя | |
USER_PROFILE_MENU | Кнопка в главном меню портала. Также доступно в скоупах user, user_brief и user_basic. |
USER_PROFILE_TOOLBAR | Кнопка в профиле . Также доступно в скоупах user, user_brief и user_basic. | scope telephony |
Код | Карточка звонка |
CALL_CARD | Карточка звонка |
Код | Статистика звонков |
TELEPHONY_ANALYTICS_MENU | Меню статистики звонков |
scope landing | |
Код | Настройки |
LANDING_SETTINGS | Меню настроек (Страницы / Сайта) |
Код | Редактирование |
LANDING_BLOCK | Пункт редактирования любого блока. |
scope worgroups | |
Код | Настройки |
SONET_GROUP_DETAIL_TAB | Закладка рабочей группы. |
scope task | |
Код | Настройки |
TASK_LIST_CONTEXT_MENU | Контекстное меню списка задач. |
TASK_VIEW_TAB | Вкладка в форме просмотра задачи |
TASK_VIEW_SIDEBAR | Боковая панель формы просмотра задачи |
TASK_VIEW_TOP_PANEL | Пункт в верхнем меню формы просмотра задачи |
scope calendar | |
Код | Настройки |
CALENDAR_GRIDVIEW | Список видов отображения календаря |
scope contact_center | |
Код | Настройки |
CONTACT_CENTER | "Квадратик" в списке Контакт центра. |
scope im | |
Код | Приложения в Новом чате |
IM_NAVIGATION | Приложение для левого меню навигации (по сути, это приложение внутри окружения чата без встраивания непосредственно в чат). |
IM_TEXTAREA | Приложение для панели над полем ввода (генерация контента в момент написания сообщения). |
IM_SIDEBAR | Приложение для сайдбара (можно создавать приложения, добавляющие дополнительные сценарии для чата – например, отдельный диск для чата или базу знаний). |
IM_CONTEXT_MENU | Приложение для открытия контекстного меню сообщения внутри чата, встраивание в пункт "Создать контент на основании" (аналогом является "Создать задачу” или "Создать встречу" на основании сообщения). |
IM_SMILES_SELECTOR | Приложение для расширения возможностей смайлов и giphy (тут могут быть свои источники картинок или смайлов). |
Произвольное место | |
Код | Настройки |
REST_APP_URI |
На каждом портале каждому приложению позволяется зарегистрировать только одну встройку методом placement.bind.
Эта встройка не имеет в интерфейсе кнопки, которая позволяет пользователю открыть её самостоятельно. Приложение может отправить ссылку на свою встройку. Для использования данной встройки ссылка должна быть в формате /marketplace/view/#APP_CODE#/, где Встройка может принимать любое количество параметров в get ключе params, например: /marketplace/view/#APP_CODE#/?params[test]=y. В этом случае в PLACEMENT_OPTIONS будет равен: [ 'test' = 'y' ]Пример: как с помощью BBCode вставить данную ссылку в чат: [url=/marketplace/view/'.$myApp['CODE'].'/?params[test]=y]uri[/url] <? $placement = 'REST_APP_URI'; $url = 'https://example.com/placement.php'; CRest::call( 'placement.bind', [ 'PLACEMENT' => $placement, 'HANDLER' => $url ] ); ?> Пример выше регистрирует на вашем портале встройку. Для данного PLACEMENT можно на портале зарегистрировать её только один раз, после этого она становится доступна для вызова. В вашем приложении вы можете разместить вашу встройку: <a href="/marketplace/view/<?=$myApp['CODE']?>/">uri</a> И разместить её в посте живой ленты: <? CRest::call('log.blogpost.add', [ 'POST_TITLE' => 'Post Title', 'POST_MESSAGE' => 'use this [url=/marketplace/view/'.$myApp['CODE'].'/?params[test]=y]uri[/url]', 'DEST' => [ 'UA' ] ]); ?> И отправить её с помощью бота в чат пользователю методом: <? CRest::call( 'imbot.message.add', [ 'DIALOG_ID' => 1, 'MESSAGE' => 'use this [url=/marketplace/view/'.$myApp['CODE'].'/?params[test]=y]uri[/url]', ] ); ?>
Ссылку можно вставить в любое текстовое поле, которое поддерживает BBCode или внутри ваших других встроек как обычную ссылку. А с помощью GET параметра params вы можете изменять отображаемые данные во встройке и использовать эту возможность в абсолютно разных сценариях, передавая любое количество параметров в GET ключе params, например: |
PAGE_BACKGROUND_WORKER |
На каждом портале каждому приложению позволяется зарегистрировать только одну встройку методом placement.bind.
Пример регистрации: CRest::call( 'placement.bind', [ 'PLACEMENT' => 'PAGE_BACKGROUND_WORKER', 'HANDLER' => 'http://portal.vlads.bx/vlads/placement/?ty=1', 'OPTIONS' => [ 'errorHandlerUrl' => 'http://portal.vlads.bx/vlads/logg.php?ty=1', ], 'LANG_ALL' => [ 'ru' => [ 'TITLE' => 'test', ] ] ] ); Данное место встройки поддерживает:
|
стандартный scope для встроек placement | |
Код | Меню |
LEFT_MENU | Левое меню |