tasks_collection_search
Позволяет обрабатывать собственные условия фильтрации задач.
Доступно начиная с версии 1.2.0.
Задачи
Входящие параметры (передаются по ссылке)
$params['collection'] object Экземпляр класса
$params['conditions'] array Список условий фильтрации задач, переданных в экземпляр класса коллекции и не обработанных стандартной логикой приложения. Каждый элемент списка — массив со следующими ключами:
$params['conditions'][]['field'] string Название параметра фильтрации задач. Обычно плагин обрабатывает только параметры, названия которых начинаются на идентификатор плагина, — чтобы не создавать конфликты с другими плагинами.
$params['conditions'][]['op'] string Обозначение оператора, который нужно использовать по отношению к указанному значению параметра.
$params['conditions'][]['value'] mixed Значение параметра, по отношению к которому нужно применять оператор.
$params['conditions'][]['expression'] string Выражение для фильтрации задач, составленное из оператора и значения, например, '>= 2001-01-01'.
tasksCollection, соответствующий текущей коллекции задач.$params['conditions'] array Список условий фильтрации задач, переданных в экземпляр класса коллекции и не обработанных стандартной логикой приложения. Каждый элемент списка — массив со следующими ключами:
$params['conditions'][]['field'] string Название параметра фильтрации задач. Обычно плагин обрабатывает только параметры, названия которых начинаются на идентификатор плагина, — чтобы не создавать конфликты с другими плагинами.
$params['conditions'][]['op'] string Обозначение оператора, который нужно использовать по отношению к указанному значению параметра.
$params['conditions'][]['value'] mixed Значение параметра, по отношению к которому нужно применять оператор.
$params['conditions'][]['expression'] string Выражение для фильтрации задач, составленное из оператора и значения, например, '>= 2001-01-01'.
… код плагина …
Результат работы плагина
Задачи
Пример кода плагина
PHP
public function tasksCollectionSearch($params)
{
/** @var tasksCollection */
$collection = $params['collection'];
foreach ((array) $params['conditions'] as $condition) {
// Process only filter parameter names that begin with this plugin's ID.
if (strpos($condition['field'], $this->id . '_') === 0) {
switch ($condition['field']) {
// E.g.; filter tasks by the the create date specified in the 'myplugin_create_date' parameter
// passed to the tasks collection.
// #/tasks/myplugin_create_date>2023-12-25&hash=inbox/
case $this->id . '_create_date':
if (
in_array($condition['op'], ['<', '<=', '=', '>', '>='])
&& preg_match('~\d{4}-\d{2}-\d{2}~', $condition['value'])
) {
$collection->addWhere(sprintf(
't.create_datetime %s "%s 00:00:00"',
$condition['op'],
$condition['value']
));
}
break;
}
}
}
}









