ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
class.ilSearchGUI.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
4 include_once 'Services/Search/classes/class.ilSearchBaseGUI.php';
5 
6 
7 
23 {
24  protected $search_cache = null;
25 
26  public $root_node;
27  public $combination;
28  public $string;
29  public $type;
30 
31 
36  public function __construct()
37  {
38  global $DIC;
39 
40  $ilUser = $DIC['ilUser'];
41  $lng = $DIC['lng'];
42 
43  $lng->loadLanguageModule("search");
44 
45  // put form values into "old" post variables
47  $this->form->checkInput();
48 
49  $new_search = isset($_POST['cmd']['performSearch']) ? true : false;
50 
51  $enabled_types = ilSearchSettings::getInstance()->getEnabledLuceneItemFilterDefinitions();
52  foreach ($enabled_types as $type => $pval) {
53  if ($_POST['filter_type'][$type] == 1) {
54  $_POST["search"]["details"][$type] = $_POST['filter_type'][$type];
55  }
56  }
57 
58  $_POST["search"]["string"] = $_POST["term"];
59  $_POST["search"]["combination"] = $_POST["combination"];
60  $_POST["search"]["type"] = $_POST["type"];
61  $_SESSION['search_root'] = $_POST["area"];
62 
63  $this->root_node = $_SESSION['search_root'] ? $_SESSION['search_root'] : ROOT_FOLDER_ID;
64  $this->setType($_POST['search']['type'] ? $_POST['search']['type'] : $_SESSION['search']['type']);
65  $this->setCombination($_POST['search']['combination'] ? $_POST['search']['combination'] : $_SESSION['search']['combination']);
66  $this->setString($_POST['search']['string'] ? $_POST['search']['string'] : $_SESSION['search']['string']);
67  #$this->setDetails($_POST['search']['details'] ? $_POST['search']['details'] : $_SESSION['search']['details']);
68  $this->setDetails($new_search ? $_POST['search']['details'] : $_SESSION['search']['details']);
69  parent::__construct();
70  }
71 
72 
77  public function executeCommand()
78  {
79  global $DIC;
80 
81  $rbacsystem = $DIC['rbacsystem'];
82  $ilCtrl = $DIC['ilCtrl'];
83 
84 
85 
86  $next_class = $this->ctrl->getNextClass($this);
87  $cmd = $this->ctrl->getCmd();
88 
89  switch ($next_class) {
90  case "ilpropertyformgui":
91  //$this->initStandardSearchForm(ilSearchBaseGUI::SEARCH_FORM_STANDARD);
92  $form = $this->getSearchAreaForm();
93  $this->prepareOutput();
94  $ilCtrl->setReturn($this, 'storeRoot');
95  return $ilCtrl->forwardCommand($form);
96 
97  case 'ilobjectcopygui':
98  $this->prepareOutput();
99  $this->ctrl->setReturn($this, '');
100  include_once './Services/Object/classes/class.ilObjectCopyGUI.php';
101  $cp = new ilObjectCopyGUI($this);
102  $this->ctrl->forwardCommand($cp);
103  break;
104 
105  default:
106  $this->initUserSearchCache();
107  if (!$cmd) {
108  $cmd = "showSavedResults";
109  }
110  $this->prepareOutput();
111  $this->handleCommand($cmd);
112  break;
113  }
114  return true;
115  }
116 
121  public function setType($a_type)
122  {
123  $_SESSION['search']['type'] = $this->type = $a_type;
124  }
125  public function getType()
126  {
127  return $this->type ? $this->type : ilSearchBaseGUI::SEARCH_FAST;
128  }
133  public function setCombination($a_combination)
134  {
135  $_SESSION['search']['combination'] = $this->combination = $a_combination;
136  }
137  public function getCombination()
138  {
139  return $this->combination ? $this->combination : ilSearchBaseGUI::SEARCH_OR;
140  }
145  public function setString($a_str)
146  {
147  $_SESSION['search']['string'] = $this->string = $a_str;
148  }
149  public function getString()
150  {
151  return $this->string;
152  }
157  public function setDetails($a_details)
158  {
159  $_SESSION['search']['details'] = $this->details = $a_details;
160  }
161  public function getDetails()
162  {
163  return $this->details ? $this->details : array();
164  }
165 
166 
167  public function getRootNode()
168  {
169  return $this->root_node ? $this->root_node : ROOT_FOLDER_ID;
170  }
171  public function setRootNode($a_node_id)
172  {
173  $_SESSION['search_root'] = $this->root_node = $a_node_id;
174  }
175 
176 
177  public function remoteSearch()
178  {
179  $this->setString(ilUtil::stripSlashes($_POST['queryString']));
180  $this->setRootNode((int) $_POST['root_id']);
181  $this->performSearch();
182  }
183 
187  protected function storeRoot()
188  {
189  $form = $this->getSearchAreaForm();
190 
191  $this->root_node = $form->getItemByPostVar('area')->getValue();
192  $this->search_cache->setRoot($this->root_node);
193  $this->search_cache->save();
194  $this->search_cache->deleteCachedEntries();
195 
196  include_once './Services/Object/classes/class.ilSubItemListGUI.php';
198 
199  $this->performSearch();
200  }
201 
205  public function autoComplete()
206  {
207  if ((int) $_REQUEST['search_type'] == -1) {
208  $a_fields = array('login','firstname','lastname','email');
209  $result_field = 'login';
210 
211  // Starting user autocomplete search
212  include_once './Services/User/classes/class.ilUserAutoComplete.php';
213  $auto = new ilUserAutoComplete();
214 
215 
216  $auto->setMoreLinkAvailable(true);
217  $auto->setSearchFields($a_fields);
218  $auto->setResultField($result_field);
219  $auto->enableFieldSearchableCheck(true);
220  $auto->setUserLimitations(true);
221 
222  $res = $auto->getList($_REQUEST['term']);
223 
224  $res_obj = json_decode($res);
225 
226  ilLoggerFactory::getLogger('sea')->debug($res);
227 
228 
229  ilLoggerFactory::getLogger('sea')->dump($res_obj->items, ilLogLevel::DEBUG);
230  if (is_array($res_obj->items)) {
231  echo json_encode($res_obj->items);
232  exit;
233  }
234  } else {
235  $q = $_REQUEST["term"];
236  include_once("./Services/Search/classes/class.ilSearchAutoComplete.php");
238  ilLoggerFactory::getLogger('sea')->dump(json_decode($list));
239  echo $list;
240  exit;
241  }
242  }
243 
244  public function showSearch()
245  {
246  global $DIC;
247 
248  $ilLocator = $DIC['ilLocator'];
249  $ilCtrl = $DIC['ilCtrl'];
250  $lng = $DIC['lng'];
251 
252  // include js needed
253  include_once("./Services/UIComponent/Overlay/classes/class.ilOverlayGUI.php");
255  $this->tpl->addJavascript("./Services/Search/js/Search.js");
256 
257  include_once("./Services/UIComponent/Glyph/classes/class.ilGlyphGUI.php");
258 
259  $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.search.html', 'Services/Search');
260  $this->tpl->setVariable("FORM_ACTION", $ilCtrl->getFormAction($this, 'performSearch'));
261  $this->tpl->setVariable("TERM", ilUtil::prepareFormOutput($this->getString()));
262  $this->tpl->setVariable("SEARCH_LABEL", $lng->txt("search"));
263  include_once("./Services/UIComponent/Button/classes/class.ilSubmitButton.php");
265  $btn->setCommand("performSearch");
266  $btn->setCaption("search");
267  $this->tpl->setVariable("SUBMIT_BTN", $btn->render());
268  $this->tpl->setVariable("TXT_OPTIONS", $lng->txt("options"));
269  $this->tpl->setVariable("ARR_IMG", ilGlyphGUI::get(ilGlyphGUI::CARET));
270  $this->tpl->setVariable("TXT_COMBINATION", $lng->txt("search_term_combination"));
271  $this->tpl->setVariable('TXT_COMBINATION_DEFAULT', ilSearchSettings::getInstance()->getDefaultOperator() == ilSearchSettings::OPERATOR_AND ? $lng->txt('search_all_words') : $lng->txt('search_any_word'));
272 
273  if (ilSearchSettings::getInstance()->isLuceneItemFilterEnabled()) {
274  $this->tpl->setCurrentBlock("type_sel");
275  $this->tpl->setVariable('TXT_TYPE_DEFAULT', $lng->txt("search_fast_info"));
276  $this->tpl->setVariable("TXT_TYPE", $lng->txt("search_type"));
278  $this->tpl->setVariable("ARR_IMGT", ilGlyphGUI::get(ilGlyphGUI::CARET));
279  $this->tpl->setVariable("FORM", $this->form->getHTML());
280  $this->tpl->parseCurrentBlock();
281  }
282 
283  if (ilSearchSettings::getInstance()->isDateFilterEnabled()) {
284  // begin-patch creation_date
285  $this->tpl->setVariable('TXT_FILTER_BY_CDATE', $this->lng->txt('search_filter_cd'));
286  $this->tpl->setVariable('TXT_CD_OFF', $this->lng->txt('search_off'));
287  $this->tpl->setVariable('FORM_CD', $this->getCreationDateForm()->getHTML());
288  $this->tpl->setVariable("ARR_IMG_CD", ilGlyphGUI::get(ilGlyphGUI::CARET));
289  // end-patch creation_date
290  }
291 
292 
293  $this->tpl->setVariable("TXT_AREA", $lng->txt("search_area"));
294 
295  // search area form
296  $this->tpl->setVariable('SEARCH_AREA_FORM', $this->getSearchAreaForm()->getHTML());
297 
298  return true;
299  }
300 
301  public function showSavedResults()
302  {
303  global $DIC;
304 
305  $ilUser = $DIC['ilUser'];
306 
307  // Read old result sets
308  include_once 'Services/Search/classes/class.ilSearchResult.php';
309 
310  $result_obj = new ilSearchResult($ilUser->getId());
311  $result_obj->read();
312  $result_obj->filterResults($this->getRootNode());
313 
314  $this->showSearch();
315 
316  // Show them
317  if (count($result_obj->getResults())) {
318  $this->addPager($result_obj, 'max_page');
319 
320  include_once './Services/Search/classes/class.ilSearchResultPresentation.php';
322  $presentation->setResults($result_obj->getResultsForPresentation());
323  $presentation->setSubitemIds($result_obj->getSubitemIds());
324  $presentation->setPreviousNext($this->prev_link, $this->next_link);
325  #$presentation->setSearcher($searcher);
326 
327  if ($presentation->render()) {
328  // $this->tpl->setVariable('SEARCH_RESULTS',$presentation->getHTML());
329  $this->tpl->setVariable('RESULTS_TABLE', $presentation->getHTML(true));
330  }
331  }
332 
333  return true;
334  }
335 
336 
340  public function performSearch()
341  {
342  global $DIC;
343 
344  $ilUser = $DIC['ilUser'];
345 
346  if (!isset($_GET['page_number']) and $this->search_mode != 'in_results') {
347  unset($_SESSION['max_page']);
348  $this->search_cache->deleteCachedEntries();
349  }
350 
351  if ($this->getType() == ilSearchBaseGUI::SEARCH_DETAILS and !$this->getDetails()) {
352  ilUtil::sendInfo($this->lng->txt('search_choose_object_type'));
353  $this->showSearch();
354  return false;
355  }
356 
357  // Step 1: parse query string
358  if (!is_object($query_parser = &$this->__parseQueryString())) {
359  ilUtil::sendInfo($query_parser);
360  $this->showSearch();
361 
362  return false;
363  }
364  // Step 2: perform object search. Get an ObjectSearch object via factory. Depends on fulltext or like search type.
365  $result = &$this->__searchObjects($query_parser);
366 
367  // Step 3: perform meta keyword search. Get an MetaDataSearch object.
368  $result_meta = &$this->__searchMeta($query_parser, 'keyword');
369  $result->mergeEntries($result_meta);
370 
371  $result_meta = &$this->__searchMeta($query_parser, 'contribute');
372  $result->mergeEntries($result_meta);
373 
374  $result_meta = &$this->__searchMeta($query_parser, 'title');
375  $result->mergeEntries($result_meta);
376 
377  $result_meta = &$this->__searchMeta($query_parser, 'description');
378  $result->mergeEntries($result_meta);
379 
380  // Perform details search in object specific tables
381  if ($this->getType() == ilSearchBaseGUI::SEARCH_DETAILS) {
382  $result = $this->__performDetailsSearch($query_parser, $result);
383  }
384  // Step 5: Search in results
385  if ($this->search_mode == 'in_results') {
386  include_once 'Services/Search/classes/class.ilSearchResult.php';
387 
388  $old_result_obj = new ilSearchResult($ilUser->getId());
389  $old_result_obj->read();
390 
391  $result->diffEntriesFromResult($old_result_obj);
392  }
393 
394 
395  // Step 4: merge and validate results
396  $result->filter($this->getRootNode(), $query_parser->getCombination() == 'and');
397  $result->save();
398  $this->showSearch();
399 
400  if (!count($result->getResults())) {
401  ilUtil::sendInfo($this->lng->txt('search_no_match'));
402  }
403 
404  if ($result->isLimitReached()) {
405  #$message = sprintf($this->lng->txt('search_limit_reached'),$this->settings->getMaxHits());
406  #ilUtil::sendInfo($message);
407  }
408 
409  // Step 6: show results
410  $this->addPager($result, 'max_page');
411 
412  include_once './Services/Search/classes/class.ilSearchResultPresentation.php';
414  $presentation->setResults($result->getResultsForPresentation());
415  $presentation->setSubitemIds($result->getSubitemIds());
416  $presentation->setPreviousNext($this->prev_link, $this->next_link);
417 
418  if ($presentation->render()) {
419  // $this->tpl->setVariable('SEARCH_RESULTS',$presentation->getHTML());
420  $this->tpl->setVariable('RESULTS_TABLE', $presentation->getHTML(true));
421  }
422 
423  return true;
424  }
425 
426 
427 
428  public function prepareOutput()
429  {
430  global $DIC;
431 
432  $ilTabs = $DIC['ilTabs'];
433  $ilHelp = $DIC['ilHelp'];
434 
435  parent::prepareOutput();
436 
437  $ilHelp->setScreenIdComponent("src");
438 
439  $ilTabs->addTab(
440  "search",
441  $this->lng->txt("search"),
442  $this->ctrl->getLinkTarget($this)
443  );
444 
445  if (!$this->settings->getHideAdvancedSearch()) {
446  $ilTabs->addTab(
447  "adv_search",
448  $this->lng->txt("search_advanced"),
449  $this->ctrl->getLinkTargetByClass('iladvancedsearchgui')
450  );
451  }
452 
453  $ilTabs->activateTab("search");
454  }
455 
456  // PRIVATE
457  public function &__performDetailsSearch(&$query_parser, &$result)
458  {
459  foreach ($this->getDetails() as $type => $enabled) {
460  if (!$enabled) {
461  continue;
462  }
463 
464  switch ($type) {
465  case 'crs':
466  $crs_search = ilObjectSearchFactory::_getObjectSearchInstance($query_parser);
467  $crs_search->setFilter(array('crs'));
468  $result->mergeEntries($crs_search->performSearch());
469  break;
470 
471  case 'grp':
472  $grp_search = ilObjectSearchFactory::_getObjectSearchInstance($query_parser);
473  $grp_search->setFilter(array('grp'));
474  $result->mergeEntries($grp_search->performSearch());
475  break;
476 
477  case 'lms':
478  $content_search = &ilObjectSearchFactory::_getLMContentSearchInstance($query_parser);
479  $content_search->setFilter($this->__getFilter());
480  $result->mergeEntries($content_search->performSearch());
481  break;
482 
483  case 'frm':
484  $forum_search = &ilObjectSearchFactory::_getForumSearchInstance($query_parser);
485  $forum_search->setFilter($this->__getFilter());
486  $result->mergeEntries($forum_search->performSearch());
487  break;
488 
489  case 'glo':
490  // Glossary term definition pages
491  $gdf_search = &ilObjectSearchFactory::_getLMContentSearchInstance($query_parser);
492  $gdf_search->setFilter(array('gdf'));
493  $result->mergeEntries($gdf_search->performSearch());
494  // Glossary terms
495  $gdf_term_search = &ilObjectSearchFactory::_getGlossaryDefinitionSearchInstance($query_parser);
496  $result->mergeEntries($gdf_term_search->performSearch());
497  break;
498 
499  case 'exc':
500  $exc_search = &ilObjectSearchFactory::_getExerciseSearchInstance($query_parser);
501  $exc_search->setFilter($this->__getFilter());
502  $result->mergeEntries($exc_search->performSearch());
503  break;
504 
505  case 'mcst':
506  $mcst_search = &ilObjectSearchFactory::_getMediaCastSearchInstance($query_parser);
507  $result->mergeEntries($mcst_search->performSearch());
508  break;
509 
510  case 'tst':
511  $tst_search = &ilObjectSearchFactory::_getTestSearchInstance($query_parser);
512  $tst_search->setFilter($this->__getFilter());
513  $result->mergeEntries($tst_search->performSearch());
514  break;
515 
516  case 'mep':
517  $mep_search = &ilObjectSearchFactory::_getMediaPoolSearchInstance($query_parser);
518  $mep_search->setFilter($this->__getFilter());
519  $result->mergeEntries($mep_search->performSearch());
520 
521  // Mob keyword search
522  $mob_search = ilObjectSearchFactory::_getMediaPoolSearchInstance($query_parser);
523  $mob_search->setFilter($this->__getFilter());
524  $result->mergeEntries($mob_search->performKeywordSearch());
525 
526  break;
527 
528  case 'wiki':
529  $wiki_search = &ilObjectSearchFactory::_getWikiContentSearchInstance($query_parser);
530  $wiki_search->setFilter($this->__getFilter());
531  $result->mergeEntries($wiki_search->performSearch());
532 
533  /*$result_meta =& $this->__searchMeta($query_parser,'title');
534  $result->mergeEntries($result_meta);
535  $result_meta =& $this->__searchMeta($query_parser,'description');
536  $result->mergeEntries($result_meta);*/
537  break;
538 
539  }
540  }
541  return $result;
542  }
543 
549  public function &__parseQueryString()
550  {
551  include_once 'Services/Search/classes/class.ilQueryParser.php';
552 
553  $query_parser = new ilQueryParser(ilUtil::stripSlashes($this->getString()));
554  $query_parser->setCombination($this->getCombination());
555  $query_parser->parse();
556 
557  if (!$query_parser->validate()) {
558  return $query_parser->getMessage();
559  }
560  return $query_parser;
561  }
567  public function &__searchObjects(&$query_parser)
568  {
569  include_once 'Services/Search/classes/class.ilObjectSearchFactory.php';
570 
571  $obj_search = &ilObjectSearchFactory::_getObjectSearchInstance($query_parser);
572  if ($this->getType() == ilSearchBaseGUI::SEARCH_DETAILS) {
573  $obj_search->setFilter($this->__getFilter());
574  }
575 
576  $this->parseCreationFilter($obj_search);
577  return $obj_search->performSearch();
578  }
579 
580  public function parseCreationFilter(ilObjectSearch $search)
581  {
582  $options = $this->getSearchCache()->getCreationFilter();
583 
584  if (!$options['enabled']) {
585  return true;
586  }
587  $limit = new ilDate($options['date'], IL_CAL_UNIX);
588  $search->setCreationDateFilterDate($limit);
589 
590  switch ($options['ontype']) {
591  case 1:
593  break;
594 
595  case 2:
597  break;
598 
599  case 3:
601  break;
602  }
603 
604  return true;
605  }
606 
607 
613  public function &__searchMeta(&$query_parser, $a_type)
614  {
615  include_once 'Services/Search/classes/class.ilObjectSearchFactory.php';
616 
617  $meta_search = &ilObjectSearchFactory::_getMetaDataSearchInstance($query_parser);
618  if ($this->getType() == ilSearchBaseGUI::SEARCH_DETAILS) {
619  $meta_search->setFilter($this->__getFilter());
620  }
621  switch ($a_type) {
622  case 'keyword':
623  $meta_search->setMode('keyword');
624  break;
625 
626  case 'contribute':
627  $meta_search->setMode('contribute');
628  break;
629 
630  case 'title':
631  $meta_search->setMode('title');
632  break;
633 
634  case 'description':
635  $meta_search->setMode('description');
636  break;
637  }
638  return $meta_search->performSearch();
639  }
645  public function __getFilter()
646  {
647  if ($this->getType() != ilSearchBaseGUI::SEARCH_DETAILS) {
648  return false;
649  }
650 
651  foreach ($this->getDetails() as $key => $detail_type) {
652  if (!$detail_type) {
653  continue;
654  }
655 
656  switch ($key) {
657  case 'lms':
658  $filter[] = 'lm';
659  $filter[] = 'dbk';
660  $filter[] = 'pg';
661  $filter[] = 'st';
662  $filter[] = 'sahs';
663  $filter[] = 'htlm';
664  break;
665 
666  case 'frm':
667  $filter[] = 'frm';
668  break;
669 
670  case 'glo':
671  $filter[] = 'glo';
672  break;
673 
674  case 'exc':
675  $filter[] = 'exc';
676  break;
677 
678  case 'mcst':
679  $filter[] = 'mcst';
680  break;
681 
682  case 'tst':
683  $filter[] = 'tst';
684  $filter[] = 'svy';
685  $filter[] = 'qpl';
686  $filter[] = 'spl';
687  break;
688 
689  case 'mep':
690  $filter[] = 'mep';
691  $filter[] = 'mob';
692  break;
693 
694  case 'fil':
695  $filter[] = 'file';
696  break;
697 
698  case 'wiki':
699  $filter[] = 'wpg';
700  break;
701 
702  default:
703  $filter[] = $key;
704  }
705  }
706  return $filter ? $filter : array();
707  }
708 
715  protected function initUserSearchCache()
716  {
717  global $DIC;
718 
719  $ilUser = $DIC['ilUser'];
720 
721  include_once('Services/Search/classes/class.ilUserSearchCache.php');
722  $this->search_cache = ilUserSearchCache::_getInstance($ilUser->getId());
723  $this->search_cache->switchSearchType(ilUserSearchCache::DEFAULT_SEARCH);
724 
725  if ($_GET['page_number']) {
726  $this->search_cache->setResultPageNumber((int) $_GET['page_number']);
727  }
728  if (isset($_POST['cmd']['performSearch'])) {
729  $this->search_cache->setQuery(ilUtil::stripSlashes($_POST['term']));
730  $this->search_cache->setCreationFilter($this->loadCreationFilter());
731  $this->search_cache->save();
732  }
733  }
734 }
setType($a_type)
Set/get type of search (detail or &#39;fast&#39; search) public.
read($a_type=DEFAULT_SEARCH)
read search results
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms public
static _getWikiContentSearchInstance($query_parser)
get reference of ilFulltextWikiContentSearch
loadCreationFilter()
Load creation date filter.
if(isset($_REQUEST['delete'])) $list
Definition: registry.php:41
& __performDetailsSearch(&$query_parser, &$result)
settings()
Definition: settings.php:2
getSearchAreaForm()
Init standard search form.
$_SESSION["AccountId"]
$result
performSearch()
Perform search.
GUI class for the workflow of copying objects.
Class ilSearchGUI.
global $DIC
Definition: saml.php:7
$_GET["client_id"]
setCombination($a_combination)
Set/get combination of search (&#39;and&#39; or &#39;or&#39;) public.
static getList($a_str)
Get completion list.
static get($a_glyph, $a_text="")
Get glyph html.
static _getMediaPoolSearchInstance($query_parser)
get reference of ilFulltextMediapoolSearch
const IL_CAL_UNIX
setRootNode($a_node_id)
static resetDetails()
reset details As long as static::resetDetails is not possible this method is final ...
Auto completion class for user lists.
global $ilCtrl
Definition: ilias.php:18
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
$a_type
Definition: workflow.php:92
static _getInstance($a_usr_id)
Get singleton instance.
& __parseQueryString()
parse query string, using query parser instance
addPager($result, $a_session_key)
Add Pager.
Class for single dates.
foreach($_POST as $key=> $value) $res
if(isset($_POST['submit'])) $form
Presentation of search results using object list gui.
initStandardSearchForm($a_mode)
Init standard search form.
static _getForumSearchInstance($query_parser)
get reference of ilFulltextForumSearch
setCreationDateFilterDate(ilDate $day)
Set creation date filter.
parseCreationFilter(ilObjectSearch $search)
setDetails($a_details)
Set/get details (object types for details search) public.
static _getExerciseSearchInstance($query_parser)
get reference of ilFulltextExerciseSearch
$ilUser
Definition: imgupload.php:18
handleCommand($a_cmd)
Handle command.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
setString($a_str)
Set/get search string public.
static _getGlossaryDefinitionSearchInstance($query_parser)
get reference of ilFulltextGlossaryDefinitionSearch
static _getMetaDataSearchInstance($query_parser)
get reference of ilFulltext/LikeMetaDataSearch.
& __searchObjects(&$query_parser)
Search in obect title,desctiption.
setCreationDateFilterOperator($a_operator)
__construct()
Constructor public.
initUserSearchCache()
Init user search cache.
exit
Definition: backend.php:16
storeRoot()
Store new root node.
static _getLMContentSearchInstance($query_parser)
get reference of ilFulltextLMContentSearch
__getFilter()
Get object type for filter (If detail search is enabled)
static _getObjectSearchInstance($query_parser)
get reference of ilFulltext/LikeObjectSearch.
static getLogger($a_component_id)
Get component logger.
executeCommand()
Control public.
static _getTestSearchInstance($query_parser)
get reference of ilFulltextTestSearch
$key
Definition: croninfo.php:18
& __searchMeta(&$query_parser, $a_type)
Search in object meta data (keyword)
$_POST["username"]
getSearchCache()
Get user search cache.
autoComplete()
Data resource for autoComplete.
static initJavascript()
Init javascript.