Система фильтров и хуков SalesMan CRM
Хуки позволяют внедрить свой код в систему для изменения/дополнения логики работы. Фильтры позволяют изменить/дополнить результаты выполнения программы. Система аналогична хукам и фильтрам 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
```
Поддерживаемые Хуки
Хук подключения/отключения/удаления плагинов
- plugin_activate - активация плагина
$hooks -> add_action( "plugin_activate", "activate_useronline" );
function activate_useronline($argv = []) {
$database = $GLOBALS['database'];
$sqlname = $GLOBALS['sqlname'];
$db = $GLOBALS['db'];
$rootpath = $GLOBALS['rootpath'];
//если таблицы нет, то создаем её
$da = $db -> getOne("SELECT COUNT(*) as count FROM INFORMATION_SCHEMA.STATISTICS WHERE table_schema = '$database' and TABLE_NAME = '{$sqlname}useronline'");
if ($da == 0) {
$mes = array();
try {
$db -> query("
CREATE TABLE `{$sqlname}useronline` (
`id` INT(20) NOT NULL AUTO_INCREMENT,
`datum` DATETIME NOT NULL COMMENT 'время последней активности',
`iduser` INT(10) NOT NULL DEFAULT '0' COMMENT 'id сотрудника',
`status` VARCHAR(10) NOT NULL DEFAULT 'offline' COMMENT 'статус сотрудника',
`identity` INT(10) NOT NULL DEFAULT '1',
PRIMARY KEY (`id`)
)
COMMENT='Хранилище статусов пользователей: online/offline'
ENGINE=InnoDB
");
}
catch (Exception $e) {
$mes[] = 'Ошибка'.$e -> getMessage().' в строке '.$e -> getCode();
}
}
file_put_contents($rootpath."/cash/actions.log", json_encode_cyr($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 - код модуля
todo: добавить поддержку версий модулей и обновление
Подключение 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_freeze - заморозка/разморозка Сделки
- входящие данные
- int did - id Сделки
- string date - Дата разморозки (указывается для заморозки)
-
deal_close - закрытие Сделки
- входящие данные
- array - массив данных ($_REQUEST)
- входящие данные
-
deal_change_step - выполнение функции после сохранения изменения этапа Сделки
- входящие данные
- array - массив данных ($_REQUEST), в т.ч.
- int did - id Сделки
- int iduser - iduser автора события
- str reason - комментарий
- int step - id нового этапа
- int stepOld - id старого этапа
- str stepValue - значение нового этапа, %
- int stepValueOld - значение старого этапа, %
- 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_undo - отмена оплаты счета (доступно с релиза 27072023)
- входящие данные
- int id - id счета
- array invoicedata - массив данных
- did сделки
- autor - пользователь, выполнивший сделку
- здесь обрабатываем данные как нам нужно
- входящие данные
-
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 Акта
- входящие данные
- akt_tags_filter - выполнение функции перед генерацией Акта (фильтр)
- входящие данные
- array tags - массив тегов для Акта
- следует вернуть эти данные после обработки
- входящие данные
Документы
Фильтры и действия, связанные с Документами. Позволяют добавлять свои элементы в форму, изменять их перед сохранением Документов, а также выполнять собственные действия.
-
document_form_before - блок перед формой добавления/редактирования Документа
- входящие данные ($_REQUEST)
-
document_form_after - блок после формы добавления/редактирования Документа
- входящие данные ($_REQUEST)
-
document_number_filter - фильтр дает возможность изменить номер документа
- входящие данные
- string type - тип документа
- get_dogovor - если создается договор
- invoice - если создается счет
- get_akt - если создается акт приема-передачи
- get_aktper - если создается акт приема-передачи для сервисных сделок
- int idtype - id типа документа (таблица contract_type)
- int did - id сделки
- здесь обрабатываем данные как нам нужно и возвращаем массив, содержащий:
- int number - номер документа до применения шаблона формата номера
- string format - формат номера (если нужен) [пример: {cnum}-{MM}{YY}/{YYYY}]
- входящие данные
-
document_addfilter - выполнение функции перед добавлением Документа (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
document_editfilter - выполнение функции перед сохранением изменений Документа (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
document_add - выполнение функции после добавления Документа
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array docdata - массив данных для Документа
- здесь обрабатываем данные как нам нужно
- входящие данные
-
document_edit - выполнение функции после сохранения изменений Документа
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array docdata - массив данных для Документа
- здесь обрабатываем данные как нам нужно
- входящие данные
-
document_generate_filter - коррекция данных Документа перед генерацией (фильтр)
- входящие данные
- array docdata - массив данных для генерации Документа
- следует вернуть эти данные после обработки
- входящие данные
-
document_tags_filter - выполнение функции перед генерацией Документа (фильтр)
- входящие данные
- array tags - массив тегов для Документа
- следует вернуть эти данные после обработки
- входящие данные
-
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)
- здесь обрабатываем данные как нам нужно
- входящие данные
Контрольные точки (КТ)
Действия, связанные с КТ. Позволяют изменять данные перед обработкой, а также выполнять собственные действия.
-
cp_addfilter - выполнение функции перед добавлением КТ (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
cp_editfilter - выполнение функции перед сохранением изменений КТ (фильтр)
- входящие данные - массив данных ($_REQUEST)
- следует вернуть эти данные после обработки
-
cp_add - выполнение функции после добавления КТ
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array data - массив данных для КТ
- здесь обрабатываем данные как нам нужно
- входящие данные
-
cp_edit - выполнение функции после сохранения изменений КТ
- входящие данные
- array post - массив всех пришедших из формы данных ($_REQUEST)
- array data - массив данных для КТ
- здесь обрабатываем данные как нам нужно
- входящие данные
-
cp_doit - выполнение функции после выполнения КТ
- входящие данные
- int id - id КТ
- array data - массив данных для КТ
- здесь обрабатываем данные как нам нужно
- входящие данные
-
cp_undoit - восстановление КТ
- входящие данные
- int id - id КТ
- входящие данные
- cp_delete - удаление КТ
- входящие данные
- int id - id КТ
- входящие данные
Заявки
Фильтры и действия, связанные с Заявками. Позволяют добавлять свои элементы в форму, изменять их перед обработкой Заявок, а также выполнять собственные действия.
-
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;
}