19declare(strict_types=1);
45 protected UIRenderer $ui_renderer,
66 $result_meta = $this->
searchLOM(
'keyword', $query_parser, $cache);
67 $result->mergeEntries($result_meta);
69 $result_meta = $this->
searchLOM(
'contribute', $query_parser, $cache);
70 $result->mergeEntries($result_meta);
72 $result_meta = $this->
searchLOM(
'title', $query_parser, $cache);
73 $result->mergeEntries($result_meta);
75 $result_meta = $this->
searchLOM(
'description', $query_parser, $cache);
76 $result->mergeEntries($result_meta);
79 $result = $this->
searchDetails($query_parser, $cache, $result);
86 $this->parseStartDateFromCreationFilter($cache),
87 $this->parseEndDateFromCreationFilter($cache),
88 $cache->getCopyrightFilter()
97 $view_control_infos->currentPage() === $view_control_infos->maxPages() &&
98 $result->isLimitReached()
100 $view_control_infos = $this->presenter->getViewControlInfos(
101 $view_control_infos->sortation(),
102 $view_control_infos->currentPage(),
103 $view_control_infos->maxPages() + 1,
104 $view_control_infos->pageSize(),
105 $view_control_infos->paginationAction(),
106 $view_control_infos->pageParam(),
107 $view_control_infos->sortationAction(),
108 $view_control_infos->sortationParam()
110 $state_handler->updateMaxPage($view_control_infos->maxPages());
113 $this->
renderResults($result, $cache->getQuery(), $view_control_infos);
133 $result_panel_and_modals = $this->presenter->getDirectSearchResultAsPanel(
137 $this->tpl->setVariable(
139 $this->ui_renderer->render($result_panel_and_modals)
141 } elseif ($term !==
'') {
142 $this->tpl->setOnScreenMessage(
143 GlobalTemplate::MESSAGE_TYPE_INFO,
145 $this->
lng->txt(
'search_no_match_hint'),
150 $this->tpl->setOnScreenMessage(
151 GlobalTemplate::MESSAGE_TYPE_INFO,
152 $this->
lng->txt(
'search_no_match')
160 $query_parser->setCombination(
164 $query_parser->parse();
166 if (!$query_parser->validate()) {
167 return $query_parser->getMessage();
169 return $query_parser;
180 if (($type_filter = $this->parseTypeFilter($cache)) !== []) {
181 $obj_search->setFilter($type_filter);
183 $this->parseCreationFilter($obj_search, $cache);
184 return $obj_search->performSearch();
193 if (($type_filter = $this->parseTypeFilter($cache)) !== []) {
194 $meta_search->setFilter($type_filter);
198 $meta_search->setMode(
'keyword');
202 $meta_search->setMode(
'contribute');
206 $meta_search->setMode(
'title');
210 $meta_search->setMode(
'description');
213 return $meta_search->performSearch();
221 foreach ($cache->getItemFilter() as $type => $enabled) {
229 $crs_search->setFilter([
'crs']);
235 $grp_search->setFilter([
'grp']);
241 $content_search->setFilter($this->parseTypeFilter($cache));
242 $result->
mergeEntries($content_search->performSearch());
247 $forum_search->setFilter($this->parseTypeFilter($cache));
254 $gdf_search->setFilter([
'term']);
258 $result->
mergeEntries($gdf_term_search->performSearch());
263 $exc_search->setFilter($this->parseTypeFilter($cache));
274 $tst_search->setFilter($this->parseTypeFilter($cache));
280 $mep_search->setFilter($this->parseTypeFilter($cache));
285 $mob_search->setFilter($this->parseTypeFilter($cache));
286 $result->
mergeEntries($mob_search->performKeywordSearch());
292 $wiki_search->setFilter($this->parseTypeFilter($cache));
304 $date_start = $this->parseStartDateFromCreationFilter($cache);
305 $date_end = $this->parseEndDateFromCreationFilter($cache);
307 if (is_null($date_start) && is_null($date_end)) {
318 if (!(
$options[
'date_start'] ??
false)) {
327 if (!(
$options[
'date_end'] ??
false)) {
parseCreationFilter(ilObjectSearch $search, ilUserSearchCache $cache)
parseEndDateFromCreationFilter(ilUserSearchCache $cache)
renderResults(ilSearchResult $results, string $term, ViewControlInfos $view_control_infos)
searchLOM(string $field, ilQueryParser $query_parser, ilUserSearchCache $cache)
readSavedResultsAndRenderResults(int $usr_id, ilUserSearchCache $cache, ViewControlInfos $view_control_infos)
searchObjects(ilQueryParser $query_parser, ilUserSearchCache $cache)
Search in object title, desctiption.
__construct(protected ilSearchSettings $settings, protected ilGlobalTemplateInterface $tpl, protected UIRenderer $ui_renderer, protected ResultPresenter $presenter, protected ilLanguage $lng)
performSearchAndRenderResults(int $usr_id, ilUserSearchCache $cache, ViewControlInfos $view_control_infos, SearchStateHandler $state_handler)
Note that the cache doubles here as an actual cache, but also as a data object bundling all inputs ne...
parseQueryString(string $term)
parseTypeFilter(ilUserSearchCache $cache)
searchDetails(ilQueryParser $query_parser, ilUserSearchCache $cache, ilSearchResult $result)
parseStartDateFromCreationFilter(ilUserSearchCache $cache)
static _getObjectSearchInstance(ilQueryParser $query_parser)
static _getForumSearchInstance(ilQueryParser $query_parser)
static _getMediacastSearchInstance(ilQueryParser $query_parser)
static _getGlossaryDefinitionSearchInstance(ilQueryParser $query_parser)
static _getMediaPoolSearchInstance(ilQueryParser $query_parser)
static _getExerciseSearchInstance(ilQueryParser $query_parser)
static _getWikiContentSearchInstance(ilQueryParser $query_parser)
static _getLMContentSearchInstance(ilQueryParser $query_parser)
static _getTestSearchInstance(ilQueryParser $query_parser)
setCreationDateFilterStartDate(?ilDate $day)
setCreationDateFilterEndDate(?ilDate $day)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
mergeEntries(ilSearchResult $result_obj)
merge entries of this instance and another result object
Class for storing search result.
Util class various functions, usage as namespace.
static stripSlashes(string $a_str, bool $a_strip_html=true, string $a_allow="")
Until there is a unified format for search results, rendering also has to be done seperately.
An entity that renders components to a string output.
if(!file_exists('../ilias.ini.php'))