l10n = $l10n; $this->urlGenerator = $urlGenerator; $this->service = $folderService; } public function getId(): string { return 'news_folder'; } public function getName(): string { return $this->l10n->t('News folders'); } public function getOrder(string $route, array $routeParameters): int { if ($route === 'news.page.index') { // Active app, prefer my results return -1; } return 55; } public function search(IUser $user, ISearchQuery $query): SearchResult { $list = []; $term = strtolower($query->getTerm()); foreach ($this->service->findAllForUser($user->getUID()) as $folder) { if (strpos(strtolower($folder->getName()), $term) === false) { continue; } $list[] = new SearchResultEntry( $this->urlGenerator->imagePath('core', 'filetypes/folder.svg'), $folder->getName(), '', $this->urlGenerator->linkToRoute('news.page.index') . '#/items/folders/' . $folder->getId() ); } return SearchResult::complete($this->l10n->t('News'), $list); } }