19declare(strict_types=1);
45 protected UIRenderer $ui_renderer,
62 $filter_query .=
'+( ';
64 $filter_query .=
'OR';
66 $filter_query .= (
' ' . $filter_settings[$obj][
'filter'] .
' ');
68 $filter_query .=
') ';
80 $mime_query .= (
' ' . $filter_settings[$mime][
'filter'] .
' ');
88 $filter_query = $filter_query .
' ' . $mime_query .
' ' . $cdate_query .
' ' . $copyright_query;
92 $query =
' +(' . $query .
')';
102 $filter->setCandidates($searcher->getResult());
105 if ($filter->getResultObjIds()) {
106 $searcher->highlight($filter->getResultObjIds());
115 $filter->isLimitReached()
117 $view_control_infos = $this->presenter->getViewControlInfos(
120 $view_control_infos->
maxPages() + 1,
138 if (!strlen($cache->getQuery())) {
139 $this->tpl->setOnScreenMessage(
141 $this->
lng->txt(
'search_no_match')
153 $filter->loadFromDb();
156 $searcher->highlight($filter->getResultObjIds());
158 $this->renderResults($filter, $searcher->getHighlighter(), $cache->
getQuery(), $view_control_infos);
167 if ($filter->getResults() && $highlighter !== null) {
168 $result_panel_and_modals = $this->presenter->getLuceneSearchResultAsPanel(
173 $this->tpl->setVariable(
175 $this->presenter->replacePlaceholders($this->ui_renderer->render($result_panel_and_modals))
177 } elseif ($term !==
'') {
178 $this->tpl->setOnScreenMessage(
179 GlobalTemplate::MESSAGE_TYPE_INFO,
181 $this->
lng->txt(
'search_no_match_hint'),
186 $this->tpl->setOnScreenMessage(
187 GlobalTemplate::MESSAGE_TYPE_INFO,
188 $this->
lng->txt(
'search_no_match')
197 if (!(
$options[
'date_start'] ??
false) && !(
$options[
'date_end'] ??
false)) {
203 if ((
$options[
'date_start'] ??
false)) {
206 if ((
$options[
'date_end'] ??
false)) {
210 if ($start && is_null($end)) {
213 } elseif ($end && is_null($start)) {
214 return '+(cdate:[* TO ' . $end->get(
IL_CAL_DATE) .
']) ';
225 if ($identifiers === []) {
230 foreach ($identifiers as $identifier) {
231 $conditions[] =
'lomCopyright:"' . $identifier .
'"';
233 return '+(' . implode(
' OR ', $conditions) .
')';
renderResults(ilLuceneSearchResultFilter $filter, ?ilLuceneHighlighterResultParser $highlighter, string $term, ViewControlInfos $view_control_infos)
readSavedResultsAndRenderResults(int $usr_id, ilUserSearchCache $cache, ViewControlInfos $view_control_infos)
parseCreationFilter(ilUserSearchCache $cache)
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...
parseCopyrightFilter(ilUserSearchCache $cache)
__construct(protected ilSearchSettings $settings, protected ilGlobalTemplateInterface $tpl, protected UIRenderer $ui_renderer, protected ResultPresenter $presenter, protected ilLanguage $lng)
Parses result XML from lucene search highlight.
Validate Lucene search results Do access checks, create ref_ids from obj_ids...
static getInstance(int $a_user_id)
Reads and parses lucene search results.
static getInstance(ilLuceneQueryParser $qp)
Get singleton instance.
Class for storing search result.
updateMaxPage(int $max_page)
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'))