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 ); } }