backend_entity_autocomplete
Срабатывает во время запуска поиска при добавлении метки с символом «#» в описание задачи или в комментарий к задаче. Позволяет корректировать текст и результаты поисковых запросов, а также добавлять поиск по данным приложений, не поддерживаемых «Задачами».
Доступно начиная с версии 2.9.0.
Задачи
Входящие параметры (передаются по ссылке)
$params['term'] string Текст, набранный пользователем после символа «#» и используемый для поиска объектов в установленных приложениях.
$params['limit'] int Максимальное количество результатов, которые может показать поиск объектов.
$params['limit'] int Максимальное количество результатов, которые может показать поиск объектов.
… код плагина …
Результат работы плагина
$return
Список элементов с результатами поиска. Каждый элемент списка — массив со следующими ключами:
- []['app_id'] string Идентификатор приложения, с которым связан результат элемент результатов поиска.
- []['entity_type'] string Обозначение типа элемента.
- []['entity_title'] string Локализованное название элемента.
- []['entity_url'] string Относительный URL на найденный поиском объект, соответствующий данному элементу.
Задачи
Пример кода плагина
PHP
public function backendEntityAutocomplete(&$params)
{
$term = &$params['term'];
// Modify the term here if necessary; e.g., correct typos.
// tasksMyPluginHelper::fixTypo($term);
// Enable access to Site app's classes.
wa('site');
// E.g., search for Site app pages by their names.
$site_pages_model = new sitePageModel();
$pages = $site_pages_model
->select('id, name')
->where(
'name LIKE s:term',
[
'term' => sprintf(
'%%%s%%',
$site_pages_model->escape($term, 'like')
)
]
)
->fetchAll();
if ($pages) {
$backend_url = wa()->getConfig()->getBackendUrl();
return array_map(
function ($page) use ($backend_url) {
return [
'app_id' => 'site',
'entity_type' => 'page',
'entity_url' => sprintf(
'/%s/site/#/pages/%d',
$backend_url,
$page['id']
),
'entity_title' => $page['name'],
];
},
$pages
);
}
}









