Система фильтров и хуков
Доступно с версии 2020.1
Хуки позволяют внедрить свой код в систему для изменения/дополнения логики работы. Фильтры позволяют изменить/дополнить результаты выполнения программы. Система аналогична хукам и фильтрам CMS Wordpress.
- Хук - это подсистема, позволяющая выполнить свой код в определенных частях системы
- Фильтр - это подсистема, позволяющая изменять данные перед выполнением основного кода системы
Подключение хуков и фильтров
Для подключения своих хуков и фильтров требуется разместить необходимые файлы в нужных местах. Для выполнения своих функций требуется её активировать.
Пример хука:
$hooks -> add_action( "task_form_before", "pluginname_form_add_fields" );
function pluginname_form_add_fields( $post = [], $data = [] ) {
// выполняем свои действия
}
Пример фильтра:
$hooks -> add_filter( 'task_doitfilter', 'pluginname_task_doit_filter' );
function pluginname_task_doit_filter( $data = [] ) {
// дополняем данные и возвращаем
return $data;
}
В этом примере мы ставим хук на открытие формы напоминания. При этом будет выполнена наша функция "pluginname_form_add_fields".
Примечание
Рекомендуется присваивать своим функциям уникальные имена, которые будут ассоциироваться с выполняемым действияем, а также иметь связку с плагином
- pluginname - уникальный префикс
- form_add_fields - то, что он делает
Для плагинов
Требуется разместить файл в папку с плагином. Поддерживается 2 вида файлов:
-
Исполняемые
Эти файлы подключаются во время работы программы, а также во время активации/деактивации плагина. Должны иметь то же имя, что и папка с плагином, но в нижнем регистре букв.
crmZarplata/crmzarplata.php
-
Деинсталляторы
Эти файлы подключаются только во время удаления плагина. Подразумевается, что в это время должны быть удалены созданные таблицы в БД, а также наработанные временные файлы
crmZarplata/uninstall.php
Для модулей
Требуется разместить файл в папку с модулем с соблюдением правила названия файлов. Файлы должны именоваться из 2-х частей:
- 1 часть. Обозначение принадлежности к хуку: hook_
- 2 часть. Наименование модуля: modulename
Конечный вид составляет следующую конструкцию:
Projects/hook_projects.php
Для чистых хуков
Хуки и фильтры можно добавлять вне рамок плагинов и модулей. В этом случае следует поместить скрипт в папку /developer/hooks/
Важно!
Система считывает все находящиеся в папке скрипты PHP
Поддерживаемые Хуки
Хук подключения/отключения/удаления/обновления плагинов
-
plugin_activate - активация плагина, во время которой в базу данных добавляются необходимые записи
$hooks -> add_action( "plugin_activate", "activate_useronline" ); function activate_useronline($argv = []) { }
-
plugin_deactivate - деактивация плагина
$hooks -> add_action( 'plugin_deactivate', 'deactivate_useronline' ); function deactivate_useronline($argv = []) { }
-
plugin_uninstall - удаление плагина
$hooks -> add_action( 'plugin_uninstall', 'uninstall_useronline' ); function uninstall_useronline($argv = []) { }
-
plugin_update - обновление плагина
$hooks -> add_action( 'plugin_update', 'update_useronline' ); function update_useronline($argv = []) { }
где $argv - массив с названием плагина ["name" => "my_plugin"], по которому можно определить, что производятся действия именно с указанным плагином
Хук подключения/отключения модулей
- module_activate - активация модуля
$hooks -> add_action( "module_activate", "activate_xmodule" ); function activate_xmodule($argv = '') { }
- module_deactivate - деактивация модуля
$hooks -> add_action( 'module_deactivate', 'deactivate_xmodule' ); function deactivate_xmodule($argv = '') { }
где $argv - код модуля
Подключение css, js и элементы к интерфейсу
- main__css - для подключения css-файлов к проекту в основном окне
- card__css - для подключения css-файлов к проекту в карточках
- main__js - для подключения собственных js-скриптов к проекту в основном окне
- card__js - для подключения собственных js-скриптов к проекту в карточках
- main__body - для подключения файлов к проекту в основном окне
- card__body - для подключения файлов к проекту в карточках
Примеры:
$hooks -> add_action( 'main__css', 'css_main_useronline' );
function css_main_useronline(){
print "<link rel=\"stylesheet\" type=\"text/css\" href=\"/plugins/userOnline/css/uo.css\">\n";
}
$hooks -> add_action( 'main__js', 'js_main_useronline' );
function js_main_useronline(){
print "<script type=\"text/javascript\" src=\"/plugins/userOnline/js/uo.js\"></script>\n";
}
Уведомления ( Notify )
- add_custom_notify - добавление собственного типа уведомлений (фильтр)
- в качестве параметра приходит массив событий в виде пар "событие" => "Название"
- необходимо дополнить массив своим значением и вернуть обратно
Пример:
$hooks -> add_filter( 'add_custom_notify', 'project_notify' );
function project_notify($events = []) {
$events = array_merge($events, ["project" => "Проекты"]);
return $events;
}
- add_custom_notify_icon - добавление собственной иконки для уведомлений (фильтр)
- в качестве параметра приходит массив:
- ключ-имя (например, project):
- icon - код из шрифта (см. /font/fontello/)
- color - css-класс из набора blue, broun, green, red, orange, fiolet, deepblue, gray2 (см. /css/style.crm.new.css)
- ключ-имя (например, project):
- необходимо дополнить массив своим значением и вернуть обратно
- в качестве параметра приходит массив:
Пример:
$hooks -> add_filter( 'add_custom_notify_icon', 'project_notify_icon' );
function project_notify_icon($icons = []) {
$icons["project"] = [
"icon" => "icon-tools",
"color" => "deepblue"
];
return $icons;
}
Уведомления ( Email )
- add_custom_notify - добавление собственного типа подписок (фильтр)
- в качестве параметра приходит массив событий в виде пар "событие" => "Название"
- необходимо дополнить массив своим значением и вернуть обратно
Пример:
function comments_subscription($events = []) {
$events["comments.new"] = "Обсуждение. Новое обсуждение";
$events["comments.answer"] = "Обсуждение. Новый ответ";
return $events;
}
Напоминания
Фильтры и действия, связанные с Напоминаниями. Позволяют добавлять свои элементы в форму напоминаний, изменять их перед сохранением Напоминания, а также выполнять собственные действия.
-
form_task_userfilter - фильтр списка сотрудников (фильтр)
- array post - входящие данные - массив данных по Напоминанию ($_REQUEST)
- следует вернуть массив с двумя значениями:
- str users - перечисление iduser с разделителем (,)
- array selected - массив выбранных значений
-
task_form_before - блок перед формой напоминания
- array post - входящие данные ($_REQUEST):
- int tid - id напоминания, если новое, то не указано
- int clid - id клиента
- int did - id сделки
- int pid - id контакта
- array post - входящие данные ($_REQUEST):
-
task_form_after - блок после формы напоминания
- array post - входящие данные ($_REQUEST):
- int tid - id напоминания, если новое, то не указано
- int clid - id клиента
- int did - id сделки
- int pid - id контакта
- array post - входящие данные ($_REQUEST):
-
task_form_doit_before - блок перед формой выполнения напоминания
- входящие данные ($_REQUEST):
- int tid - id напоминания, если новое, то не указано
- int clid - id клиента
- int did - id сделки
- int pid - id контакта
- входящие данные ($_REQUEST):
-
task_form_doit_after - блок после формы выполнения напоминания
- array post - входящие данные ($_REQUEST):
- int tid - id напоминания, если новое, то не указано
- int clid - id клиента
- int did - id сделки
- int pid - id контакта
- array post - входящие данные ($_REQUEST):
-
task_addfilter - выполнение функции перед добавлением напоминания (фильтр)
- array post - входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
- выполняется также при сохранении Экспресс-формы, Обращения, обработки Заявки
-
task_editfilter - выполнение функции перед сохранением изменений напоминания (фильтр)
- array post - входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
task_doitfilter - выполнение функции перед сохранением выполнения напоминания (фильтр)
- array post - входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
task_add - выполнение функции после добавления напоминания
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array taskdata - массив данных для Напоминания
- здесь обрабатываем данные как нам нужно
- выполняется также при сохранении Экспресс-формы, Обращения, обработки Заявки
- входящие данные
-
task_edit - выполнение функции после сохранения изменений напоминания
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array taskdata - массив данных для Напоминания
- здесь обрабатываем данные как нам нужно
- входящие данные
-
task_doit - выполнение напоминания
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array taskdata - массив данных для Напоминания
- здесь обрабатываем данные как нам нужно
- входящие данные
-
task_view - просмотр напоминания
- входящие данные
- int tid - id напоминания
- входящие данные
-
task_delete - удаление напоминания
- входящие данные
- int tid - id напоминания
- входящие данные
-
task_change_date - изменение даты (перетаскиванием)
- входящие данные
- array - массив данных ($_REQUEST)
- int tid - id напоминания
- date datum - новая дата
- time totime - новое время
- array - массив данных ($_REQUEST)
- входящие данные
Активности
Фильтры и действия, связанные с Активностями. Позволяют добавлять свои элементы в форму Активности, изменять перед сохранением Активности, а также выполнять собственные действия.
Примечание
Хуки для форм действуют только в форме добавления Активности и не действуют в других формах, где имеется блок добавления активности (Экспресс-форма, Обращение и пр.)
-
history_form_before - блок перед формой Активности
- array post - входящие данные ($_REQUEST):
- int сid - id записи активности, если новое, то не указано
- int clid - id клиента
- int did - id сделки
- int pid - id контакта
- array post - входящие данные ($_REQUEST):
-
history_form_after - блок после формы Активности
- array post - входящие данные ($_REQUEST):
- int tid - id напоминания, если новое, то не указано
- int clid - id клиента
- int did - id сделки
- int pid - id контакта
- array post - входящие данные ($_REQUEST):
-
history_addfilter - выполнение функции перед добавлением Активности (фильтр)
- array post - входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
- выполняется также при сохранении Экспресс-формы, Обращения, обработки Заявки
-
history_editfilter - выполнение функции перед сохранением изменений напоминания (фильтр)
- array post - входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
history_add - выполнение функции после добавления Активности
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array taskdata - массив данных для Напоминания
- здесь обрабатываем данные как нам нужно
- выполняется также при сохранении Экспресс-формы, Обращения, обработки Заявки
- входящие данные
-
history_edit - выполнение функции после сохранения изменений Активности
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array taskdata - массив данных для Напоминания
- здесь обрабатываем данные как нам нужно
- входящие данные
-
history_delete - удаление Активности
- входящие данные
- int id - id Активности
- входящие данные
Клиент
Фильтры и действия, связанные с Клиентом. Позволяют добавлять свои элементы в форму Клиента, изменять их перед сохранением Клиента, а также выполнять собственные действия.
-
client_form_express_before - блок перед экспресс-формой
- входящие данные ($_REQUEST)
-
client_form_express_after - блок после экспресс-формы
- входящие данные ($_REQUEST)
-
client_form_before - блок перед формой клиента
- входящие данные ($_REQUEST)
-
client_form_after - блок после формы клиента
- входящие данные ($_REQUEST)
-
client_addfilter - выполнение функции перед добавлением клиента (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
- выполняется также при сохранении Экспресс-формы, Обращения, обработки Заявки
-
client_editfilter - выполнение функции перед сохранением изменений клиента (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
- выполняется также при сохранении Экспресс-формы, Обращения, обработки Заявки
-
client_add - выполнение функции после добавления клиента
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array clientdata - массив данных для Клиента
- здесь обрабатываем данные как нам нужно
- выполняется также при сохранении Экспресс-формы, Обращения, обработки Заявки
- входящие данные
-
client_edit - выполнение функции после сохранения изменений напоминания
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array clientdata - массив данных для Клиента
- array post - массив всех пришедших из формы данных ($_REQUEST)
- здесь обрабатываем данные как нам нужно
- выполняется также при сохранении Экспресс-формы, Обращения, обработки Заявки
- входящие данные
-
client_view - просмотр Клиента
- входящие данные
- int clid - id Клиента
- входящие данные
-
client_delete - удаление Клиента
- входящие данные
- int clid - id Клиента
- входящие данные
-
client_change_user - выполнение функции после сохранения изменения ответственного за клиента
- входящие данные
- array - массив данных ($_REQUEST), в т.ч.
- int clid - id Клиента
- int newuser - iduser нового ответственного
- str reason - комментарий
- array - массив данных ($_REQUEST), в т.ч.
- входящие данные
-
client_change_recvisites - выполнение функции после сохранения изменения реквизитов клиента
- входящие данные
- array - массив данных ($_REQUEST)
- входящие данные
-
client_change_dostup - выполнение функции после сохранения изменения доступов к карточке клиента
- входящие данные
- array - массив данных ($_REQUEST)
- входящие данные
-
client_change_relation - выполнение функции после сохранения изменения типа отношений клиента
- входящие данные
- array - массив данных ($_REQUEST)
- входящие данные
-
client_change_priceLevel - выполнение функции после сохранения изменения уровня цен
- входящие данные
- array - массив данных ($_REQUEST), в т.ч.
- str priceLevel - новый уровень цен
- str oldLevel - старый уровень цен
- array - массив данных ($_REQUEST), в т.ч.
- входящие данные
Контакт
Фильтры и действия, связанные с Контактами. Позволяют добавлять свои элементы в форму Контакта, изменять их перед сохранением Контакта, а также выполнять собственные действия.
-
person_form_before - блок перед формой Контакта
- входящие данные ($_REQUEST)
-
person_form_after - блок после формы Контакта
- входящие данные ($_REQUEST)
-
person_addfilter - выполнение функции перед добавлением Контакта (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
- выполняется также при сохранении Экспресс-формы, Обращения, обработки Заявки
-
person_editfilter - выполнение функции перед сохранением изменений Контакта (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
- выполняется также при сохранении Экспресс-формы, Обращения, обработки Заявки
-
person_add - выполнение функции после добавления клиента
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array persondata - массив данных для Контакта
- здесь обрабатываем данные как нам нужно
- выполняется также при сохранении Экспресс-формы, Обращения, обработки Заявки
- входящие данные
-
person_edit - выполнение функции после сохранения изменений напоминания
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array persondata - массив данных для Контакта
- здесь обрабатываем данные как нам нужно
- выполняется также при сохранении Экспресс-формы, Обращения, обработки Заявки
- входящие данные
-
person_view - просмотр Контакта
- входящие данные
- int pid - id Контакта
- входящие данные
-
person_delete - удаление Контакта
- входящие данные
- int pid - id Контакта
- входящие данные
Сделка
Фильтры и действия, связанные со Сделкой. Позволяют добавлять свои элементы в форму Сделки, изменять их перед сохранением Сделки, а также выполнять собственные действия.
-
deal_form_before - блок перед формой Сделки
- входящие данные ($_REQUEST)
-
deal_form_after - блок после формы Сделки
- входящие данные ($_REQUEST)
-
deal_form_close_before - блок перед формой закрытия Сделки
- входящие данные ($_REQUEST)
-
deal_form_close_after - блок после формы закрытия Сделки
- входящие данные ($_REQUEST)
-
deal_form_changestep_before - блок перед формой изменения этапа Сделки
- входящие данные ($_REQUEST)
-
deal_form_changestep_after - блок после формы изменения этапа Сделки
- входящие данные ($_REQUEST)
-
deal_addfilter - выполнение функции перед добавлением Сделки (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
- выполняется также при добавлении сделки через Заявку и Обращение
-
deal_editfilter - выполнение функции перед сохранением изменений Сделки (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
- выполняется также при добавлении сделки через Заявку и Обращение
-
deal_add - выполнение функции после добавления Сделки
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array dealdata - массив данных для Сделки
- здесь обрабатываем данные как нам нужно
- выполняется также при добавлении сделки через Заявку и Обращение
- входящие данные
-
deal_edit - выполнение функции после сохранения изменений Сделки
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array dealdata - массив данных для Сделки
- здесь обрабатываем данные как нам нужно
- выполняется также при добавлении сделки через Заявку и Обращение
- входящие данные
-
deal_view - просмотр Сделки
- входящие данные
- int did - id Сделки
- входящие данные
-
deal_delete - удаление Сделки
- входящие данные
- int did - id Сделки
- входящие данные
-
deal_restore - восстановление Сделки
- входящие данные
- int did - id Сделки
- входящие данные
-
deal_close - закрытие Сделки
- входящие данные
- array - массив данных ($_REQUEST)
- входящие данные
-
deal_change_step - выполнение функции после сохранения изменения этапа Сделки
- входящие данные
- array - массив данных ($_REQUEST), в т.ч.
- int did - id Сделки
- int newuser - iduser нового ответственного
- str reason - комментарий
- array - массив данных ($_REQUEST), в т.ч.
- входящие данные
-
deal_change_user - выполнение функции после сохранения изменения ответственного за Сделку
- входящие данные
- array - массив данных ($_REQUEST), в т.ч.
- int did - id Сделки
- int newuser - iduser нового ответственного
- str reason - комментарий
- array - массив данных ($_REQUEST), в т.ч.
- входящие данные
-
deal_change_dostup - выполнение функции после сохранения изменения доступов к карточке Сделки
- входящие данные
- array - массив данных ($_REQUEST)
- входящие данные
-
deal_change_datumplan - выполнение функции после сохранения изменения плановой даты Сделки
- входящие данные
- array - массив данных ($_REQUEST)
- входящие данные
Спецификация
Фильтры и действия, связанные со Спецификацией. Позволяют добавлять свои элементы в форму, изменять их перед сохранением Спецификации, а также выполнять собственные действия.
-
speka_form_before - блок перед формой Спецификации
- входящие данные ($_REQUEST)
-
speka_form_after - блок после формы Спецификации
- входящие данные ($_REQUEST)
-
speka_addfilter - выполнение функции перед добавлением позиции Спецификации (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
speka_editfilter - выполнение функции перед сохранением изменений позиции Спецификации (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
speka_add - выполнение функции после добавления позиции Спецификации
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array spekadata - массив данных для Спецификации
- здесь обрабатываем данные как нам нужно
- входящие данные
-
speka_edit - выполнение функции после сохранения изменений позиции Спецификации
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array spekadata - массив данных для Спецификации
- здесь обрабатываем данные как нам нужно
- входящие данные
-
speka_delete - удаление позиции Спецификации
- входящие данные
- int id - id позиции Спецификации
- входящие данные
Счета
Фильтры и действия, связанные со Счетами. Позволяют добавлять свои элементы в форму, изменять их перед сохранением Счетов, а также выполнять собственные действия.
-
invoice_form_before - блок перед формой добавления/редактирования Счета
- входящие данные ($_REQUEST)
-
invoice_form_after - блок после формы добавления/редактирования Счета
- входящие данные ($_REQUEST)
-
invoice_addfilter - выполнение функции перед добавлением Счета (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
invoice_editfilter - выполнение функции перед сохранением изменений Счета (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
invoice_add - выполнение функции после добавления Счета
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array invoicedata - массив данных для Счета
- здесь обрабатываем данные как нам нужно
- входящие данные
-
invoice_edit - выполнение функции после сохранения изменений Счета
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array invoicedata - массив данных для Счета
- здесь обрабатываем данные как нам нужно
- входящие данные
-
invoice_form_express_before - блок перед формой внесения оплаты (Счет + фиксация Оплаты)
- входящие данные ($_REQUEST)
-
invoice_form_express_after - блок после формы внесения оплаты (Счет + фиксация Оплаты)
- входящие данные ($_REQUEST)
-
invoice_express_filter - выполнение функции перед внесением оплаты (Счет + фиксация Оплаты)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
invoice_express - выполнение функции после внесения оплаты (Счет + фиксация Оплаты)
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array invoicedata - массив данных для Счета
- здесь обрабатываем данные как нам нужно
- входящие данные
-
invoice_form_do_before - блок перед формой отметки Счета оплаченным
- входящие данные ($_REQUEST)
-
invoice_form_do_after - блок после формы отметки Счета оплаченным
- входящие данные ($_REQUEST)
-
invoice_dofilter - выполнение фильтра перед отметкой Счета оплаченным (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
invoice_do - выполнение функции после отметки Счета оплаченным Счета
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array invoicedata - массив данных для Счета
- здесь обрабатываем данные как нам нужно
- входящие данные
-
invoice_delete - удаление Счета
- входящие данные
- int id - id Счета
- входящие данные
-
invoice_getfilter - выполнение фильтра перед генерацией Счета
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки, дополнив или заменив их своими (например, массив tagsAttached)
Акты
Фильтры и действия, связанные с Актами. Позволяют добавлять свои элементы в форму, изменять их перед сохранением Актов, а также выполнять собственные действия.
-
akt_form_before - блок перед формой добавления/редактирования Акта
- входящие данные ($_REQUEST)
-
akt_form_after - блок после формы добавления/редактирования Акта
- входящие данные ($_REQUEST)
-
akt_addfilter - выполнение функции перед добавлением Акта (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
akt_editfilter - выполнение функции перед сохранением изменений Акта (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
akt_add - выполнение функции после добавления Акта
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array aktdata - массив данных для Акта
- здесь обрабатываем данные как нам нужно
- входящие данные
-
akt_edit - выполнение функции после сохранения изменений Акта
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array aktdata - массив данных для Акта
- здесь обрабатываем данные как нам нужно
- входящие данные
-
akt_delete - удаление Акта
- входящие данные
- int id - id Акта
- входящие данные
Документы
Фильтры и действия, связанные с Документами. Позволяют добавлять свои элементы в форму, изменять их перед сохранением Документов, а также выполнять собственные действия.
-
document_form_before - блок перед формой добавления/редактирования Документа
- входящие данные ($_REQUEST)
-
document_form_after - блок после формы добавления/редактирования Документа
- входящие данные ($_REQUEST)
-
document_addfilter - выполнение функции перед добавлением Документа (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
document_editfilter - выполнение функции перед сохранением изменений Документа (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
document_add - выполнение функции после добавления Документа
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array docdata - массив данных для Документа
- здесь обрабатываем данные как нам нужно
- входящие данные
-
document_edit - выполнение функции после сохранения изменений Документа
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array docdata - массив данных для Документа
- здесь обрабатываем данные как нам нужно
- входящие данные
-
document_generate_filter - выполнение функции перед генерацией Документа (фильтр)
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array docdata - массив данных для Документа
- здесь обрабатываем данные как нам нужно
- входящие данные
-
document_generate - генерация Документа
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array docdata - массив данных
- file - сгенерированный файл
- name - имя файла
- deid - id документа
- здесь обрабатываем данные как нам нужно
- входящие данные
-
document_send_filter - выполнение функции перед отправкой Документа по email
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array docdata - массив данных
- здесь обрабатываем данные как нам нужно
- входящие данные
-
document_send - выполнение функции после отправки Документа по email
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array docdata - массив данных
- здесь обрабатываем данные как нам нужно
- входящие данные
-
document_delete - удаление Документа
- входящие данные
- int id - id Документа
- входящие данные
Обращения
Фильтры и действия, связанные с Обращениями. Позволяют добавлять свои элементы в форму, изменять их перед добавлением Обращений, а также выполнять собственные действия.
-
entry_form_before - блок перед формой Обращения
- входящие данные ($_REQUEST)
-
entry_form_after - блок после формы Обращения
- входящие данные ($_REQUEST)
-
entry_addfilter - выполнение функции перед добавлением Обращения (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
entry_editfilter - выполнение функции перед сохранением изменений Обращения (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
entry_add - выполнение функции после добавления Обращения
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array entrydata - массив данных для Обращения
- здесь обрабатываем данные как нам нужно
- входящие данные
-
entry_edit - выполнение функции после сохранения изменений напоминания
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array entrydata - массив данных для Обращения
- array post - массив всех пришедших из формы данных ($_REQUEST)
- здесь обрабатываем данные как нам нужно
- входящие данные
Заявки
Фильтры и действия, связанные с Заявками. Позволяют добавлять свои элементы в форму, изменять их перед обработкой Заявок, а также выполнять собственные действия.
-
lead_form_before - блок перед формой добавления/редактирования Заявки
- входящие данные ($_REQUEST)
-
lead_form_after - блок после формы добавления/редактирования Заявки
- входящие данные ($_REQUEST)
-
lead_addfilter - выполнение функции перед добавлением Заявки (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
lead_editfilter - выполнение функции перед сохранением изменений Заявки (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
lead_add - выполнение функции после добавления Заявки
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array leaddata - массив данных для Заявки
- здесь обрабатываем данные как нам нужно
- входящие данные
-
lead_edit - выполнение функции после сохранения изменений Заявки
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array leaddata - массив данных для Заявки
- здесь обрабатываем данные как нам нужно
- входящие данные
-
lead_workitform_before - блок перед формой обработки Заявки
- входящие данные ($_REQUEST)
-
lead_workitform_after - блок после формы обработки Заявки
- входящие данные ($_REQUEST)
-
lead_workitfilter - выполнение функции перед обработкой Заявки (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
lead_workit - выполнение функции после обработки Заявки
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array leaddata - массив данных для Заявки
- здесь обрабатываем данные как нам нужно
- входящие данные
-
lead_delete - удаление Заявки
- входящие данные
- int id - id Акта
- входящие данные
-
lead_setuserform_before - блок перед формой обработки Заявки
- входящие данные ($_REQUEST)
-
lead_setuserform_after - блок после формы обработки Заявки
- входящие данные ($_REQUEST)
-
lead_setuserfilter - выполнение функции перед обработкой Заявки (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
lead_setuser - выполнение функции после обработки Заявки ( если назначается куратор )
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array leaddata - массив данных для Заявки
- здесь обрабатываем данные как нам нужно
- входящие данные
-
lead_close - выполнение функции после обработки Заявки ( если заявка закрывается )
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array leaddata - массив данных для Заявки
- здесь обрабатываем данные как нам нужно
- входящие данные
Проекты
Фильтры и действия, связанные с Проектами. Позволяют добавлять свои элементы в форму, изменять их перед сохранением Проектов, а также выполнять собственные действия.
-
project_form_before - блок перед формой добавления/изменения Проекта
- входящие данные ($_REQUEST)
-
project_form_after - блок после формы добавления/изменения Проекта
- входящие данные ($_REQUEST)
-
project_addfilter - выполнение функции перед добавлением Проекта (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
project_editfilter - выполнение функции перед сохранением изменений Проекта (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
project_add - выполнение функции после добавления Проекта
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array projectdata - массив данных для Проекта
- здесь обрабатываем данные как нам нужно
- входящие данные
-
project_edit - выполнение функции после изменения Проекта
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array projectdata - массив данных для Проекта
- здесь обрабатываем данные как нам нужно
- входящие данные
-
project_delete - удаление Проекта
- входящие данные
- int id - id Проекта
- входящие данные
-
project_statusform_before - блок перед формой изменения статуса Проекта
- входящие данные ($_REQUEST)
-
project_statusform_after - блок после формы изменения статуса Проекта
- входящие данные ($_REQUEST)
-
project_statusfilter - выполнение функции перед сохранением изменений статуса Проекта (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
project_status - выполнение функции после изменения статуса Проекта
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array projectdata - массив данных для Проекта
- здесь обрабатываем данные как нам нужно
- входящие данные
-
projectwork_form_before - блок перед формой добавления/изменения Работы
- входящие данные ($_REQUEST)
-
projectwork_form_after - блок после формы добавления/изменения Работы
- входящие данные ($_REQUEST)
-
projectwork_addfilter - выполнение функции перед добавлением Работы (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
projectwork_editfilter - выполнение функции перед сохранением изменений Работы (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
projectwork_add - выполнение функции после добавления Работы
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array workdata - массив данных для Работы
- здесь обрабатываем данные как нам нужно
- входящие данные
-
projectwork_edit - выполнение функции после изменения Работы
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array workdata - массив данных для Работы
- здесь обрабатываем данные как нам нужно
- входящие данные
-
projectwork_delete - удаление Работы
- входящие данные
- int id - id Работы
- входящие данные
-
projectwork_statusform_before - блок перед формой изменения статуса Работы
- входящие данные ($_REQUEST)
-
projectwork_statusform_after - блок после формы изменения статуса Работы
- входящие данные ($_REQUEST)
-
projectwork_statusfilter - выполнение функции перед сохранением изменений статуса Работы (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
projectwork_status - выполнение функции после изменения статуса Работы
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array workdata - массив данных для Работы
- здесь обрабатываем данные как нам нужно
- входящие данные
Бюджет
Фильтры и действия, связанные с Бюджетом. Позволяют добавлять свои элементы в форму, изменять их перед сохранением, а также выполнять собственные действия.
-
budjet_form_before - блок перед формой добавления/редактирования/клонирования Расхода
- входящие данные ($_REQUEST)
-
budjet_form_after - блок после формы добавления/редактирования Расхода
- входящие данные ($_REQUEST)
-
budjet_addfilter - выполнение функции перед добавлением Расхода (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
budjet_editfilter - выполнение функции перед сохранением изменений Расхода (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
budjet_add - выполнение функции после добавления Расхода
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array budjetdata - массив данных для Расхода
- здесь обрабатываем данные как нам нужно
- входящие данные
-
budjet_edit - выполнение функции после сохранения изменений Расхода
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array budjetdata - массив данных для Расхода
- здесь обрабатываем данные как нам нужно
- входящие данные
-
budjet_moveform_before - блок перед формой перемещения средств
- входящие данные ($_REQUEST)
-
budjet_moveform_after - блок после формы перемещения средств
- входящие данные ($_REQUEST)
-
budjet_movefilter - выполнение функции перед перемещением средств (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
budjet_move - выполнение функции после перемещения средств
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array budjetdata - массив данных для Расхода
- здесь обрабатываем данные как нам нужно
- входящие данные
-
budjet_unmove - выполнение функции после отмены перемещения средств
- входящие данные
- int id - id Расхода
- здесь обрабатываем данные как нам нужно
- входящие данные
-
budjet_do - выполнение функции после проведения Расхода
- входящие данные
- int id - id Расхода
- здесь обрабатываем данные как нам нужно
- входящие данные
-
budjet_undo - выполнение функции после отмены проведения Расхода
- входящие данные
- int id - id Расхода
- здесь обрабатываем данные как нам нужно
- входящие данные
-
budjet_delete - удаление Расхода
- входящие данные
- int id - id Расхода
- входящие данные
Карточки
В этом разделе описаны возможности вставки своих элементов в карточки Клиентов, Контактов, Сделок
- card_tab - массив данных, требуемый для добавления новой вкладки
- входящие данные
- str type - тип карточки: client, contact, deal, project, workplan
- int id - id записи, соответственно: clid, pid, did, projectid, id
- ожидаемые данные
- array tab
- str name - имя вкладки ( латиница, без пробелов )
- str title - название вкладки ( отображается )
- str icon - класс иконки ( см. /font/fontello/demo.html )
- str url - адрес скрипта, загружаемого во вкладку
- array tab
- входящие данные
Пример применения:
$hooks -> add_filter( "card_tab", "schat_card_tab" );
function schat_card_tab($tab = [], $params = []){
if($params['type'] == 'client' && $params['clid'] > 0){
$tab[] = [
"name" => "schat",
"title" => "Диалоги",
"class" => "",
"icon" => "icon-chat",
"url" => "/socialChats/php/card.php"
];
}
return $tab;
}