39 include_once
'Services/Search/classes/class.ilSearchBaseGUI.php';
40 include_once
'Services/MetaData/classes/class.ilMDUtilSelect.php';
41 include_once
'./Services/Search/classes/Lucene/class.ilLuceneAdvancedSearchFields.php';
70 $ilTabs = $DIC[
'ilTabs'];
72 $this->tabs_gui = $ilTabs;
74 parent::__construct();
76 $this->lng->loadLanguageModule(
'meta');
84 return ROOT_FOLDER_ID;
96 $rbacsystem = $DIC[
'rbacsystem'];
98 $next_class = $this->ctrl->getNextClass($this);
99 $cmd = $this->ctrl->getCmd();
101 switch ($next_class) {
102 case "ilpropertyformgui":
105 case 'ilobjectcopygui':
107 $this->ctrl->setReturn($this,
'');
109 include_once
'./Services/Object/classes/class.ilObjectCopyGUI.php';
111 $this->ctrl->forwardCommand($cp);
117 switch (
$_SESSION[
'search_last_sub_section']) {
118 case self::TYPE_ADV_MD:
119 $cmd =
"showSavedAdvMDResults";
123 $cmd =
"showSavedResults";
137 $this->options = array();
138 $this->search_cache->setQuery(array());
139 $this->search_cache->save();
146 $this->search_mode =
'in_results';
147 $this->search_cache->setResultPageNumber(1);
159 $this->search_cache->setRoot((
int)
$_POST[
'root_id']);
160 $this->search_cache->setResultPageNumber(1);
161 $this->search_cache->setQuery(array(
'lom_content' =>
ilUtil::stripSlashes($_POST[
'queryString'])));
162 $this->search_cache->save();
164 $this->options = $this->search_cache->getQuery();
165 $this->options[
'type'] =
'all';
180 if (!isset(
$_GET[
'page_number'])
and $this->search_mode !=
'in_results') {
182 $this->search_cache->deleteCachedEntries();
185 if (isset(
$_POST[
'query'])) {
186 $this->search_cache->setQuery(
$_POST[
'query']);
190 include_once
'Services/Search/classes/class.ilSearchResult.php';
238 if ($this->search_mode ==
'in_results') {
239 include_once
'Services/Search/classes/class.ilSearchResult.php';
244 $res->diffEntriesFromResult($old_result_obj);
251 if (!count(
$res->getResults())) {
255 if (
$res->isLimitReached()) {
256 #$message = sprintf($this->lng->txt('search_limit_reached'),$this->settings->getMaxHits()); 257 #ilUtil::sendInfo($message); 262 include_once
'./Services/Search/classes/class.ilSearchResultPresentation.php';
264 $presentation->setResults(
$res->getResultsForPresentation());
265 $presentation->setPreviousNext($this->prev_link, $this->next_link);
267 if ($presentation->render()) {
268 $this->tpl->setVariable(
'RESULTS', $presentation->getHTML(
true));
280 if (is_object($this->form)) {
284 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php');
285 include_once(
'Services/Form/classes/class.ilPropertyFormGUI.php');
287 $this->form->setFormAction($this->ctrl->getFormAction($this,
'performAdvMDSearch'));
288 $this->form->setTitle($this->lng->txt(
'adv_md_search_title'));
289 $this->form->addCommandButton(
'performAdvMDSearch', $this->lng->txt(
'search'));
290 #$this->form->setSubformMode('right'); 292 $content =
new ilTextInputGUI($this->lng->txt(
'meta_title') .
'/' .
293 $this->lng->txt(
'meta_keyword') .
'/' .
294 $this->lng->txt(
'meta_description'),
'title');
295 $content->
setValue($this->options[
'title']);
296 $content->setSize(30);
297 $content->setMaxLength(255);
300 $group->setValue($this->options[
'title_ao']);
301 $radio_option =
new ilRadioOption($this->lng->txt(
"search_any_word"), 0);
302 $group->addOption($radio_option);
303 $radio_option =
new ilRadioOption($this->lng->txt(
"search_all_words"), 1);
304 $group->addOption($radio_option);
306 $this->form->addItem($content);
309 $options[
'adv_all'] = $this->lng->txt(
'search_any');
311 $options[$obj_type] = $this->lng->txt(
'objs_' . $obj_type);
313 $type->setOptions($options);
314 $type->setValue($this->options[
'type']);
315 $this->form->addItem(
$type);
317 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecordGUI.php');
319 $record_gui->setPropertyForm($this->form);
320 $record_gui->setSearchValues($this->options);
321 $record_gui->parse();
336 if (!isset(
$_GET[
'page_number'])
and $this->search_mode !=
'in_results') {
338 $this->search_cache->delete();
341 include_once
'Services/Search/classes/class.ilSearchResult.php';
349 if ($this->search_mode ==
'in_results') {
350 include_once
'Services/Search/classes/class.ilSearchResult.php';
355 $res->diffEntriesFromResult($old_result_obj);
363 if (!count(
$res->getResults())) {
367 if (
$res->isLimitReached()) {
368 #$message = sprintf($this->lng->txt('search_limit_reached'),$this->settings->getMaxHits()); 369 #ilUtil::sendInfo($message); 374 include_once
'./Services/Search/classes/class.ilSearchResultPresentation.php';
376 $presentation->setResults(
$res->getResultsForPresentation());
377 $presentation->setPreviousNext($this->prev_link, $this->next_link);
379 if ($presentation->render()) {
380 $this->tpl->setVariable(
'RESULTS', $presentation->getHTML(
true));
394 $this->options =
$_SESSION[
'search_adv_md'];
397 $this->tabs_gui->setSubTabActive(
'search_adv_md');
399 $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.advanced_adv_search.html',
'Services/Search');
402 $this->tpl->setVariable(
'SEARCH_FORM', $this->form->getHTML());
413 $tree = $DIC[
'tree'];
415 include_once
'./Services/Form/classes/class.ilPropertyFormGUI.php';
418 $this->form->setFormAction($this->ctrl->getFormAction($this,
'performSearch'));
419 $this->form->setTitle($this->lng->txt(
'search_advanced'));
420 $this->form->addCommandButton(
'performSearch', $this->lng->txt(
'search'));
421 $this->form->addCommandButton(
'reset', $this->lng->txt(
'reset'));
423 foreach ($this->
fields->getActiveSections() as $definition) {
424 if ($definition[
'name'] !=
'default') {
426 $section->setTitle($definition[
'name']);
430 foreach ($definition[
'fields'] as $field_name) {
431 if (is_object($element = $this->
fields->getFormElement($this->search_cache->getQuery(), $field_name,
$this->form))) {
432 $this->form->addItem($element);
445 $ilLocator = $DIC[
'ilLocator'];
448 $this->tabs_gui->setSubTabActive(
'search_lom');
450 $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.advanced_search.html',
'Services/Search');
453 $this->tpl->setVariable(
'SEARCH_FORM', $this->form->getHTML());
461 $ilTabs = $DIC[
'ilTabs'];
462 $ilHelp = $DIC[
'ilHelp'];
464 parent::prepareOutput();
466 $ilHelp->setScreenIdComponent(
"src");
470 $this->lng->txt(
"search"),
471 $this->ctrl->getLinkTargetByClass(
'ilsearchgui')
475 $this->lng->txt(
"search_advanced"),
476 $this->ctrl->getLinkTarget($this)
478 $ilTabs->activateTab(
"adv_search");
495 include_once
'Services/Search/classes/class.ilSearchResult.php';
504 if (count($result_obj->getResults())) {
505 $this->
addPager($result_obj,
'adv_max_page');
507 include_once
'./Services/Search/classes/class.ilSearchResultPresentation.php';
509 $presentation->setResults($result_obj->getResultsForPresentation());
510 $presentation->setPreviousNext($this->prev_link, $this->next_link);
512 if ($presentation->render()) {
513 $this->tpl->setVariable(
'RESULTS', $presentation->getHTML(
true));
528 include_once
'Services/Search/classes/class.ilSearchResult.php';
537 if (count($result_obj->getResults())) {
538 $this->
addPager($result_obj,
'adv_max_page');
540 include_once
'./Services/Search/classes/class.ilSearchResultPresentation.php';
542 $presentation->setResults($result_obj->getResultsForPresentation());
543 $presentation->setPreviousNext($this->prev_link, $this->next_link);
545 if ($presentation->render()) {
546 $this->tpl->setVariable(
'RESULTS', $presentation->getHTML(
true));
555 include_once
'Services/Search/classes/class.ilObjectSearchFactory.php';
556 include_once
'Services/Search/classes/class.ilQueryParser.php';
557 include_once
'Services/Search/classes/class.ilSearchResult.php';
559 if (!$this->options[
'lom_content']) {
566 #$query_parser->setCombination($this->options['content_ao']); 568 $query_parser->parse();
570 if ($this->options[
'type'] ==
'all' or $this->options[
'type'] ==
'lms') {
573 $res_cont = &$lm_search->performSearch();
574 $res->mergeEntries($res_cont);
576 if ($this->options[
'type'] ==
'all' or $this->options[
'type'] ==
'tst') {
578 $res_tes = &$tst_search->performSearch();
579 $res->mergeEntries($res_tes);
581 if ($this->options[
'type'] ==
'all' or $this->options[
'type'] ==
'mep') {
583 $res_med = &$med_search->performSearch();
584 $res->mergeEntries($res_med);
586 if ($this->options[
'type'] ==
'all' or $this->options[
'type'] ==
'glo') {
588 $res_glo = &$glo_search->performSearch();
589 $res->mergeEntries($res_glo);
591 if ($this->options[
'type'] ==
'all' or $this->options[
'type'] ==
'webr') {
593 $res_web = &$web_search->performSearch();
594 $res->mergeEntries($res_web);
597 $res->mergeEntries($tit_res);
606 if (!$this->options[
'lom_content']) {
610 include_once
'Services/Search/classes/class.ilObjectSearchFactory.php';
611 include_once
'Services/Search/classes/class.ilQueryParser.php';
614 #$query_parser->setCombination($this->options['title_ao']); 616 $query_parser->parse();
619 $meta_search->setFilter($this->filter);
620 $meta_search->setMode(
'title_description');
621 $meta_search->setOptions($this->options);
622 $res_tit = &$meta_search->performSearch();
624 $meta_search->setMode(
'keyword_all');
625 $res_key = &$meta_search->performSearch();
628 $res_tit->mergeEntries($res_key);
638 if (!$this->options[
'lom_coverage']
and !$this->options[
'lom_structure']) {
642 include_once
'Services/Search/classes/class.ilObjectSearchFactory.php';
643 include_once
'Services/Search/classes/class.ilQueryParser.php';
645 if ($this->options[
'lom_coverage']) {
647 #$query_parser->setCombination($this->options['coverage_ao']); 649 $query_parser->parse();
654 $meta_search->setFilter($this->filter);
655 $meta_search->setMode(
'general');
656 $meta_search->setOptions($this->options);
657 $res = &$meta_search->performSearch();
665 if (!$this->options[
'lom_status']
and !$this->options[
'lom_version']) {
668 include_once
'Services/Search/classes/class.ilObjectSearchFactory.php';
669 include_once
'Services/Search/classes/class.ilQueryParser.php';
672 #$query_parser->setCombination($this->options['version_ao']); 674 $query_parser->parse();
677 $meta_search->setFilter($this->filter);
678 $meta_search->setMode(
'lifecycle');
679 $meta_search->setOptions($this->options);
680 $res = &$meta_search->performSearch();
686 if (!$this->options[
'lom_language']) {
689 include_once
'Services/Search/classes/class.ilObjectSearchFactory.php';
690 include_once
'Services/Search/classes/class.ilQueryParser.php';
694 $meta_search->setFilter($this->filter);
695 $meta_search->setMode(
'language');
696 $meta_search->setOptions($this->options);
697 $res = &$meta_search->performSearch();
703 if (!strlen($this->options[
'lom_role'])) {
706 include_once
'Services/Search/classes/class.ilObjectSearchFactory.php';
707 include_once
'Services/Search/classes/class.ilQueryParser.php';
711 $meta_search->setFilter($this->filter);
712 $meta_search->setMode(
'contribute');
713 $meta_search->setOptions($this->options);
714 $res = &$meta_search->performSearch();
721 if (!$this->options[
'lom_role_entry']) {
725 include_once
'Services/Search/classes/class.ilObjectSearchFactory.php';
726 include_once
'Services/Search/classes/class.ilQueryParser.php';
729 #$query_parser->setCombination($this->options['entity_ao']); 731 $query_parser->parse();
734 $meta_search->setFilter($this->filter);
735 $meta_search->setMode(
'entity');
736 $meta_search->setOptions($this->options);
737 $res = &$meta_search->performSearch();
745 include_once
'Services/Search/classes/class.ilObjectSearchFactory.php';
746 include_once
'Services/Search/classes/class.ilQueryParser.php';
750 $meta_search->setFilter($this->filter);
751 $meta_search->setMode(
'requirement');
752 $meta_search->setOptions($this->options);
753 $res = &$meta_search->performSearch();
759 include_once
'Services/Search/classes/class.ilObjectSearchFactory.php';
760 include_once
'Services/Search/classes/class.ilQueryParser.php';
764 $meta_search->setFilter($this->filter);
765 $meta_search->setMode(
'format');
766 $meta_search->setOptions($this->options);
767 $res = &$meta_search->performSearch();
773 include_once
'Services/Search/classes/class.ilObjectSearchFactory.php';
774 include_once
'Services/Search/classes/class.ilQueryParser.php';
778 $meta_search->setFilter($this->filter);
779 $meta_search->setMode(
'educational');
780 $meta_search->setOptions($this->options);
781 $res = &$meta_search->performSearch();
787 include_once
'Services/Search/classes/class.ilObjectSearchFactory.php';
788 include_once
'Services/Search/classes/class.ilQueryParser.php';
792 $meta_search->setFilter($this->filter);
793 $meta_search->setMode(
'typical_age_range');
794 $meta_search->setOptions($this->options);
795 $res = &$meta_search->performSearch();
801 if (!$this->options[
'lom_copyright']
and !$this->options[
'lom_costs']) {
804 include_once
'Services/Search/classes/class.ilObjectSearchFactory.php';
805 include_once
'Services/Search/classes/class.ilQueryParser.php';
809 $meta_search->setFilter($this->filter);
810 $meta_search->setMode(
'rights');
811 $meta_search->setOptions($this->options);
812 $res = &$meta_search->performSearch();
820 if (!$this->options[
'lom_purpose']) {
823 include_once
'Services/Search/classes/class.ilObjectSearchFactory.php';
824 include_once
'Services/Search/classes/class.ilQueryParser.php';
828 $meta_search->setFilter($this->filter);
829 $meta_search->setMode(
'classification');
830 $meta_search->setOptions($this->options);
831 $res = &$meta_search->performSearch();
839 if (!$this->options[
'lom_taxon']) {
842 include_once
'Services/Search/classes/class.ilObjectSearchFactory.php';
843 include_once
'Services/Search/classes/class.ilQueryParser.php';
847 $query_parser->parse();
850 $meta_search->setFilter($this->filter);
851 $meta_search->setMode(
'taxon');
852 $meta_search->setOptions($this->options);
853 $res = &$meta_search->performSearch();
869 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php');
870 foreach (array_keys($this->options) as
$key) {
871 if (substr($key, 0, 3) !=
'adv') {
880 $field_id = substr($key, 4);
883 $field_form =
ilADTFactory::getInstance()->getSearchBridgeForDefinitionInstance($field->getADTDefinition(),
true,
false);
884 $field_form->setElementId(
"query[" . $key .
"]");
885 $field_form->setForm($this->form);
888 $field_form->importFromPost($this->options);
889 $field_form->validate();
891 $parser_value = $field->getSearchQueryParserValue($field_form);
893 include_once
'Services/Search/classes/class.ilQueryParser.php';
894 include_once
'Services/Search/classes/class.ilObjectSearchFactory.php';
896 $adv_md_search->setFilter($this->filter);
897 $adv_md_search->setDefinition($field);
898 $adv_md_search->setSearchElement($field_form);
899 $res_field = $adv_md_search->performSearch();
909 if (!$this->options[
'lom_keyword']) {
912 include_once
'Services/Search/classes/class.ilObjectSearchFactory.php';
913 include_once
'Services/Search/classes/class.ilQueryParser.php';
916 #$query_parser->setCombination($this->options['keyword_ao']); 918 $query_parser->parse();
921 $meta_search->setFilter($this->filter);
922 $meta_search->setMode(
'keyword');
923 $meta_search->setOptions($this->options);
924 $res = &$meta_search->performSearch();
931 if (isset(
$_POST[
'cmd'][
'performSearch'])) {
933 } elseif (isset(
$_POST[
'cmd'][
'performAdvMDSearch'])) {
936 $this->options =
$_SESSION[
'search_adv'];
941 $this->filter = array();
943 $this->options[
'type'] =
'all';
944 switch ($this->options[
'type']) {
946 $this->filter[] =
'cat';
950 $this->filter[] =
'webr';
954 $this->filter[] =
'lm';
955 $this->filter[] =
'dbk';
956 $this->filter[] =
'pg';
957 $this->filter[] =
'st';
958 $this->filter[] =
'sahs';
959 $this->filter[] =
'htlm';
963 $this->filter[] =
'glo';
967 $this->filter[] =
'tst';
968 $this->filter[] =
'svy';
969 $this->filter[] =
'qpl';
970 $this->filter[] =
'spl';
974 $this->filter[] =
'mep';
978 $this->filter[] =
'crs';
982 $this->filter[] =
'file';
986 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php');
992 $this->filter[] =
'sess';
993 $this->filter[] =
'webr';
994 $this->filter[] =
'crs';
995 $this->filter[] =
'mep';
996 $this->filter[] =
'tst';
997 $this->filter[] =
'svy';
998 $this->filter[] =
'qpl';
999 $this->filter[] =
'spl';
1000 $this->filter[] =
'glo';
1001 $this->filter[] =
'lm';
1002 $this->filter[] =
'dbk';
1003 $this->filter[] =
'pg';
1004 $this->filter[] =
'st';
1005 $this->filter[] =
'sahs';
1006 $this->filter[] =
'htlm';
1007 $this->filter[] =
'file';
1014 $options = array(
'all' => $this->lng->txt(
'search_any'),
1015 'crs' => $this->lng->txt(
'objs_crs'),
1016 'lms' => $this->lng->txt(
'obj_lrss'),
1017 'glo' => $this->lng->txt(
'objs_glo'),
1018 'mep' => $this->lng->txt(
'objs_mep'),
1019 'tst' => $this->lng->txt(
'search_tst_svy'),
1020 'file' => $this->lng->txt(
'objs_file'),
1021 'webr' => $this->lng->txt(
'objs_webr'),
1022 'sess' => $this->lng->txt(
'objs_sess')
1032 if ($this->stored ==
false) {
1033 $res->mergeEntries($new_res);
1034 $this->stored =
true;
1038 $res->intersectEntries($new_res);
1055 include_once(
'Services/Search/classes/class.ilUserSearchCache.php');
1058 if (
$_GET[
'page_number']) {
1059 $this->search_cache->setResultPageNumber((
int)
$_GET[
'page_number']);
1061 if (
$_POST[
'cmd'][
'performSearch']) {
1063 $this->search_cache->save();
1077 $ilTabs = $DIC[
'ilTabs'];
1079 include_once(
'Services/AdvancedMetaData/classes/class.ilAdvancedMDFieldDefinition.php');
1083 $ilTabs->addSubTabTarget(
'search_lom', $this->ctrl->getLinkTarget($this,
'showSavedResults'));
1084 #$ilTabs->addSubTabTarget('search_adv_md',$this->ctrl->getLinkTarget($this,'showSavedAdvMDResults')); 1096 return mktime(
$time[
'h'],
$time[
'm'], 0, $date[
'm'], $date[
'd'], $date[
'y']);
1108 if (
$type == self::TYPE_LOM) {
1109 $_SESSION[
'search_last_sub_section'] = self::TYPE_LOM;
1112 $_SESSION[
'search_last_sub_section'] = self::TYPE_ADV_MD;
read($a_type=DEFAULT_SEARCH)
read search results
This class represents an option in a radio group.
initSearchType($type)
init search type (LOM Search or Advanced meta data search)
showAdvMDSearch()
Show advanced meta data search.
& __performRequirementSearch()
showSavedAdvMDResults()
show advanced meta data results
executeCommand()
Control public.
GUI class for the workflow of copying objects.
remoteSearch()
Search from main menu.
static _getAdvancedSearchInstance($query_parser)
get reference of ilFulltextAdvancedSearch
static _getWebresourceSearchInstance($query_parser)
get reference of ilFulltextWebresourceSearch
initFormSearch()
Show search form.
& __performEntitySearch()
& __performRightsSearch()
static _getMediaPoolSearchInstance($query_parser)
get reference of ilFulltextMediapoolSearch
& __performContentSearch()
__construct()
Constructor public.
static getInstance()
Get singleton.
& __performClassificationSearch()
searchAdvancedMD($res)
Perform advanced meta data search.
static _getAdvancedMDSearchInstance($query_parser)
get advanced meta data search instance
& __performGeneralSearch()
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static _getInstance($a_usr_id)
Get singleton instance.
$options
array of all options select boxes,'and' 'or' and query strings public
addPager($result, $a_session_key)
Add Pager.
foreach($_POST as $key=> $value) $res
if(isset($_POST['submit'])) $form
Presentation of search results using object list gui.
addSubItem($a_item)
Add Subitem.
performAdvMDSearch()
perform advanced meta data search
static getSearchableDefinitionIds()
Get searchable definition ids (performance is key)
& __performEducationalSearch()
static getInstance($a_field_id, $a_type=null)
Get definition instance by type.
This class represents a text property in a property form.
& __performLifecycleSearch()
handleCommand($a_cmd)
Handle command.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static _getGlossaryDefinitionSearchInstance($query_parser)
get reference of ilFulltextGlossaryDefinitionSearch
& __performKeywordSearch()
__setSearchOptions(&$post_vars)
static formSelect( $selected, $varname, $options, $multiple=false, $direct_text=false, $size="0", $style_class="", $attribs="", $disabled=false)
Builds a select form field with options and shows the selected option first.
static _getLMContentSearchInstance($query_parser)
get reference of ilFulltextLMContentSearch
& __performFormatSearch()
static _getActivatedObjTypes()
get activated obj types
initUserSearchCache()
Init user search cache.
static getInstance()
Get singleton instance.
initAdvancedMetaDataForm()
protected
& __performLanguageSearch()
setValue($a_value)
Set Value.
static _getTestSearchInstance($query_parser)
get reference of ilFulltextTestSearch
& __performContributeSearch()
toUnixTime($date, $time=array())
convert input array to unix time
& __performTypicalAgeRangeSearch()
__storeEntries($res, $new_res)