4require_once
"./Services/Object/classes/class.ilObjectGUI.php";
32 public function __construct($a_data, $a_id, $a_call_by_reference, $a_prepare_output =
true)
40 $this->lng->loadLanguageModule(
'search');
45 $next_class = $this->ctrl->getNextClass($this);
46 $cmd = $this->ctrl->getCmd();
49 switch ($next_class) {
50 case 'ilpermissiongui':
51 $this->tabs_gui->setTabActive(
'perm_settings');
52 include_once(
"Services/AccessControl/classes/class.ilPermissionGUI.php");
54 $ret = &$this->ctrl->forwardCommand($perm_gui);
58 if ($cmd ==
"" || $cmd ==
"view") {
72 $this->ctrl->redirect($this,
"settings");
81 if (!$this->dic->rbac()->system()->checkAccess(
"visible,read", $this->object->getRefId())) {
82 $this->
error->raiseError($this->lng->txt(
'permission_denied'), $this->error->MESSAGE);
84 $this->tabs_gui->setTabActive(
'settings');
86 $this->tpl->setContent($this->form->getHTML());
96 include_once
'Services/WebServices/RPC/classes/class.ilRPCServerSettings.php';
102 if (!
$rbacsystem->checkAccess(
'write', $this->object->getRefId())) {
103 $this->
ilias->raiseError($this->lng->txt(
"permission_denied"), $this->ilias->error_obj->MESSAGE);
106 $this->
object->initSettingsObject();
107 $this->
object->settings_obj->setMaxHits((
int)
$_POST[
'max_hits']);
108 $this->
object->settings_obj->enableIndex($_POST[
'search_index']);
109 $this->
object->settings_obj->enableLucene($_POST[
'search_lucene']);
110 $this->
object->settings_obj->setHideAdvancedSearch($_POST[
'hide_adv_search']);
111 $this->
object->settings_obj->setAutoCompleteLength($_POST[
'auto_complete_length']);
112 $this->
object->settings_obj->setDefaultOperator((
int) $_POST[
'operator']);
113 $this->
object->settings_obj->enableLuceneItemFilter((
int) $_POST[
'if']);
114 $this->
object->settings_obj->setLuceneItemFilter((array)
$_POST[
'filter']);
118 if ($this->object->settings_obj->enabledLucene() and !$rpc_settings->pingServer()) {
120 $this->ctrl->redirect($this,
'settings');
125 $this->
object->settings_obj->update();
128 $this->ctrl->redirect($this,
'settings');
149 if (
$rbacsystem->checkAccess(
"visible,read", $this->object->getRefId())) {
150 $this->tabs_gui->addTarget(
152 $this->ctrl->getLinkTarget($this,
"settings"),
153 array(
"settings",
"",
"view"),
159 if (
$rbacsystem->checkAccess(
'read', $this->object->getRefId())) {
160 $this->tabs_gui->addTarget(
161 'lucene_advanced_settings',
162 $this->ctrl->getLinkTarget($this,
'advancedLuceneSettings')
166 if (
$rbacsystem->checkAccess(
'read', $this->object->getRefId())) {
167 $this->tabs_gui->addTarget(
168 'lucene_settings_tab',
169 $this->ctrl->getLinkTarget($this,
'luceneSettings')
174 if (
$rbacsystem->checkAccess(
'edit_permission', $this->object->getRefId())) {
175 $this->tabs_gui->addTarget(
177 $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilpermissiongui'),
"perm"),
178 array(
"perm",
"info",
"owner"),
197 include_once
'./Services/Form/classes/class.ilPropertyFormGUI.php';
198 include_once
'./Services/Search/classes/class.ilSearchSettings.php';
203 $this->form->setFormAction($this->ctrl->getFormAction($this,
'updateSettings'));
205 if (
$access->checkAccess(
'write',
'', $this->object->getRefId())) {
206 $this->form->addCommandButton(
'updateSettings', $this->lng->txt(
'save'));
208 $this->form->setTitle($this->lng->txt(
'seas_settings'));
212 $hits->setValue(
$settings->getMaxHits());
213 $hits->setRequired(
true);
214 for ($value = 5; $value <= 50; $value += 5) {
215 $values[$value] = $value;
217 $hits->setOptions($values);
218 $hits->setInfo($this->lng->txt(
'seas_max_hits_info'));
219 $this->form->addItem($hits);
232 $type->setRequired(
true);
233 $this->form->addItem(
$type);
237 $operator->setRequired(
true);
238 $operator->setInfo($this->lng->txt(
'lucene_default_operator_info'));
239 $operator->setValue(
$settings->getDefaultOperator());
242 $operator->addOption($and);
245 $operator->addOption($or);
246 $this->form->addItem($operator);
249 $us =
new ilCheckboxInputGUI($this->lng->txt(
'search_user_search_form'),
'user_search_enabled');
250 $us->setInfo($this->lng->txt(
'search_user_search_info_form'));
252 $us->setChecked(
$settings->isLuceneUserSearchEnabled());
253 $this->form->addItem($us);
259 $if->setChecked(
$settings->isLuceneItemFilterEnabled());
260 $if->setInfo($this->lng->txt(
'search_item_filter_form_info'));
261 $this->form->addItem(
$if);
263 $filter =
$settings->getLuceneItemFilter();
266 if (isset($filter[$obj]) and $filter[$obj]) {
267 $ch->setChecked(
true);
270 $if->addSubItem($ch);
274 $cdate->setInfo($this->lng->txt(
'search_cdate_filter_info'));
275 $cdate->setChecked(
$settings->isDateFilterEnabled());
277 $this->form->addItem($cdate);
281 $cb->setChecked(
$settings->getHideAdvancedSearch());
282 $this->form->addItem($cb);
287 $type->addOption($direct);
289 if (
$ilDB->supportsFulltext()) {
295 $type->addOption($lucene);
306 $si->setOptions($options);
307 $val = (
$settings->getAutoCompleteLength() > 0)
311 $this->form->addItem(
$si);
313 $inactive_user =
new ilCheckboxInputGUI($this->lng->txt(
'search_show_inactive_user'),
'inactive_user');
314 $inactive_user->setInfo($this->lng->txt(
'search_show_inactive_user_info'));
315 $inactive_user->setChecked(
$settings->isInactiveUserVisible());
316 $this->form->addItem($inactive_user);
318 $limited_user =
new ilCheckboxInputGUI($this->lng->txt(
'search_show_limited_user'),
'limited_user');
319 $limited_user->setInfo($this->lng->txt(
'search_show_limited_user_info'));
320 $limited_user->setChecked(
$settings->isLimitedUserVisible());
321 $this->form->addItem($limited_user);
333 $ilAccess =
$DIC[
'ilAccess'];
336 $this->form->checkInput();
338 if (!$ilAccess->checkAccess(
'write',
'', $this->object->getRefId())) {
340 $GLOBALS[
'DIC']->ctrl()->redirect($this,
'settings');
343 include_once
'./Services/Search/classes/class.ilSearchSettings.php';
347 switch ((
int)
$_POST[
'search_type']) {
371 $settings->enableLuceneUserSearch((
int)
$_POST[
'user_search_enabled']);
381 }
catch (Exception $exception) {
398 $this->tabs_gui->setTabActive(
'lucene_settings_tab');
403 $this->tpl->setContent($this->form->getHTML());
413 include_once
'./Services/Form/classes/class.ilPropertyFormGUI.php';
414 include_once
'./Services/Search/classes/class.ilSearchSettings.php';
419 $this->form->setFormAction($this->ctrl->getFormAction($this,
'cancel'));
421 $this->form->setTitle($this->lng->txt(
'lucene_settings_title'));
424 if (
$access->checkAccess(
'write',
'', $this->object->getRefId())) {
425 $this->form->addCommandButton(
'saveLuceneSettings', $this->lng->txt(
'save'));
433 $if->setChecked($this->
settings->isLuceneMimeFilterEnabled());
434 $if->setInfo($this->lng->txt(
'search_mime_filter_form_info'));
435 $this->form->addItem(
$if);
437 $mimes = $this->
settings->getLuceneMimeFilter();
440 if (isset($mimes[$mime]) and $mimes[$mime]) {
441 $ch->setChecked(
true);
444 $if->addSubItem($ch);
447 $prefix =
new ilCheckboxInputGUI($this->lng->txt(
'lucene_prefix_wildcard'),
'prefix');
448 $prefix->setValue(1);
449 $prefix->setInfo($this->lng->txt(
'lucene_prefix_wildcard_info'));
450 $prefix->setChecked($this->
settings->isPrefixWildcardQueryEnabled());
451 $this->form->addItem($prefix);
454 $numFrag =
new ilNumberInputGUI($this->lng->txt(
'lucene_num_fragments'),
'fragmentCount');
455 $numFrag->setRequired(
true);
456 $numFrag->setSize(2);
457 $numFrag->setMaxLength(2);
458 $numFrag->setMinValue(1);
459 $numFrag->setMaxValue(10);
460 $numFrag->setInfo($this->lng->txt(
'lucene_num_frag_info'));
461 $numFrag->setValue($this->
settings->getFragmentCount());
462 $this->form->addItem($numFrag);
464 $sizeFrag =
new ilNumberInputGUI($this->lng->txt(
'lucene_size_fragments'),
'fragmentSize');
465 $sizeFrag->setRequired(
true);
466 $sizeFrag->setSize(2);
467 $sizeFrag->setMaxLength(4);
468 $sizeFrag->setMinValue(10);
469 $sizeFrag->setMaxValue(1000);
470 $sizeFrag->setInfo($this->lng->txt(
'lucene_size_frag_info'));
471 $sizeFrag->setValue($this->
settings->getFragmentSize());
472 $this->form->addItem($sizeFrag);
474 $maxSub =
new ilNumberInputGUI($this->lng->txt(
'lucene_max_sub'),
'maxSubitems');
475 $maxSub->setRequired(
true);
477 $maxSub->setMaxLength(2);
478 $maxSub->setMinValue(1);
479 $maxSub->setMaxValue(10);
480 $maxSub->setInfo($this->lng->txt(
'lucene_max_sub_info'));
481 $maxSub->setValue($this->
settings->getMaxSubitems());
482 $this->form->addItem($maxSub);
484 $relevance =
new ilCheckboxInputGUI($this->lng->txt(
'lucene_relevance'),
'relevance');
485 $relevance->setOptionTitle($this->lng->txt(
'lucene_show_relevance'));
486 $relevance->setInfo($this->lng->txt(
'lucene_show_relevance_info'));
487 $relevance->setValue(1);
488 $relevance->setChecked($this->
settings->isRelevanceVisible());
489 $this->form->addItem($relevance);
493 $subrel->setOptionTitle($this->lng->txt(
'lucene_show_sub_relevance'));
494 $subrel->setValue(1);
495 $subrel->setChecked($this->
settings->isSubRelevanceVisible());
496 $relevance->addSubItem($subrel);
499 $last_index =
new ilDateTimeInputGUI($this->lng->txt(
'lucene_last_index_time'),
'last_index');
500 $last_index->setRequired(
true);
501 $last_index->setShowTime(
true);
502 $last_index->setDate($this->
settings->getLastIndexTime());
503 $last_index->setInfo($this->lng->txt(
'lucene_last_index_time_info'));
504 $this->form->addItem($last_index);
525 $settings->setFragmentSize((
int) $_POST[
'fragmentSize']);
534 if ($this->form->checkInput()) {
535 $settings->setLastIndexTime($this->form->getItemByPostVar(
'last_index')->getDate());
544 }
catch (Exception $exception) {
552 $this->form->setValuesByPost();
572 include_once
'./Services/WebServices/RPC/classes/class.ilRpcClientFactory.php';
574 }
catch (Exception $exception) {
575 ilLoggerFactory::getLogger(
'src')->error(
'Refresh of lucene server settings failed with message: ' . $exception->getMessage());
586 $this->tabs_gui->setTabActive(
'lucene_advanced_settings');
588 include_once
'./Services/Search/classes/Lucene/class.ilLuceneAdvancedSearchActivationTableGUI.php';
589 include_once
'./Services/Search/classes/Lucene/class.ilLuceneAdvancedSearchSettings.php';
592 $table->setTitle($this->lng->txt(
'lucene_advanced_settings_table'));
595 $this->tpl->setContent($table->getHTML());
605 if (!
$access->checkAccess(
'write',
'', $this->object->getRefId())) {
607 $GLOBALS[
'DIC']->ctrl()->redirect($this,
'settings');
613 $settings->setActive($field, in_array($field, (array)
$_POST[
'fid']) ?
true :
false);
625 switch ($a_section) {
627 $this->tabs_gui->addSubTabTarget(
628 'lucene_general_settings',
629 $this->ctrl->getLinkTarget($this,
'luceneSettings')
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
An exception for terminatinating execution or to throw for unit testing.
error($a_errmsg)
set error message @access public
static getLogger($a_component_id)
Get component logger.
Activation of meta data fields.
static getFields()
Return an array of all meta data fields.
luceneSettingsObject(ilPropertyFormGUI $form=null)
Lucene settings.
refreshLuceneSettings()
Refresh lucene server settings.
__construct($a_data, $a_id, $a_call_by_reference, $a_prepare_output=true)
Constructor @access public.
advancedLuceneSettingsObject()
show advanced settings
saveAdvancedLuceneSettingsObject()
Save advanced settings.
initFormSettings()
Init settings form.
cancelObject()
cancel action and go back to previous page @access public
updateSettingsObject()
Update Settings.
saveLuceneSettingsObject()
Save Lucene settings.
getAdminTabs()
administration tabs show only permissions and trash folder
settingsObject()
Show settings @access public.
initFormLuceneSettings()
Show lucene settings form.
getTabs()
get tabs @access public
executeCommand()
execute command
saveSettingsObject()
Save settings @access public.
Class ilObjectGUI Basic methods of all Output classes.
prepareOutput($a_show_subobjects=true)
prepare output
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
static getInstance()
Get singelton instance.
This class represents an option in a radio group.
static factory($a_package, $a_timeout=0)
Creates an ilRpcClient instance to our ilServer.
static getLuceneItemFilterDefinitions()
Get lucene item filter definitions.
static getLuceneMimeFilterDefinitions()
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
redirection script todo: (a better solution should control the processing via a xml file)