4 require_once
"./Services/Object/classes/class.ilObjectGUI.php";
23 public function __construct($a_data, $a_id, $a_call_by_reference, $a_prepare_output =
true)
26 parent::__construct($a_data, $a_id, $a_call_by_reference, $a_prepare_output);
28 $this->lng->loadLanguageModule(
'search');
33 $next_class = $this->ctrl->getNextClass($this);
34 $cmd = $this->ctrl->getCmd();
37 switch ($next_class) {
38 case 'ilpermissiongui':
39 $this->tabs_gui->setTabActive(
'perm_settings');
40 include_once(
"Services/AccessControl/classes/class.ilPermissionGUI.php");
42 $ret =&$this->ctrl->forwardCommand($perm_gui);
46 if ($cmd ==
"" || $cmd ==
"view") {
60 $this->ctrl->redirect($this,
"settings");
71 if (!$ilAccess->checkAccess(
'read',
'', $this->object->getRefId())) {
72 $ilErr->raiseError($this->lng->txt(
'permission_denied'), $ilErr->MESSAGE);
74 $this->tabs_gui->setTabActive(
'settings');
76 $this->tpl->setContent($this->form->getHTML());
86 include_once
'Services/WebServices/RPC/classes/class.ilRPCServerSettings.php';
90 if (!$rbacsystem->checkAccess(
'write', $this->object->getRefId())) {
91 $this->
ilias->raiseError($this->lng->txt(
"permission_denied"), $this->
ilias->error_obj->MESSAGE);
94 $this->
object->initSettingsObject();
95 $this->
object->settings_obj->setMaxHits((
int)
$_POST[
'max_hits']);
96 $this->
object->settings_obj->enableIndex($_POST[
'search_index']);
97 $this->
object->settings_obj->enableLucene($_POST[
'search_lucene']);
98 $this->
object->settings_obj->setHideAdvancedSearch($_POST[
'hide_adv_search']);
99 $this->
object->settings_obj->setAutoCompleteLength($_POST[
'auto_complete_length']);
100 $this->
object->settings_obj->setDefaultOperator((
int) $_POST[
'operator']);
101 $this->
object->settings_obj->enableLuceneItemFilter((
int) $_POST[
'if']);
102 $this->
object->settings_obj->setLuceneItemFilter((
array) $_POST[
'filter']);
106 if ($this->
object->settings_obj->enabledLucene() and !$rpc_settings->pingServer()) {
108 $this->ctrl->redirect($this,
'settings');
113 $this->
object->settings_obj->update();
116 $this->ctrl->redirect($this,
'settings');
135 if ($rbacsystem->checkAccess(
"visible,read", $this->object->getRefId())) {
136 $this->tabs_gui->addTarget(
138 $this->ctrl->getLinkTarget($this,
"settings"),
139 array(
"settings",
"",
"view"),
145 if ($rbacsystem->checkAccess(
'read', $this->object->getRefId())) {
146 $this->tabs_gui->addTarget(
147 'lucene_advanced_settings',
148 $this->ctrl->getLinkTarget($this,
'advancedLuceneSettings')
152 if ($rbacsystem->checkAccess(
'read', $this->object->getRefId())) {
153 $this->tabs_gui->addTarget(
154 'lucene_settings_tab',
155 $this->ctrl->getLinkTarget($this,
'luceneSettings')
160 if ($rbacsystem->checkAccess(
'edit_permission', $this->object->getRefId())) {
161 $this->tabs_gui->addTarget(
163 $this->ctrl->getLinkTargetByClass(
array(get_class($this),
'ilpermissiongui'),
"perm"),
164 array(
"perm",
"info",
"owner"),
180 include_once
'./Services/Form/classes/class.ilPropertyFormGUI.php';
181 include_once
'./Services/Search/classes/class.ilSearchSettings.php';
186 $this->form->setFormAction($this->ctrl->getFormAction($this,
'updateSettings'));
188 if (
$access->checkAccess(
'write',
'', $this->object->getRefId())) {
189 $this->form->addCommandButton(
'updateSettings', $this->lng->txt(
'save'));
191 $this->form->setTitle($this->lng->txt(
'seas_settings'));
196 $hits->setRequired(
true);
197 for ($value = 5; $value <= 50; $value += 5) {
198 $values[$value] = $value;
200 $hits->setOptions($values);
201 $hits->setInfo($this->lng->txt(
'seas_max_hits_info'));
202 $this->form->addItem($hits);
215 $type->setRequired(
true);
216 $this->form->addItem(
$type);
221 $operator->setInfo($this->lng->txt(
'lucene_default_operator_info'));
222 $operator->setValue(
$settings->getDefaultOperator());
225 $operator->addOption($and);
228 $operator->addOption($or);
229 $this->form->addItem($operator);
232 $us =
new ilCheckboxInputGUI($this->lng->txt(
'search_user_search_form'),
'user_search_enabled');
233 $us->
setInfo($this->lng->txt(
'search_user_search_info_form'));
235 $us->setChecked(
$settings->isLuceneUserSearchEnabled());
236 $this->form->addItem($us);
242 $if->setChecked(
$settings->isLuceneItemFilterEnabled());
243 $if->setInfo($this->lng->txt(
'search_item_filter_form_info'));
244 $this->form->addItem($if);
246 $filter =
$settings->getLuceneItemFilter();
249 if (isset($filter[$obj]) and $filter[$obj]) {
253 $if->addSubItem($ch);
257 $cdate->
setInfo($this->lng->txt(
'search_cdate_filter_info'));
258 $cdate->setChecked(
$settings->isDateFilterEnabled());
260 $this->form->addItem($cdate);
265 $this->form->addItem($cb);
270 $type->addOption($direct);
272 if ($ilDB->supportsFulltext()) {
278 $type->addOption($lucene);
288 $si =
new ilSelectInputGUI($lng->txt(
"search_auto_complete_length"),
"auto_complete_length");
290 $val = (
$settings->getAutoCompleteLength() > 0)
294 $this->form->addItem(
$si);
296 $inactive_user =
new ilCheckboxInputGUI($this->lng->txt(
'search_show_inactive_user'),
'inactive_user');
297 $inactive_user->
setInfo($this->lng->txt(
'search_show_inactive_user_info'));
298 $inactive_user->setChecked(
$settings->isInactiveUserVisible());
299 $this->form->addItem($inactive_user);
301 $limited_user =
new ilCheckboxInputGUI($this->lng->txt(
'search_show_limited_user'),
'limited_user');
302 $limited_user->
setInfo($this->lng->txt(
'search_show_limited_user_info'));
303 $limited_user->setChecked(
$settings->isLimitedUserVisible());
304 $this->form->addItem($limited_user);
317 $this->form->checkInput();
319 if (!$ilAccess->checkAccess(
'write',
'', $this->object->getRefId())) {
321 $GLOBALS[
'DIC']->ctrl()->redirect($this,
'settings');
324 include_once
'./Services/Search/classes/class.ilSearchSettings.php';
328 switch ((
int) $_POST[
'search_type']) {
343 $settings->setDefaultOperator((
int) $_POST[
'operator']);
344 $settings->enableLuceneItemFilter((
int) $_POST[
'if']);
347 $settings->setHideAdvancedSearch($_POST[
'hide_adv_search']);
348 $settings->setAutoCompleteLength($_POST[
'auto_complete_length']);
349 $settings->showInactiveUser($_POST[
"inactive_user"]);
350 $settings->showLimitedUser($_POST[
"limited_user"]);
351 $settings->enableDateFilter($_POST[
'cdate']);
352 $settings->enableLuceneUserSearch((
int) $_POST[
'user_search_enabled']);
379 $this->tabs_gui->setTabActive(
'lucene_settings_tab');
384 $this->tpl->setContent($this->form->getHTML());
394 include_once
'./Services/Form/classes/class.ilPropertyFormGUI.php';
395 include_once
'./Services/Search/classes/class.ilSearchSettings.php';
400 $this->form->setFormAction($this->ctrl->getFormAction($this,
'cancel'));
402 $this->form->setTitle($this->lng->txt(
'lucene_settings_title'));
405 if (
$access->checkAccess(
'write',
'', $this->object->getRefId())) {
406 $this->form->addCommandButton(
'saveLuceneSettings', $this->lng->txt(
'save'));
412 $if =
new ilCheckboxInputGUI($this->lng->txt(
'search_mime_filter_form'),
'mime_enabled');
414 $if->setChecked($this->
settings->isLuceneMimeFilterEnabled());
415 $if->setInfo($this->lng->txt(
'search_item_filter_form_info'));
416 $this->form->addItem($if);
418 $mimes = $this->
settings->getLuceneMimeFilter();
421 if (isset($mimes[$mime]) and $mimes[$mime]) {
425 $if->addSubItem($ch);
428 $prefix =
new ilCheckboxInputGUI($this->lng->txt(
'lucene_prefix_wildcard'),
'prefix');
430 $prefix->setInfo($this->lng->txt(
'lucene_prefix_wildcard_info'));
431 $prefix->setChecked($this->
settings->isPrefixWildcardQueryEnabled());
432 $this->form->addItem($prefix);
435 $numFrag =
new ilNumberInputGUI($this->lng->txt(
'lucene_num_fragments'),
'fragmentCount');
437 $numFrag->setSize(2);
438 $numFrag->setMaxLength(2);
439 $numFrag->setMinValue(1);
440 $numFrag->setMaxValue(10);
441 $numFrag->setInfo($this->lng->txt(
'lucene_num_frag_info'));
442 $numFrag->setValue($this->
settings->getFragmentCount());
443 $this->form->addItem($numFrag);
445 $sizeFrag =
new ilNumberInputGUI($this->lng->txt(
'lucene_size_fragments'),
'fragmentSize');
447 $sizeFrag->setSize(2);
448 $sizeFrag->setMaxLength(4);
449 $sizeFrag->setMinValue(10);
450 $sizeFrag->setMaxValue(1000);
451 $sizeFrag->setInfo($this->lng->txt(
'lucene_size_frag_info'));
452 $sizeFrag->setValue($this->
settings->getFragmentSize());
453 $this->form->addItem($sizeFrag);
455 $maxSub =
new ilNumberInputGUI($this->lng->txt(
'lucene_max_sub'),
'maxSubitems');
458 $maxSub->setMaxLength(2);
459 $maxSub->setMinValue(1);
460 $maxSub->setMaxValue(10);
461 $maxSub->setInfo($this->lng->txt(
'lucene_max_sub_info'));
462 $maxSub->setValue($this->
settings->getMaxSubitems());
463 $this->form->addItem($maxSub);
465 $relevance =
new ilCheckboxInputGUI($this->lng->txt(
'lucene_relevance'),
'relevance');
466 $relevance->
setOptionTitle($this->lng->txt(
'lucene_show_relevance'));
467 $relevance->setInfo($this->lng->txt(
'lucene_show_relevance_info'));
468 $relevance->setValue(1);
469 $relevance->setChecked($this->
settings->isRelevanceVisible());
470 $this->form->addItem($relevance);
474 $subrel->setOptionTitle($this->lng->txt(
'lucene_show_sub_relevance'));
475 $subrel->setValue(1);
476 $subrel->setChecked($this->
settings->isSubRelevanceVisible());
477 $relevance->addSubItem($subrel);
480 $last_index =
new ilDateTimeInputGUI($this->lng->txt(
'lucene_last_index_time'),
'last_index');
482 $last_index->setShowTime(
true);
483 $last_index->setDate($this->
settings->getLastIndexTime());
484 $last_index->setInfo($this->lng->txt(
'lucene_last_index_time_info'));
485 $this->form->addItem($last_index);
502 $settings->setFragmentSize((
int) $_POST[
'fragmentSize']);
503 $settings->setMaxSubitems((
int) $_POST[
'maxSubitems']);
504 $settings->showRelevance((
int) $_POST[
'relevance']);
505 $settings->enableLuceneOfflineFilter((
int) $_POST[
'offline_filter']);
506 $settings->enableLuceneMimeFilter((
int) $_POST[
'mime_enabled']);
508 $settings->showSubRelevance((
int) $_POST[
'subrelevance']);
509 $settings->enablePrefixWildcardQuery((
int) $_POST[
'prefix']);
511 if ($this->form->checkInput()) {
512 $settings->setLastIndexTime($this->form->getItemByPostVar(
'last_index')->getDate());
529 $this->form->setValuesByPost();
547 include_once
'./Services/WebServices/RPC/classes/class.ilRpcClientFactory.php';
550 ilLoggerFactory::getLogger(
'src')->error(
'Refresh of lucene server settings failed with message: ' . $exception->getMessage());
561 $this->tabs_gui->setTabActive(
'lucene_advanced_settings');
563 include_once
'./Services/Search/classes/Lucene/class.ilLuceneAdvancedSearchActivationTableGUI.php';
564 include_once
'./Services/Search/classes/Lucene/class.ilLuceneAdvancedSearchSettings.php';
567 $table->setTitle($this->lng->txt(
'lucene_advanced_settings_table'));
570 $this->tpl->setContent(
$table->getHTML());
580 if (!
$access->checkAccess(
'write',
'', $this->object->getRefId())) {
582 $GLOBALS[
'DIC']->ctrl()->redirect($this,
'settings');
600 switch ($a_section) {
602 $this->tabs_gui->addSubTabTarget(
603 'lucene_general_settings',
604 $this->ctrl->getLinkTarget($this,
'luceneSettings')
advancedLuceneSettingsObject()
show advanced settings
This class represents an option in a radio group.
updateSettingsObject()
Update Settings.
settingsObject()
Show settings public.
static getLuceneItemFilterDefinitions()
Get lucene item filter definitions.
saveLuceneSettingsObject()
Save Lucene settings.
static factory($a_package, $a_timeout=0)
Creates an ilRpcClient instance to our ilServer.
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
initFormSettings()
Init settings form.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
initFormLuceneSettings()
Show lucene settings form.
prepareOutput($a_show_subobjects=true)
prepare output
static getLuceneMimeFilterDefinitions()
if(isset($_POST['submit'])) $form
Class ilObjectGUI Basic methods of all Output classes.
Activation of meta data fields.
redirection script todo: (a better solution should control the processing via a xml file) ...
Create styles array
The data for the language used.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
__construct($a_data, $a_id, $a_call_by_reference, $a_prepare_output=true)
Constructor public.
Create new PHPExcel object
obj_idprivate
luceneSettingsObject(ilPropertyFormGUI $form=null)
Lucene settings.
static getFields()
Return an array of all meta data fields.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
static getLogger($a_component_id)
Get component logger.
refreshLuceneSettings()
Refresh lucene server settings.
if(empty($password)) $table
saveSettingsObject()
Save settings public.
if(!isset($_REQUEST['ReturnTo'])) if(!isset($_REQUEST['AuthId'])) $options
saveAdvancedLuceneSettingsObject()
Save advanced settings.
static getInstance()
Get singelton instance.