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
4include_once 'Services/Search/classes/class.ilSearchBaseGUI.php';
5
6
7
23{
24 protected $search_cache = null;
25
26 public $root_node;
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
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);
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);
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 {
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}
$result
exit
Definition: backend.php:16
$_GET["client_id"]
$_POST["username"]
$_SESSION["AccountId"]
An exception for terminatinating execution or to throw for unit testing.
const IL_CAL_UNIX
Class for single dates.
static get($a_glyph, $a_text="")
Get glyph html.
static getLogger($a_component_id)
Get component logger.
GUI class for the workflow of copying objects.
static _getMetaDataSearchInstance($query_parser)
get reference of ilFulltext/LikeMetaDataSearch.
static _getMediaPoolSearchInstance($query_parser)
get reference of ilFulltextMediapoolSearch
static _getLMContentSearchInstance($query_parser)
get reference of ilFulltextLMContentSearch
static _getTestSearchInstance($query_parser)
get reference of ilFulltextTestSearch
static _getGlossaryDefinitionSearchInstance($query_parser)
get reference of ilFulltextGlossaryDefinitionSearch
static _getObjectSearchInstance($query_parser)
get reference of ilFulltext/LikeObjectSearch.
static _getExerciseSearchInstance($query_parser)
get reference of ilFulltextExerciseSearch
static _getForumSearchInstance($query_parser)
get reference of ilFulltextForumSearch
static _getWikiContentSearchInstance($query_parser)
get reference of ilFulltextWikiContentSearch
setCreationDateFilterDate(ilDate $day)
Set creation date filter.
setCreationDateFilterOperator($a_operator)
static initJavascript()
Init javascript.
static getList($a_str)
Get completion list.
initStandardSearchForm($a_mode)
Init standard search form.
addPager($result, $a_session_key)
Add Pager.
getSearchCache()
Get user search cache.
getSearchAreaForm()
Init standard search form.
loadCreationFilter()
Load creation date filter.
handleCommand($a_cmd)
Handle command.
Class ilSearchGUI.
setString($a_str)
Set/get search string @access public.
performSearch()
Perform search.
& __searchObjects(&$query_parser)
Search in obect title,desctiption.
__construct()
Constructor @access public.
setCombination($a_combination)
Set/get combination of search ('and' or 'or') @access public.
executeCommand()
Control @access public.
setDetails($a_details)
Set/get details (object types for details search) @access public.
setType($a_type)
Set/get type of search (detail or 'fast' search) @access public.
setRootNode($a_node_id)
parseCreationFilter(ilObjectSearch $search)
storeRoot()
Store new root node.
& __searchMeta(&$query_parser, $a_type)
Search in object meta data (keyword)
autoComplete()
Data resource for autoComplete.
__getFilter()
Get object type for filter (If detail search is enabled)
& __performDetailsSearch(&$query_parser, &$result)
initUserSearchCache()
Init user search cache.
& __parseQueryString()
parse query string, using query parser instance
Presentation of search results using object list gui.
static resetDetails()
reset details As long as static::resetDetails is not possible this method is final
static getInstance()
Factory.
Auto completion class for user lists.
static _getInstance($a_usr_id)
Get singleton instance.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms @access public
$key
Definition: croninfo.php:18
global $ilCtrl
Definition: ilias.php:18
if(isset($_POST['submit'])) $form
if(isset($_REQUEST['delete'])) $list
Definition: registry.php:41
global $DIC
Definition: saml.php:7
foreach($_POST as $key=> $value) $res
settings()
Definition: settings.php:2
$ilUser
Definition: imgupload.php:18
$a_type
Definition: workflow.php:92