devband.replacecrm

0

Описание

Плагин для переопределения контейнеров для разных СП

Языки

  • PHP100%
год назад
README.md

devband.replacecrm

DevBand: ReplaceCrm (Переопределение CRM, СП)

Модуль позволяет определять фабрику, container, router для каждого СП со своим EntityTypeId. А также объединять табы в сделка, лидах и СП.

Модуль предназначен для переопределения классов Factory, Container, Router.

В стандартной реализации (в документации) Битрикс предлагает переопределить классы в init.php и работать со всеми сущностями: "Лиды", "Сделки", "Смарт-процессы" там (в файле php_interface/init.php), что приводит к лишним зависимостям и подключению модуля CRM на уровне init.php т.е. везде.

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

Например: Стоит задача переопределить класс Router для сущности сделки и переопределить класс Container для сущности смарт-процесса с entityTypeId равной 192

Реализация: Под каждую сущность вам необходимо создать свой модуль (вместо test указываете название вендора)

  1. test.deal
  2. test.smart192 (вместо smart192, пишите название вашей сущности смарт-процесса)

внутри каждого модуля создается файл .settings.php внутри которого пишется след:

  1. Для модуля который будет подменять сделку
  1. Для модуля который будет подменять смарт-процесс с entityTypeId = 192

Как вы могли заметить, вам необходимо внутри каждого модуля сделать классы наследующие классы которые вы хотите переопределить.

Также бонусом реализовано событие работы с табами в элементах CRM. По умолчанию битрикс дает подписаться на событие в 1 модуле, если у вас разные модули, которые будут работать с со сделкой и в каждом модуле необходимо вставить свой таб, то используйте событие "merge_onEntityDetailsTabsInitialized" модуля crm, оно позволить выводить табы из нескольких модулей!

События

МодульСобытиеОписаниеГде посмотреть
crmmerge_onEntityDetailsTabsInitializedПозволяет добавить/объединить таб в элемент сущности модуля CRM из разных модулейlocal/modules/devband.replacecrm/lib/event/crm.php
devband.replacecrmreplace_dynamic_onAddOperationПозволяет добавить свои ACTION на операцию по добавлению элемента на все сущности смарт-процессовlocal/modules/devband.replacecrm/lib/crm/service/factory/dynamic.php
devband.replacecrmreplace_dynamic_onDeleteOperationПозволяет добавить свои ACTION на операцию по удаление элемента на все сущности смарт-процессовlocal/modules/devband.replacecrm/lib/crm/service/factory/dynamic.php
devband.replacecrmreplace_dynamic_onUpdateOperationПозволяет добавить свои ACTION на операцию по обновление элемента на все сущности смарт-процессовlocal/modules/devband.replacecrm/lib/crm/service/factory/dynamic.php
devband.replacecrmreplace_after_onCrmDynamicItemAddСрабатывает ПОСЛЕ добавления элемента смарт-процессаlocal/modules/devband.replacecrm/lib/crm/service/operation/action/after/add.php
devband.replacecrmreplace_after_onCrmDynamicItemDeleteСрабатывает ПОСЛЕ удаления элемента смарт-процессаlocal/modules/devband.replacecrm/lib/crm/service/operation/action/after/delete.php
devband.replacecrmreplace_after_onCrmDynamicItemUpdateСрабатывает ПОСЛЕ обновления элемента смарт-процессаlocal/modules/devband.replacecrm/lib/crm/service/operation/action/after/update.php
devband.replacecrmreplace_before_onCrmDynamicItemAddСрабатывает ДО добавления элемента смарт-процессаlocal/modules/devband.replacecrm/lib/crm/service/operation/action/before/add.php
devband.replacecrmreplace_before_onCrmDynamicItemDeleteСрабатывает ДО удаления элемента смарт-процессаlocal/modules/devband.replacecrm/lib/crm/service/operation/action/before/delete.php
devband.replacecrmreplace_before_onCrmDynamicItemUpdateСрабатывает ДО обновления элемента смарт-процессаlocal/modules/devband.replacecrm/lib/crm/service/operation/action/before/update.php