ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
class.ilSearchController.php
Go to the documentation of this file.
1 <?php
2 
3 /* Copyright (c) 1998-2011 ILIAS open source, Extended GPL, see docs/LICENSE */
4 
19 {
20  const TYPE_USER_SEARCH = -1;
21 
22  public $ctrl = null;
23  public $ilias = null;
24  public $lng = null;
25 
30  public function __construct()
31  {
32  global $DIC;
33 
34  $ilCtrl = $DIC['ilCtrl'];
35  $ilias = $DIC['ilias'];
36  $lng = $DIC['lng'];
37  $tpl = $DIC['tpl'];
38 
39  $this->ilias = $ilias;
40  $this->ctrl = $ilCtrl;
41  $this->lng = $lng;
42  $this->tpl = $tpl;
43  }
44 
45  public function getLastClass()
46  {
47  include_once './Services/Search/classes/class.ilSearchSettings.php';
48  if (ilSearchSettings::getInstance()->enabledLucene()) {
49  $default = 'illucenesearchgui';
50  } else {
51  $default = 'ilsearchgui';
52  }
53  if ($_REQUEST['root_id'] == self::TYPE_USER_SEARCH) {
54  $default = 'illuceneusersearchgui';
55  }
56 
57  $this->setLastClass($default);
58 
59  return $_SESSION['search_last_class'] ? $_SESSION['search_last_class'] : $default;
60  }
61  public function setLastClass($a_class)
62  {
63  $_SESSION['search_last_class'] = $a_class;
64  }
65 
66  public function &executeCommand()
67  {
68  global $DIC;
69 
70  $rbacsystem = $DIC['rbacsystem'];
71 
72  include_once 'Services/Search/classes/class.ilSearchSettings.php';
73 
74  // Check hacks
75  if (!$rbacsystem->checkAccess('search', ilSearchSettings::_getSearchSettingRefId())) {
76  $this->ilias->raiseError($this->lng->txt("permission_denied"), $this->ilias->error_obj->MESSAGE);
77  }
78  $forward_class = $this->ctrl->getNextClass($this) ? $this->ctrl->getNextClass($this) : $this->getLastClass();
79 
80  switch ($forward_class) {
81  case 'illucenesearchgui':
82  $this->setLastClass('illucenesearchgui');
83  include_once './Services/Search/classes/Lucene/class.ilLuceneSearchGUI.php';
84  $this->ctrl->forwardCommand(new ilLuceneSearchGUI());
85  break;
86 
87  case 'illuceneadvancedsearchgui':
88  $this->setLastClass('illuceneadvancedsearchgui');
89  include_once './Services/Search/classes/Lucene/class.ilLuceneAdvancedSearchGUI.php';
90  $this->ctrl->forwardCommand(new ilLuceneAdvancedSearchGUI());
91  break;
92 
93  case 'illuceneusersearchgui':
94  $this->setLastClass('illuceneusersearchgui');
95  include_once './Services/Search/classes/Lucene/class.ilLuceneUserSearchGUI.php';
96  $this->ctrl->forwardCommand(new ilLuceneUserSearchGUI());
97  break;
98 
99  case 'iladvancedsearchgui':
100  // Remember last class
101  $this->setLastClass('iladvancedsearchgui');
102 
103  include_once 'Services/Search/classes/class.ilAdvancedSearchGUI.php';
104 
105  $this->ctrl->forwardCommand(new ilAdvancedSearchGUI());
106  break;
107 
108  case 'ilsearchgui':
109  // Remember last class
110  $this->setLastClass('ilsearchgui');
111 
112  // no break
113  default:
114  include_once 'Services/Search/classes/class.ilSearchGUI.php';
115 
116  $search_gui = new ilSearchGUI();
117  $this->ctrl->forwardCommand($search_gui);
118  break;
119  }
120  $this->tpl->show();
121 
122  return true;
123  }
124 }
$_SESSION["AccountId"]
Class ilSearchGUI.
global $DIC
Definition: saml.php:7
$tpl
Definition: ilias.php:10
global $ilCtrl
Definition: ilias.php:18
GUI for simple Lucene search
static _getSearchSettingRefId()
Read the ref_id of Search Settings object.
redirection script todo: (a better solution should control the processing via a xml file) ...
GUI for Lucene user search
$default
Definition: build.php:20
__construct()
Constructor public.