4 include_once
'Services/Search/classes/class.ilSearchBaseGUI.php';
6 define(
'SEARCH_FAST',1);
7 define(
'SEARCH_DETAILS',2);
8 define(
'SEARCH_AND',
'and');
9 define(
'SEARCH_OR',
'or');
44 $lng->loadLanguageModule(
"search");
46 $this->obj_types = array (
47 "lms" => $lng->txt(
"learning_resources"),
48 "glo" => $lng->txt(
"objs_glo"),
49 "wiki" => $lng->txt(
"objs_wiki"),
50 "mcst" => $lng->txt(
"objs_mcst"),
51 "fil" => $lng->txt(
"objs_file"),
52 "frm" => $lng->txt(
"objs_frm"),
53 "exc" => $lng->txt(
"objs_exc"),
54 "tst" => $lng->txt(
"search_tst_svy"),
55 "mep" => $lng->txt(
"objs_mep")
60 $this->form->checkInput();
61 reset($this->obj_types);
63 $new_search = isset(
$_POST[
'cmd'][
'performSearch']) ?
true :
false;
65 foreach($this->obj_types as $k =>
$t)
74 $this->root_node =
$_SESSION[
'search_root'] ?
$_SESSION[
'search_root'] : ROOT_FOLDER_ID;
77 $this->
setString(
$_POST[
'search'][
'string'] ?
$_POST[
'search'][
'string'] : $_SESSION[
'search'][
'string']);
78 #$this->setDetails($_POST['search']['details'] ? $_POST['search']['details'] : $_SESSION['search']['details']);
79 $this->
setDetails($new_search ?
$_POST[
'search'][
'details'] : $_SESSION[
'search'][
'details']);
91 $_SESSION[
'search'][
'type'] = $this->type = $a_type;
103 $_SESSION[
'search'][
'combination'] = $this->combination = $a_combination;
107 return $this->combination ? $this->combination :
SEARCH_OR;
115 $_SESSION[
'search'][
'string'] = $this->
string = $a_str;
127 $_SESSION[
'search'][
'details'] = $this->details = $a_details;
131 return $this->details ? $this->details : array();
137 return $this->root_node ? $this->root_node : ROOT_FOLDER_ID;
141 $_SESSION[
'search_root'] = $this->root_node = $a_node_id;
153 $next_class = $this->ctrl->getNextClass($this);
154 $cmd = $this->ctrl->getCmd();
158 case "ilpropertyformgui":
161 $ilCtrl->setReturn($this,
"");
162 return $ilCtrl->forwardCommand($this->form);
165 case 'ilobjectcopygui':
167 include_once
'./Services/Object/classes/class.ilObjectCopyGUI.php';
169 $this->ctrl->forwardCommand($cp);
176 $cmd =
"showSavedResults";
199 include_once(
"./Services/Search/classes/class.ilSearchAutoComplete.php");
211 $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.search.html',
'Services/Search');
214 $this->tpl->setVariable(
"FORM", $this->form->getHTML());
223 $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.search_root_selector.html',
'Services/Search');
225 include_once
'Services/Search/classes/class.ilSearchRootSelector.php';
230 $exp->
setExpand(
$_GET[
"search_root_expand"] ?
$_GET[
"search_root_expand"] : $tree->readRootId());
231 $exp->setExpandTarget($this->ctrl->getLinkTarget($this,
'showSelectRoot'));
236 $this->tpl->setVariable(
"EXPLORER",$exp->getOutput());
254 include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
258 $ti =
new ilTextInputGUI($lng->txt(
"search_search_term"),
"term");
262 $dsSchema = array(
"resultsList" =>
'response.results',
263 "fields" => array(
'term'));
264 $ti->setDataSource($ilCtrl->getLinkTarget($this,
"autoComplete",
"",
false,
false));
265 $ti->setDataSourceSchema($dsSchema);
266 $ti->setDataSourceResultFormat($dsFormatCallback);
267 $ti->setDataSourceDelimiter($dsDelimiter);
268 $this->form->addItem($ti);
274 $op1 =
new ilRadioOption($lng->txt(
"search_any_word"),
"or");
275 $radg->addOption($op1);
276 $op2 =
new ilRadioOption($lng->txt(
"search_all_words"),
"and");
277 $radg->addOption($op2);
278 $this->form->addItem($radg);
281 include_once(
"./Services/Form/classes/class.ilRepositorySelectorInputGUI.php");
284 $this->form->addItem($ti);
285 $ti->readFromSession();
291 $radg->addOption($op1);
296 reset($this->obj_types);
297 foreach ($this->obj_types as $k =>
$t)
300 $cb->setChecked($details[$k]);
301 $op2->addSubItem($cb);
304 $radg->addOption($op2);
305 $this->form->addItem($radg);
309 $this->form->addCommandButton(
"performSearch", $lng->txt(
"search"));
311 $this->form->setTitle($lng->txt(
"search"));
312 $this->form->setFormAction($ilCtrl->getFormAction($this,
'performSearch'));
321 include_once
'Services/Search/classes/class.ilSearchResult.php';
330 if(count($result_obj->getResults()))
332 $this->
addPager($result_obj,
'max_page');
334 include_once
'./Services/Search/classes/class.ilSearchResultPresentation.php';
336 $presentation->setResults($result_obj->getResultsForPresentation());
337 $presentation->setSubitemIds($result_obj->getSubitemIds());
338 $presentation->setPreviousNext($this->prev_link, $this->next_link);
339 #$presentation->setSearcher($searcher);
341 if($presentation->render())
344 $this->tpl->setVariable(
'RESULTS_TABLE',$presentation->getHTML(
true));
353 $this->search_mode =
'in_results';
354 $this->search_cache->setResultPageNumber(1);
369 if(!isset(
$_GET[
'page_number']) and $this->search_mode !=
'in_results' )
372 $this->search_cache->deleteCachedEntries();
395 $result_meta =& $this->
__searchMeta($query_parser,
'keyword');
396 $result->mergeEntries($result_meta);
398 $result_meta =& $this->
__searchMeta($query_parser,
'contribute');
399 $result->mergeEntries($result_meta);
401 $result_meta =& $this->
__searchMeta($query_parser,
'title');
402 $result->mergeEntries($result_meta);
404 $result_meta =& $this->
__searchMeta($query_parser,
'description');
405 $result->mergeEntries($result_meta);
413 if($this->search_mode ==
'in_results')
415 include_once
'Services/Search/classes/class.ilSearchResult.php';
418 $old_result_obj->
read();
420 $result->diffEntriesFromResult($old_result_obj);
429 if(!count(
$result->getResults()))
436 #$message = sprintf($this->lng->txt('search_limit_reached'),$this->settings->getMaxHits());
437 #ilUtil::sendInfo($message);
443 include_once
'./Services/Search/classes/class.ilSearchResultPresentation.php';
445 $presentation->setResults(
$result->getResultsForPresentation());
446 $presentation->setSubitemIds(
$result->getSubitemIds());
447 $presentation->setPreviousNext($this->prev_link, $this->next_link);
449 if($presentation->render())
452 $this->tpl->setVariable(
'RESULTS_TABLE',$presentation->getHTML(
true));
468 $ilTabs->addTab(
"search", $this->lng->txt(
"search"),
469 $this->ctrl->getLinkTarget($this));
477 if (!$this->settings->getHideAdvancedSearch())
484 $ilTabs->addTab(
"adv_search", $this->lng->txt(
"search_advanced"),
485 $this->ctrl->getLinkTargetByClass(
'iladvancedsearchgui'));
488 $ilTabs->activateTab(
"search");
506 $result->mergeEntries($content_search->performSearch());
512 $result->mergeEntries($forum_search->performSearch());
518 $gdf_search->setFilter(array(
'gdf'));
519 $result->mergeEntries($gdf_search->performSearch());
522 $result->mergeEntries($gdf_term_search->performSearch());
528 $result->mergeEntries($exc_search->performSearch());
532 $mcst_search =& ilObjectSearchFactory::_getMediaCastSearchInstance($query_parser);
533 $result->mergeEntries($mcst_search->performSearch());
539 $result->mergeEntries($tst_search->performSearch());
545 $result->mergeEntries($mep_search->performSearch());
550 $result->mergeEntries($mob_search->performKeywordSearch());
557 $result->mergeEntries($wiki_search->performSearch());
577 include_once
'Services/Search/classes/class.ilQueryParser.php';
581 $query_parser->parse();
583 if(!$query_parser->validate())
585 return $query_parser->getMessage();
587 return $query_parser;
596 include_once
'Services/Search/classes/class.ilObjectSearchFactory.php';
603 return $obj_search->performSearch();
614 include_once
'Services/Search/classes/class.ilObjectSearchFactory.php';
624 $meta_search->setMode(
'keyword');
628 $meta_search->setMode(
'contribute');
632 $meta_search->setMode(
'title');
636 $meta_search->setMode(
'description');
639 return $meta_search->performSearch();
653 foreach($this->
getDetails() as $key => $detail_type)
708 return $filter ? $filter : array();
721 include_once(
'Services/Search/classes/class.ilUserSearchCache.php');
724 if(
$_GET[
'page_number'])
726 $this->search_cache->setResultPageNumber((
int)
$_GET[
'page_number']);
728 if(isset(
$_POST[
'cmd'][
'performSearch']))
731 $this->search_cache->save();