ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
class.ilObjSystemFolderGUI.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4require_once "./Services/Object/classes/class.ilObjectGUI.php";
5require_once('./Services/Repository/classes/class.ilObjectPlugin.php');
6
19{
23 protected $tabs;
24
28 protected $rbacsystem;
29
33 protected $obj_definition;
34
38 protected $error;
39
43 protected $db;
44
49
53 protected $help;
54
58 protected $client_ini;
59
63 protected $bench;
64
70 public $type;
71
76 public function __construct($a_data, $a_id, $a_call_by_reference)
77 {
78 global $DIC;
79
80 $this->tabs = $DIC->tabs();
81 $this->access = $DIC->access();
82 $this->ctrl = $DIC->ctrl();
83 $this->rbacsystem = $DIC->rbac()->system();
84 $this->user = $DIC->user();
85 $this->obj_definition = $DIC["objDefinition"];
86 $this->settings = $DIC->settings();
87 $this->error = $DIC["ilErr"];
88 $this->db = $DIC->database();
89 $this->style_definition = $DIC["styleDefinition"];
90 $this->lng = $DIC->language();
91 $this->tpl = $DIC["tpl"];
92 $this->help = $DIC["ilHelp"];
93 $this->toolbar = $DIC->toolbar();
94 $this->client_ini = $DIC["ilClientIniFile"];
95 $this->type = "adm";
96 $this->bench = $DIC["ilBench"];
97 parent::__construct($a_data, $a_id, $a_call_by_reference, false);
98
99 $this->lng->loadLanguageModule("administration");
100 $this->lng->loadLanguageModule("adm");
101 }
102
103 public function executeCommand()
104 {
105 $ilTabs = $this->tabs;
106
107 $next_class = $this->ctrl->getNextClass($this);
108 $this->prepareOutput();
109
110 switch ($next_class) {
111 case 'ilpermissiongui':
112 include_once("Services/AccessControl/classes/class.ilPermissionGUI.php");
113 $perm_gui = new ilPermissionGUI($this);
114 $ret = &$this->ctrl->forwardCommand($perm_gui);
115 break;
116
117 case 'ilimprintgui':
118 // page editor will set its own tabs
119 $ilTabs->clearTargets();
120 $ilTabs->setBackTarget(
121 $this->lng->txt("back"),
122 $this->ctrl->getLinkTarget($this, "")
123 );
124
125 include_once("./Services/Imprint/classes/class.ilImprintGUI.php");
126 $igui = new ilImprintGUI();
127
128 // needed for editor
129 $igui->setStyleId(ilObjStyleSheet::getEffectiveContentStyleId(0, "impr"));
130
131 if (!$this->checkPermissionBool("write")) {
132 $igui->setEnableEditing(false);
133 }
134
135 $ret = $this->ctrl->forwardCommand($igui);
136 if ($ret != "") {
137 $this->tpl->setContent($ret);
138 }
139 break;
140
141 case "ilobjectownershipmanagementgui":
142 $this->setSystemCheckSubTabs("no_owner");
143 include_once("Services/Object/classes/class.ilObjectOwnershipManagementGUI.php");
144 $gui = new ilObjectOwnershipManagementGUI(0);
145 $this->ctrl->forwardCommand($gui);
146 break;
147
148 case "ilcronmanagergui":
149 $ilTabs->activateTab("cron_jobs");
150 include_once("Services/Cron/classes/class.ilCronManagerGUI.php");
151 $gui = new ilCronManagerGUI();
152 $this->ctrl->forwardCommand($gui);
153 break;
154
155 default:
156//var_dump($_POST);
157 $cmd = $this->ctrl->getCmd("view");
158
159 $cmd .= "Object";
160 $this->$cmd();
161
162 break;
163 }
164
165 return true;
166 }
167
173 public function viewObject()
174 {
175 $ilAccess = $this->access;
176
177 if ($ilAccess->checkAccess("write", "", $this->object->getRefId())) {
178 return $this->showBasicSettingsObject();
179 }
180 return $this->showServerInfoObject();
181 }
182
183 public function viewScanLogObject()
184 {
185 return $this->viewScanLog();
186 }
187
191 public function setSystemCheckSubTabs($a_activate)
192 {
193 $ilTabs = $this->tabs;
195
196 $ilTabs->addSubTab(
197 "system_check_sub",
198 $this->lng->txt("system_check"),
199 $ilCtrl->getLinkTarget($this, "check")
200 );
201 $ilTabs->addSubTab(
202 "no_owner",
203 $this->lng->txt("system_check_no_owner"),
204 $ilCtrl->getLinkTargetByClass("ilObjectOwnershipManagementGUI")
205 );
206
207 $ilTabs->setSubTabActive($a_activate);
208 $ilTabs->setTabActive("system_check");
209 }
210
216 public function checkObject()
217 {
223
224 $this->setSystemCheckSubTabs("system_check_sub");
225
226 if (!$rbacsystem->checkAccess("visible,read", $this->object->getRefId())) {
227 $ilErr->raiseError($this->lng->txt("permission_denied"), $ilErr->MESSAGE);
228 }
229 //echo "1";
230
231 if ($_POST['count_limit'] !== null || $_POST['age_limit'] !== null || $_POST['type_limit'] !== null) {
232 $ilUser->writePref(
233 'systemcheck_count_limit',
234 (is_numeric($_POST['count_limit']) && $_POST['count_limit'] > 0) ? $_POST['count_limit'] : ''
235 );
236 $ilUser->writePref(
237 'systemcheck_age_limit',
238 (is_numeric($_POST['age_limit']) && $_POST['age_limit'] > 0) ? $_POST['age_limit'] : ''
239 );
240 $ilUser->writePref('systemcheck_type_limit', trim($_POST['type_limit']));
241 }
242
243 if ($_POST["mode"]) {
244 //echo "3";
245 $this->writeCheckParams();
246 $this->startValidator($_POST["mode"], $_POST["log_scan"]);
247 } else {
248 //echo "4";
249 include_once "./Services/Repository/classes/class.ilValidator.php";
250 $validator = new ilValidator();
251 $hasScanLog = $validator->hasScanLog();
252
253 $this->tpl->addBlockFile(
254 "ADM_CONTENT",
255 "adm_content",
256 "tpl.adm_check.html",
257 "Modules/SystemFolder"
258 );
259
260 if ($hasScanLog) {
261 $this->tpl->setVariable("TXT_VIEW_LOG", $this->lng->txt("view_last_log"));
262 }
263
264 $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
265 $this->tpl->setVariable("TXT_TITLE", $this->lng->txt("systemcheck"));
266 $this->tpl->setVariable("COLSPAN", 3);
267 $this->tpl->setVariable("TXT_ANALYZE_TITLE", $this->lng->txt("analyze_data"));
268 $this->tpl->setVariable("TXT_ANALYSIS_OPTIONS", $this->lng->txt("analysis_options"));
269 $this->tpl->setVariable("TXT_REPAIR_OPTIONS", $this->lng->txt("repair_options"));
270 $this->tpl->setVariable("TXT_OUTPUT_OPTIONS", $this->lng->txt("output_options"));
271 $this->tpl->setVariable("TXT_SCAN", $this->lng->txt("scan"));
272 $this->tpl->setVariable("TXT_SCAN_DESC", $this->lng->txt("scan_desc"));
273 $this->tpl->setVariable("TXT_DUMP_TREE", $this->lng->txt("dump_tree"));
274 $this->tpl->setVariable("TXT_DUMP_TREE_DESC", $this->lng->txt("dump_tree_desc"));
275 $this->tpl->setVariable("TXT_CLEAN", $this->lng->txt("clean"));
276 $this->tpl->setVariable("TXT_CLEAN_DESC", $this->lng->txt("clean_desc"));
277 $this->tpl->setVariable("TXT_RESTORE", $this->lng->txt("restore_missing"));
278 $this->tpl->setVariable("TXT_RESTORE_DESC", $this->lng->txt("restore_missing_desc"));
279 $this->tpl->setVariable("TXT_PURGE", $this->lng->txt("purge_missing"));
280 $this->tpl->setVariable("TXT_PURGE_DESC", $this->lng->txt("purge_missing_desc"));
281 $this->tpl->setVariable("TXT_RESTORE_TRASH", $this->lng->txt("restore_trash"));
282 $this->tpl->setVariable("TXT_RESTORE_TRASH_DESC", $this->lng->txt("restore_trash_desc"));
283 $this->tpl->setVariable("TXT_PURGE_TRASH", $this->lng->txt("purge_trash"));
284 $this->tpl->setVariable("TXT_PURGE_TRASH_DESC", $this->lng->txt("purge_trash_desc"));
285 $this->tpl->setVariable("TXT_COUNT_LIMIT", $this->lng->txt("purge_count_limit"));
286 $this->tpl->setVariable("TXT_COUNT_LIMIT_DESC", $this->lng->txt("purge_count_limit_desc"));
287 $this->tpl->setVariable("COUNT_LIMIT_VALUE", $ilUser->getPref("systemcheck_count_limit"));
288 $this->tpl->setVariable("TXT_AGE_LIMIT", $this->lng->txt("purge_age_limit"));
289 $this->tpl->setVariable("TXT_AGE_LIMIT_DESC", $this->lng->txt("purge_age_limit_desc"));
290 $this->tpl->setVariable("AGE_LIMIT_VALUE", $ilUser->getPref("systemcheck_age_limit"));
291 $this->tpl->setVariable("TXT_TYPE_LIMIT", $this->lng->txt("purge_type_limit"));
292 $this->tpl->setVariable("TXT_TYPE_LIMIT_DESC", $this->lng->txt("purge_type_limit_desc"));
293
294 if ($ilUser->getPref('systemcheck_mode_scan')) {
295 $this->tpl->touchBlock('mode_scan_checked');
296 }
297 if ($ilUser->getPref('systemcheck_mode_dump_tree')) {
298 $this->tpl->touchBlock('mode_dump_tree_checked');
299 }
300 if ($ilUser->getPref('systemcheck_mode_clean')) {
301 $this->tpl->touchBlock('mode_clean_checked');
302 }
303 if ($ilUser->getPref('systemcheck_mode_restore')) {
304 $this->tpl->touchBlock('mode_restore_checked');
305 $this->tpl->touchBlock('mode_purge_disabled');
306 } elseif ($ilUser->getPref('systemcheck_mode_purge')) {
307 $this->tpl->touchBlock('mode_purge_checked');
308 $this->tpl->touchBlock('mode_restore_disabled');
309 }
310 if ($ilUser->getPref('systemcheck_mode_restore_trash')) {
311 $this->tpl->touchBlock('mode_restore_trash_checked');
312 $this->tpl->touchBlock('mode_purge_trash_disabled');
313 } elseif ($ilUser->getPref('systemcheck_mode_purge_trash')) {
314 $this->tpl->touchBlock('mode_purge_trash_checked');
315 $this->tpl->touchBlock('mode_restore_trash_disabled');
316 }
317 if ($ilUser->getPref('systemcheck_log_scan')) {
318 $this->tpl->touchBlock('log_scan_checked');
319 }
320
321
322 // #9520 - restrict to types which can be found in tree
323
324 $obj_types_in_tree = array();
325
327 $set = $ilDB->query('SELECT type FROM object_data od' .
328 ' JOIN object_reference ref ON (od.obj_id = ref.obj_id)' .
329 ' JOIN tree ON (tree.child = ref.ref_id)' .
330 ' WHERE tree.tree < 1' .
331 ' GROUP BY type');
332 while ($row = $ilDB->fetchAssoc($set)) {
333 $obj_types_in_tree[] = $row['type'];
334 }
335
336 $types = $objDefinition->getAllObjects();
337 $ts = array("" => "");
338 foreach ($types as $t) {
339 if ($t != "" && !$objDefinition->isSystemObject($t) && $t != "root" &&
340 in_array($t, $obj_types_in_tree)) {
341 if ($objDefinition->isPlugin($t)) {
343 $ts[$t] = $pl->txt("obj_" . $t);
344 } else {
345 $ts[$t] = $this->lng->txt("obj_" . $t);
346 }
347 }
348 }
349 asort($ts);
350 $this->tpl->setVariable(
351 "TYPE_LIMIT_CHOICE",
353 $ilUser->getPref("systemcheck_type_limit"),
354 'type_limit',
355 $ts,
356 false,
357 true
358 )
359 );
360 $this->tpl->setVariable("TXT_LOG_SCAN", $this->lng->txt("log_scan"));
361 $this->tpl->setVariable("TXT_LOG_SCAN_DESC", $this->lng->txt("log_scan_desc"));
362 $this->tpl->setVariable("TXT_SUBMIT", $this->lng->txt("start_scan"));
363
364 $this->tpl->setVariable("TXT_SAVE", $this->lng->txt("save_params_for_cron"));
365
366 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
367
368 $cron_form = new ilPropertyFormGUI();
369 $cron_form->setFormAction($this->ctrl->getFormAction($this));
370 $cron_form->setTitle($this->lng->txt('systemcheck_cronform'));
371
372 $radio_group = new ilRadioGroupInputGUI($this->lng->txt('systemcheck_cron'), 'cronjob');
373 $radio_group->setValue($ilSetting->get('systemcheck_cron'));
374
375 $radio_opt = new ilRadioOption($this->lng->txt('disabled'), 0);
376 $radio_group->addOption($radio_opt);
377
378 $radio_opt = new ilRadioOption($this->lng->txt('enabled'), 1);
379 $radio_group->addOption($radio_opt);
380
381 $cron_form->addItem($radio_group);
382
383 $cron_form->addCommandButton('saveCheckCron', $this->lng->txt('save'));
384
385 $this->tpl->setVariable('CRON_FORM', $cron_form->getHTML());
386 }
387 }
388
389 private function saveCheckParamsObject()
390 {
391 $this->writeCheckParams();
392 unset($_POST['mode']);
393 return $this->checkObject();
394 }
395
396 private function writeCheckParams()
397 {
398 include_once "./Services/Repository/classes/class.ilValidator.php";
399 $validator = new ilValidator();
400 $modes = $validator->getPossibleModes();
401
402 $prefs = array();
403 foreach ($modes as $mode) {
404 if (isset($_POST['mode'][$mode])) {
405 $value = (int) $_POST['mode'][$mode];
406 } else {
407 $value = 0;
408 }
409 $prefs[ 'systemcheck_mode_' . $mode ] = $value;
410 }
411
412 if (isset($_POST['log_scan'])) {
413 $value = (int) $_POST['log_scan'];
414 } else {
415 $value = 0;
416 }
417 $prefs['systemcheck_log_scan'] = $value;
418
420 foreach ($prefs as $key => $val) {
421 $ilUser->writePref($key, $val);
422 }
423 }
424
425 private function saveCheckCronObject()
426 {
428
429 $systemcheck_cron = ($_POST['cronjob'] ? 1 : 0);
430 $ilSetting->set('systemcheck_cron', $systemcheck_cron);
431
432 unset($_POST['mode']);
433 return $this->checkObject();
434 }
435
441 public function changeHeaderTitleObject()
442 {
444 $styleDefinition = $this->style_definition;
445
446 $this->tpl->addBlockFile(
447 "ADM_CONTENT",
448 "adm_content",
449 "tpl.header_title_edit.html",
450 "Modules/SystemFolder"
451 );
452
453 $array_push = true;
454
455 if ($_SESSION["error_post_vars"]) {
456 $_SESSION["translation_post"] = $_SESSION["error_post_vars"];
457 $_GET["mode"] = "session";
458 $array_push = false;
459 }
460
461 // load from db if edit category is called the first time
462 if (($_GET["mode"] != "session")) {
463 $data = $this->object->getHeaderTitleTranslations();
464 $_SESSION["translation_post"] = $data;
465 $array_push = false;
466 } // remove a translation from session
467 elseif ($_GET["entry"] != 0) {
468 array_splice($_SESSION["translation_post"]["Fobject"], $_GET["entry"], 1, array());
469
470 if ($_GET["entry"] == $_SESSION["translation_post"]["default_language"]) {
471 $_SESSION["translation_post"]["default_language"] = "";
472 }
473 }
474
475 $data = $_SESSION["translation_post"];
476
477 // add additional translation form
478 if (!$_GET["entry"] and $array_push) {
479 $count = array_push($data["Fobject"], array("title" => "","desc" => ""));
480 } else {
481 $count = count($data["Fobject"]);
482 }
483
484 // stripslashes in form?
485 $strip = isset($_SESSION["translation_post"]) ? true : false;
486
487 foreach ($data["Fobject"] as $key => $val) {
488 // add translation button
489 if ($key == $count - 1) {
490 $this->tpl->setCurrentBlock("addTranslation");
491 $this->tpl->setVariable("TXT_ADD_TRANSLATION", $this->lng->txt("add_translation") . " >>");
492 $this->tpl->parseCurrentBlock();
493 }
494
495 // remove translation button
496 if ($key != 0) {
497 $this->tpl->setCurrentBlock("removeTranslation");
498 $this->tpl->setVariable("TXT_REMOVE_TRANSLATION", $this->lng->txt("remove_translation"));
499 $this->ctrl->setParameter($this, "entry", $key);
500 $this->ctrl->setParameter($this, "mode", "edit");
501 $this->tpl->setVariable(
502 "LINK_REMOVE_TRANSLATION",
503 $this->ctrl->getLinkTarget($this, "removeTranslation")
504 );
505 $this->tpl->parseCurrentBlock();
506 }
507
508 // lang selection
509 $this->tpl->addBlockFile(
510 "SEL_LANGUAGE",
511 "sel_language",
512 "tpl.lang_selection.html",
513 "Services/MetaData"
514 );
515 $this->tpl->setVariable("SEL_NAME", "Fobject[" . $key . "][lang]");
516
517 include_once('Services/MetaData/classes/class.ilMDLanguageItem.php');
518
519 $languages = ilMDLanguageItem::_getLanguages();
520
521 foreach ($languages as $code => $language) {
522 $this->tpl->setCurrentBlock("lg_option");
523 $this->tpl->setVariable("VAL_LG", $code);
524 $this->tpl->setVariable("TXT_LG", $language);
525
526 if ($code == $val["lang"]) {
527 $this->tpl->setVariable("SELECTED", "selected=\"selected\"");
528 }
529
530 $this->tpl->parseCurrentBlock();
531 }
532
533 // object data
534 $this->tpl->setCurrentBlock("obj_form");
535
536 if ($key == 0) {
537 $this->tpl->setVariable("TXT_HEADER", $this->lng->txt("change_header_title"));
538 } else {
539 $this->tpl->setVariable("TXT_HEADER", $this->lng->txt("translation") . " " . $key);
540 }
541
542 if ($key == $data["default_language"]) {
543 $this->tpl->setVariable("CHECKED", "checked=\"checked\"");
544 }
545
546 $this->tpl->setVariable("TXT_TITLE", $this->lng->txt("title"));
547 $this->tpl->setVariable("TXT_DESC", $this->lng->txt("desc"));
548 $this->tpl->setVariable("TXT_DEFAULT", $this->lng->txt("default"));
549 $this->tpl->setVariable("TXT_LANGUAGE", $this->lng->txt("language"));
550 $this->tpl->setVariable("TITLE", ilUtil::prepareFormOutput($val["title"], $strip));
551 $this->tpl->setVariable("DESC", ilUtil::stripSlashes($val["desc"]));
552 $this->tpl->setVariable("NUM", $key);
553 $this->tpl->parseCurrentBlock();
554 }
555
556 // global
557 $this->tpl->setCurrentBlock("adm_content");
558
559 $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
560 $this->tpl->setVariable("TXT_CANCEL", $this->lng->txt("cancel"));
561 $this->tpl->setVariable("TXT_SUBMIT", $this->lng->txt("save"));
562 $this->tpl->setVariable("CMD_SUBMIT", "saveHeaderTitle");
563 $this->tpl->setVariable("TXT_REQUIRED_FLD", $this->lng->txt("required_field"));
564 }
565
569 public function saveHeaderTitleObject()
570 {
572
573 $data = $_POST;
574
575 // default language set?
576 if (!isset($data["default_language"])) {
577 $ilErr->raiseError($this->lng->txt("msg_no_default_language"), $ilErr->MESSAGE);
578 }
579
580 // prepare array fro further checks
581 foreach ($data["Fobject"] as $key => $val) {
582 $langs[$key] = $val["lang"];
583 }
584
585 $langs = array_count_values($langs);
586
587 // all languages set?
588 if (array_key_exists("", $langs)) {
589 $ilErr->raiseError($this->lng->txt("msg_no_language_selected"), $ilErr->MESSAGE);
590 }
591
592 // no single language is selected more than once?
593 if (array_sum($langs) > count($langs)) {
594 $ilErr->raiseError($this->lng->txt("msg_multi_language_selected"), $ilErr->MESSAGE);
595 }
596
597 // copy default translation to variable for object data entry
598 $_POST["Fobject"]["title"] = $_POST["Fobject"][$_POST["default_language"]]["title"];
599 $_POST["Fobject"]["desc"] = $_POST["Fobject"][$_POST["default_language"]]["desc"];
600
601 // first delete all translation entries...
602 $this->object->removeHeaderTitleTranslations();
603
604 // ...and write new translations to object_translation
605 foreach ($data["Fobject"] as $key => $val) {
606 if ($key == $data["default_language"]) {
607 $default = 1;
608 } else {
609 $default = 0;
610 }
611
612 $this->object->addHeaderTitleTranslation(ilUtil::stripSlashes($val["title"]), ilUtil::stripSlashes($val["desc"]), $val["lang"], $default);
613 }
614
615 ilUtil::sendSuccess($this->lng->txt("msg_obj_modified"), true);
616
617 $this->ctrl->redirect($this);
618 }
619
620 public function cancelObject()
621 {
622 $this->ctrl->redirect($this, "view");
623 }
624
631 {
632 $_SESSION["translation_post"] = $_POST;
633
634 $this->ctrl->setParameter($this, "mode", "session");
635 $this->ctrl->setParameter($this, "entry", "0");
636 $this->ctrl->redirect($this, "changeHeaderTitle");
637 }
638
644 public function removeTranslationObject()
645 {
646 $this->ctrl->setParameter($this, "entry", $_GET["entry"]);
647 $this->ctrl->setParameter($this, "mode", "session");
648 $this->ctrl->redirect($this, "changeHeaderTitle");
649 }
650
651
652 public function startValidator($a_mode, $a_log)
653 {
656
657 if (!$rbacsystem->checkAccess("visible,read", $this->object->getRefId())) {
658 $ilErr->raiseError($this->lng->txt("permission_denied"), $ilErr->MESSAGE);
659 }
660
661 $logging = ($a_log) ? true : false;
662 include_once "./Services/Repository/classes/class.ilValidator.php";
663 $validator = new ilValidator($logging);
664 $validator->setMode("all", false);
665
666 $modes = array();
667 foreach ($a_mode as $mode => $value) {
668 $validator->setMode($mode, (bool) $value);
669 $modes[] = $mode . '=' . $value;
670 }
671
672 $scan_log = $validator->validate();
673
674 $mode = $this->lng->txt("scan_modes") . ": " . implode(', ', $modes);
675
676 // output
677 $this->tpl->addBlockFile(
678 "ADM_CONTENT",
679 "adm_content",
680 "tpl.adm_scan.html",
681 "Modules/SystemFolder"
682 );
683
684 $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
685 $this->tpl->setVariable("TXT_TITLE", $this->lng->txt("scanning_system"));
686 $this->tpl->setVariable("COLSPAN", 3);
687 $this->tpl->setVariable("TXT_SCAN_LOG", $scan_log);
688 $this->tpl->setVariable("TXT_MODE", $mode);
689
690 if ($logging === true) {
691 $this->tpl->setVariable("TXT_VIEW_LOG", $this->lng->txt("view_log"));
692 }
693
694 $this->tpl->setVariable("TXT_DONE", $this->lng->txt("done"));
695
696 $validator->writeScanLogLine($mode);
697 }
698
699 public function viewScanLog()
700 {
701 include_once "./Services/Repository/classes/class.ilValidator.php";
702 $validator = new IlValidator();
703 $scan_log = &$validator->readScanLog();
704
705 if (is_array($scan_log)) {
706 $scan_log = '<pre>' . implode("", $scan_log) . '</pre>';
707 $this->tpl->setVariable("ADM_CONTENT", $scan_log);
708 } else {
709 $scan_log = "no scanlog found.";
710 }
711
712 // output
713 $this->tpl->addBlockFile(
714 "ADM_CONTENT",
715 "adm_content",
716 "tpl.adm_scan.html",
717 "Modules/SystemFolder"
718 );
719 $this->tpl->setVariable("TXT_TITLE", $this->lng->txt("scan_details"));
720 $this->tpl->setVariable("COLSPAN", 3);
721 $this->tpl->setVariable("TXT_SCAN_LOG", $scan_log);
722 $this->tpl->setVariable("TXT_DONE", $this->lng->txt("done"));
723 }
724
725
729 public function benchmarkObject()
730 {
737
738 if (!$rbacsystem->checkAccess("visible,read", $this->object->getRefId())) {
739 $ilErr->raiseError($this->lng->txt("permission_denied"), $ilErr->MESSAGE);
740 }
741
742 $this->benchmarkSubTabs("settings");
743
744 include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
745 $this->form = new ilPropertyFormGUI();
746
747 // Activate DB Benchmark
748 $cb = new ilCheckboxInputGUI($lng->txt("adm_activate_db_benchmark"), "enable_db_bench");
749 $cb->setChecked($ilSetting->get("enable_db_bench"));
750 $cb->setInfo($lng->txt("adm_activate_db_benchmark_desc"));
751 $this->form->addItem($cb);
752
753 // DB Benchmark User
754 $ti = new ilTextInputGUI($lng->txt("adm_db_benchmark_user"), "db_bench_user");
755 $ti->setValue($ilSetting->get("db_bench_user"));
756 $ti->setInfo($lng->txt("adm_db_benchmark_user_desc"));
757 $this->form->addItem($ti);
758
759 $this->form->addCommandButton("saveBenchSettings", $lng->txt("save"));
760
761 $this->form->setTitle($lng->txt("adm_db_benchmark"));
762 $this->form->setFormAction($ilCtrl->getFormAction($this));
763
764 $tpl->setContent($this->form->getHTML());
765 }
766
771 {
772 $this->benchmarkSubTabs("chronological");
773 $this->showDbBenchResults("chronological");
774 }
775
780 {
781 $this->benchmarkSubTabs("slowest_first");
782 $this->showDbBenchResults("slowest_first");
783 }
784
789 {
790 $this->benchmarkSubTabs("sorted_by_sql");
791 $this->showDbBenchResults("sorted_by_sql");
792 }
793
798 {
799 $this->benchmarkSubTabs("by_first_table");
800 $this->showDbBenchResults("by_first_table");
801 }
802
808 public function showDbBenchResults($a_mode)
809 {
811
813 $rec = $ilBench->getDbBenchRecords();
814
815 include_once("./Modules/SystemFolder/classes/class.ilBenchmarkTableGUI.php");
816 $table = new ilBenchmarkTableGUI($this, "benchmark", $rec, $a_mode);
817 $tpl->setContent($table->getHTML());
818 }
819
826 public function benchmarkSubTabs($a_current)
827 {
828 $ilTabs = $this->tabs;
831
833 $ilTabs->activateTab("benchmarks"); // #18083
834
835 $ilTabs->addSubtab(
836 "settings",
837 $lng->txt("settings"),
838 $ilCtrl->getLinkTarget($this, "benchmark")
839 );
840
841 $rec = $ilBench->getDbBenchRecords();
842 if (count($rec) > 0) {
843 $ilTabs->addSubtab(
844 "chronological",
845 $lng->txt("adm_db_bench_chronological"),
846 $ilCtrl->getLinkTarget($this, "showDbBenchChronological")
847 );
848 $ilTabs->addSubtab(
849 "slowest_first",
850 $lng->txt("adm_db_bench_slowest_first"),
851 $ilCtrl->getLinkTarget($this, "showDbBenchSlowestFirst")
852 );
853 $ilTabs->addSubtab(
854 "sorted_by_sql",
855 $lng->txt("adm_db_bench_sorted_by_sql"),
856 $ilCtrl->getLinkTarget($this, "showDbBenchSortedBySql")
857 );
858 $ilTabs->addSubtab(
859 "by_first_table",
860 $lng->txt("adm_db_bench_by_first_table"),
861 $ilCtrl->getLinkTarget($this, "showDbBenchByFirstTable")
862 );
863 }
864
865 $ilTabs->activateSubTab($a_current);
866 }
867
868
872 public function saveBenchSettingsObject()
873 {
875 if ($_POST["enable_db_bench"]) {
876 $ilBench->enableDbBench(true, ilUtil::stripSlashes($_POST["db_bench_user"]));
877 } else {
878 $ilBench->enableDbBench(false);
879 }
880
881 ilUtil::sendSuccess($this->lng->txt("msg_obj_modified"), true);
882
883 $this->ctrl->redirect($this, "benchmark");
884 }
885
886
890 public function switchBenchModuleObject()
891 {
892 $this->ctrl->setParameter($this, 'cur_mod', $_POST['module']);
893 $this->ctrl->redirect($this, "benchmark");
894 }
895
896
900 public function clearBenchObject()
901 {
903 $ilBench->clearData();
905 }
906
907 // get tabs
908 public function getAdminTabs()
909 {
911 $ilHelp = $this->help;
912
913 // $ilHelp->setScreenIdComponent($this->object->getType());
914
915 $this->ctrl->setParameter($this, "ref_id", $this->object->getRefId());
916
917 // general settings
918 if ($rbacsystem->checkAccess("write", $this->object->getRefId())) {
919 $this->tabs_gui->addTarget(
920 "general_settings",
921 $this->ctrl->getLinkTarget($this, "showBasicSettings"),
922 array("showBasicSettings", "saveBasicSettings"),
923 get_class($this)
924 );
925 }
926
927 // server info
928 if ($rbacsystem->checkAccess("visible,read", $this->object->getRefId())) {
929 $this->tabs_gui->addTarget(
930 "server",
931 $this->ctrl->getLinkTarget($this, "showServerInfo"),
932 array("showServerInfo", "view"),
933 get_class($this)
934 );
935 }
936
937 if ($rbacsystem->checkAccess("write", $this->object->getRefId())) {
938 $this->tabs_gui->addTarget(
939 "cron_jobs",
940 $this->ctrl->getLinkTargetByClass("ilCronManagerGUI", ""),
941 "",
942 get_class($this)
943 );
944
945 // $tabs_gui->addTarget("system_check",
946 // $this->ctrl->getLinkTarget($this, "check"), array("check","viewScanLog","saveCheckParams","saveCheckCron"), get_class($this));
947
948 $this->tabs_gui->addTarget(
949 "benchmarks",
950 $this->ctrl->getLinkTarget($this, "benchmark"),
951 "benchmark",
952 get_class($this)
953 );
954 }
955
956 if ($rbacsystem->checkAccess('edit_permission', $this->object->getRefId())) {
957 $this->tabs_gui->addTarget(
958 "perm_settings",
959 $this->ctrl->getLinkTargetByClass(array(get_class($this),'ilpermissiongui'), "perm"),
960 array("perm","info","owner"),
961 'ilpermissiongui'
962 );
963 }
964 }
965
969 public function showPHPInfoObject()
970 {
971 phpinfo();
972 exit;
973 }
974
975 //
976 //
977 // Server Info
978 //
979 //
980
984 public function setServerInfoSubTabs($a_activate)
985 {
986 $ilTabs = $this->tabs;
989
990 $ilTabs->addSubTabTarget("server_data", $ilCtrl->getLinkTarget($this, "showServerInfo"));
991
992 if ($rbacsystem->checkAccess("write", $this->object->getRefId())) {
993 $ilTabs->addSubTabTarget("adm_https", $ilCtrl->getLinkTarget($this, "showHTTPS"));
994 $ilTabs->addSubTabTarget("proxy", $ilCtrl->getLinkTarget($this, "showProxy"));
995 $ilTabs->addSubTabTarget("java_server", $ilCtrl->getLinkTarget($this, "showJavaServer"));
996 $ilTabs->addSubTabTarget("webservices", $ilCtrl->getLinkTarget($this, "showWebServices"));
997 }
998
999 $ilTabs->setSubTabActive($a_activate);
1000 $ilTabs->setTabActive("server");
1001 }
1002
1006 public function showServerInfoObject()
1007 {
1014 $tpl = $this->tpl;
1016 $ilToolbar = $this->toolbar;
1017 $lng = $this->lng;
1018
1019 require_once 'Services/UIComponent/Button/classes/class.ilLinkButton.php';
1020 $button = ilLinkButton::getInstance();
1021 $button->setCaption('vc_information');
1022 $button->setUrl($this->ctrl->getLinkTarget($this, 'showVcsInformation'));
1023 $ilToolbar->addButtonInstance($button);
1024
1025 $this->initServerInfoForm();
1026 $this->setServerInfoSubTabs("server_data");
1027
1028 $btpl = new ilTemplate("tpl.server_data.html", true, true, "Modules/SystemFolder");
1029 $btpl->setVariable("FORM", $this->form->getHTML());
1030 $btpl->setVariable("PHP_INFO_TARGET", $ilCtrl->getLinkTarget($this, "showPHPInfo"));
1031 $tpl->setContent($btpl->get());
1032 }
1033
1039 public function initServerInfoForm()
1040 {
1041 $lng = $this->lng;
1042 $ilClientIniFile = $this->client_ini;
1044
1045 include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
1046 $this->form = new ilPropertyFormGUI();
1047
1048 // installation name
1049 $ne = new ilNonEditableValueGUI($lng->txt("inst_name"), "");
1050 $ne->setValue($ilClientIniFile->readVariable("client", "name"));
1051 $ne->setInfo($ilClientIniFile->readVariable("client", "description"));
1052 $this->form->addItem($ne);
1053
1054 // client id
1055 $ne = new ilNonEditableValueGUI($lng->txt("client_id"), "");
1056 $ne->setValue(CLIENT_ID);
1057 $this->form->addItem($ne);
1058
1059 // installation id
1060 $ne = new ilNonEditableValueGUI($lng->txt("inst_id"), "");
1061 $ne->setValue($ilSetting->get("inst_id"));
1062 $this->form->addItem($ne);
1063
1064 // database version
1065 $ne = new ilNonEditableValueGUI($lng->txt("db_version"), "");
1066 $ne->setValue($ilSetting->get("db_version"));
1067
1068 $this->form->addItem($ne);
1069
1070 // ilias version
1071 $ne = new ilNonEditableValueGUI($lng->txt("ilias_version"), "");
1072 $ne->setValue($ilSetting->get("ilias_version"));
1073 $this->form->addItem($ne);
1074
1075 // host
1076 $ne = new ilNonEditableValueGUI($lng->txt("host"), "");
1077 $ne->setValue($_SERVER["SERVER_NAME"]);
1078 $this->form->addItem($ne);
1079
1080 // ip & port
1081 $ne = new ilNonEditableValueGUI($lng->txt("ip_address") . " & " . $this->lng->txt("port"), "");
1082 $ne->setValue($_SERVER["SERVER_ADDR"] . ":" . $_SERVER["SERVER_PORT"]);
1083 $this->form->addItem($ne);
1084
1085 // server
1086 $ne = new ilNonEditableValueGUI($lng->txt("server_software"), "");
1087 $ne->setValue($_SERVER["SERVER_SOFTWARE"]);
1088 $this->form->addItem($ne);
1089
1090 // http path
1091 $ne = new ilNonEditableValueGUI($lng->txt("http_path"), "");
1092 $ne->setValue(ILIAS_HTTP_PATH);
1093 $this->form->addItem($ne);
1094
1095 // absolute path
1096 $ne = new ilNonEditableValueGUI($lng->txt("absolute_path"), "");
1097 $ne->setValue(ILIAS_ABSOLUTE_PATH);
1098 $this->form->addItem($ne);
1099
1100 $not_set = $lng->txt("path_not_set");
1101
1102 // convert
1103 $ne = new ilNonEditableValueGUI($lng->txt("path_to_convert"), "");
1104 $ne->setValue((PATH_TO_CONVERT) ? PATH_TO_CONVERT : $not_set);
1105 $this->form->addItem($ne);
1106
1107 // zip
1108 $ne = new ilNonEditableValueGUI($lng->txt("path_to_zip"), "");
1109 $ne->setValue((PATH_TO_ZIP) ? PATH_TO_ZIP : $not_set);
1110 $this->form->addItem($ne);
1111
1112 // unzip
1113 $ne = new ilNonEditableValueGUI($lng->txt("path_to_unzip"), "");
1114 $ne->setValue((PATH_TO_UNZIP) ? PATH_TO_UNZIP : $not_set);
1115 $this->form->addItem($ne);
1116
1117 // java
1118 $ne = new ilNonEditableValueGUI($lng->txt("path_to_java"), "");
1119 $ne->setValue((PATH_TO_JAVA) ? PATH_TO_JAVA : $not_set);
1120 $this->form->addItem($ne);
1121
1122 // mkisofs
1123 $ne = new ilNonEditableValueGUI($lng->txt("path_to_mkisofs"), "");
1124 $ne->setValue((PATH_TO_MKISOFS) ? PATH_TO_MKISOFS : $not_set);
1125 $this->form->addItem($ne);
1126
1127 // latex
1128 $ne = new ilNonEditableValueGUI($lng->txt("url_to_latex"), "");
1129 $ne->setValue((URL_TO_LATEX) ? URL_TO_LATEX : $not_set);
1130 $this->form->addItem($ne);
1131
1132
1133 $this->form->setTitle($lng->txt("server_data"));
1134 $this->form->setFormAction($this->ctrl->getFormAction($this));
1135 }
1136
1137 //
1138 //
1139 // General Settings
1140 //
1141 //
1142
1146 public function setGeneralSettingsSubTabs($a_activate)
1147 {
1148 $ilTabs = $this->tabs;
1150
1151 $ilTabs->addSubTabTarget("basic_settings", $ilCtrl->getLinkTarget($this, "showBasicSettings"));
1152 $ilTabs->addSubTabTarget("header_title", $ilCtrl->getLinkTarget($this, "showHeaderTitle"));
1153 $ilTabs->addSubTabTarget("contact_data", $ilCtrl->getLinkTarget($this, "showContactInformation"));
1154 $ilTabs->addSubTabTarget("adm_imprint", $ilCtrl->getLinkTargetByClass("ilimprintgui", "preview"));
1155
1156 $ilTabs->setSubTabActive($a_activate);
1157 $ilTabs->setTabActive("general_settings");
1158 }
1159
1160 //
1161 //
1162 // Basic Settings
1163 //
1164 //
1165
1169 public function showBasicSettingsObject()
1170 {
1171 $tpl = $this->tpl;
1172
1173 $this->initBasicSettingsForm();
1174 $this->setGeneralSettingsSubTabs("basic_settings");
1175
1176 $tpl->setContent($this->form->getHTML());
1177 }
1178
1179
1183 public function initBasicSettingsForm()
1184 {
1189 $lng = $this->lng;
1191
1192 include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
1193 $this->form = new ilPropertyFormGUI();
1194 $lng->loadLanguageModule("pd");
1195
1196 // installation short title
1197 $ti = new ilTextInputGUI($this->lng->txt("short_inst_name"), "short_inst_name");
1198 $ti->setMaxLength(200);
1199 $ti->setSize(40);
1200 $ti->setValue($ilSetting->get("short_inst_name"));
1201 $ti->setInfo($this->lng->txt("short_inst_name_info"));
1202 $this->form->addItem($ti);
1203
1204
1205 $cb = new ilCheckboxInputGUI($this->lng->txt("pub_section"), "pub_section");
1206 $cb->setInfo($lng->txt("pub_section_info"));
1207 if (ilPublicSectionSettings::getInstance()->isEnabled()) {
1208 $cb->setChecked(true);
1209 }
1210 $this->form->addItem($cb);
1211
1212 $this->lng->loadLanguageModule('administration');
1213 $domains = new ilTextInputGUI($this->lng->txt('adm_pub_section_domain_filter'), 'public_section_domains');
1214 $domains->setInfo($this->lng->txt('adm_pub_section_domain_filter_info'));
1215 $domains->setMulti(true);
1216 $domains->setValue(current(ilPublicSectionSettings::getInstance()->getDomains()));
1217 $domains->setMultiValues(ilPublicSectionSettings::getInstance()->getDomains());
1218
1219 $cb->addSubItem($domains);
1220
1221
1222 // Enable Global Profiles
1223 $cb_prop = new ilCheckboxInputGUI($lng->txt('pd_enable_user_publish'), 'enable_global_profiles');
1224 $cb_prop->setInfo($lng->txt('pd_enable_user_publish_info'));
1225 $cb_prop->setChecked($ilSetting->get('enable_global_profiles'));
1226 $cb->addSubItem($cb_prop);
1227
1228 // search engine
1229 include_once('Services/PrivacySecurity/classes/class.ilRobotSettings.php');
1230 $robot_settings = ilRobotSettings::_getInstance();
1231 $cb2 = new ilCheckboxInputGUI($this->lng->txt("search_engine"), "open_google");
1232 $cb2->setInfo($this->lng->txt("enable_search_engine"));
1233 $this->form->addItem($cb2);
1234
1235 if (!$robot_settings->checkRewrite()) {
1236 $cb2->setAlert($lng->txt("allow_override_alert"));
1237 $cb2->setChecked(false);
1238 $cb2->setDisabled(true);
1239 } else {
1240 if ($ilSetting->get("open_google")) {
1241 $cb2->setChecked(true);
1242 }
1243 }
1244
1245 // locale
1246 $ti = new ilTextInputGUI($this->lng->txt("adm_locale"), "locale");
1247 $ti->setMaxLength(80);
1248 $ti->setSize(40);
1249 $ti->setInfo($this->lng->txt("adm_locale_info"));
1250 $ti->setValue($ilSetting->get("locale"));
1251 $this->form->addItem($ti);
1252
1253 // save and cancel commands
1254 $this->form->addCommandButton("saveBasicSettings", $lng->txt("save"));
1255
1256 $this->form->setTitle($lng->txt("basic_settings"));
1257 $this->form->setFormAction($this->ctrl->getFormAction($this));
1258 }
1259
1264 public function saveBasicSettingsObject()
1265 {
1266 $tpl = $this->tpl;
1267 $lng = $this->lng;
1272
1273 if (!$rbacsystem->checkAccess("write", $this->object->getRefId())) {
1274 $ilErr->raiseError($this->lng->txt("permission_denied"), $ilErr->MESSAGE);
1275 }
1276
1277 $this->initBasicSettingsForm();
1278 if ($this->form->checkInput()) {
1279 $ilSetting->set("short_inst_name", $_POST["short_inst_name"]);
1280
1281 $public_section = ilPublicSectionSettings::getInstance();
1282 $public_section->setEnabled($this->form->getInput('pub_section'));
1283
1284 $domains = array();
1285 foreach ((array) $this->form->getInput('public_section_domains') as $domain) {
1286 if (strlen(trim($domain))) {
1287 $domains[] = $domain;
1288 }
1289 }
1290 $public_section->setDomains($domains);
1291 $public_section->save();
1292
1293 $global_profiles = ($_POST["pub_section"])
1294 ? (int) $_POST['enable_global_profiles']
1295 : 0;
1296 $ilSetting->set('enable_global_profiles', $global_profiles);
1297
1298 $ilSetting->set("open_google", $_POST["open_google"]);
1299 $ilSetting->set("locale", $_POST["locale"]);
1300
1301 ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
1302 $ilCtrl->redirect($this, "showBasicSettings");
1303 }
1304 $this->setGeneralSettingsSubTabs("basic_settings");
1305 $this->form->setValuesByPost();
1306 $tpl->setContent($this->form->getHtml());
1307 }
1308
1309 //
1310 //
1311 // Header title
1312 //
1313 //
1314
1318 public function showHeaderTitleObject($a_get_post_values = false)
1319 {
1320 $tpl = $this->tpl;
1321
1322 $this->setGeneralSettingsSubTabs("header_title");
1323 include_once("./Services/Object/classes/class.ilObjectTranslationTableGUI.php");
1324 $table = new ilObjectTranslationTableGUI($this, "showHeaderTitle", false);
1325 if ($a_get_post_values) {
1326 $vals = array();
1327 foreach ($_POST["title"] as $k => $v) {
1328 $vals[] = array("title" => $v,
1329 "desc" => $_POST["desc"][$k],
1330 "lang" => $_POST["lang"][$k],
1331 "default" => ($_POST["default"] == $k));
1332 }
1333 $table->setData($vals);
1334 } else {
1335 $data = $this->object->getHeaderTitleTranslations();
1336 if (is_array($data["Fobject"])) {
1337 foreach ($data["Fobject"] as $k => $v) {
1338 if ($k == $data["default_language"]) {
1339 $data["Fobject"][$k]["default"] = true;
1340 } else {
1341 $data["Fobject"][$k]["default"] = false;
1342 }
1343 }
1344 } else {
1345 $data["Fobject"] = array();
1346 }
1347 $table->setData($data["Fobject"]);
1348 }
1349 $tpl->setContent($table->getHTML());
1350 }
1351
1355 public function saveHeaderTitlesObject()
1356 {
1358 $lng = $this->lng;
1361
1362 if (!$rbacsystem->checkAccess("write", $this->object->getRefId())) {
1363 $ilErr->raiseError($this->lng->txt("permission_denied"), $ilErr->MESSAGE);
1364 }
1365
1366 // var_dump($_POST);
1367
1368 // default language set?
1369 if (!isset($_POST["default"]) && count($_POST["lang"]) > 0) {
1370 ilUtil::sendFailure($lng->txt("msg_no_default_language"));
1371 return $this->showHeaderTitleObject(true);
1372 }
1373
1374 // all languages set?
1375 if (array_key_exists("", $_POST["lang"])) {
1376 ilUtil::sendFailure($lng->txt("msg_no_language_selected"));
1377 return $this->showHeaderTitleObject(true);
1378 }
1379
1380 // no single language is selected more than once?
1381 if (count(array_unique($_POST["lang"])) < count($_POST["lang"])) {
1382 ilUtil::sendFailure($lng->txt("msg_multi_language_selected"));
1383 return $this->showHeaderTitleObject(true);
1384 }
1385
1386 // save the stuff
1387 $this->object->removeHeaderTitleTranslations();
1388 foreach ($_POST["title"] as $k => $v) {
1389 $this->object->addHeaderTitleTranslation(
1391 ilUtil::stripSlashes($_POST["desc"][$k]),
1392 ilUtil::stripSlashes($_POST["lang"][$k]),
1393 ($_POST["default"] == $k)
1394 );
1395 }
1396
1397 ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
1398 $ilCtrl->redirect($this, "showHeaderTitle");
1399 }
1400
1404 public function addHeaderTitleObject()
1405 {
1407 $lng = $this->lng;
1408
1409 if (is_array($_POST["title"])) {
1410 foreach ($_POST["title"] as $k => $v) {
1411 }
1412 }
1413 $k++;
1414 $_POST["title"][$k] = "";
1415 $this->showHeaderTitleObject(true);
1416 }
1417
1422 {
1424 $lng = $this->lng;
1425 //var_dump($_POST);
1426 foreach ($_POST["title"] as $k => $v) {
1427 if ($_POST["check"][$k]) {
1428 unset($_POST["title"][$k]);
1429 unset($_POST["desc"][$k]);
1430 unset($_POST["lang"][$k]);
1431 if ($k == $_POST["default"]) {
1432 unset($_POST["default"]);
1433 }
1434 }
1435 }
1436 $this->saveHeaderTitlesObject();
1437 }
1438
1439
1440 //
1441 //
1442 // Cron Jobs
1443 //
1444 //
1445
1446 /*
1447 * OLD GLOBAL CRON JOB SWITCHES (ilSetting)
1448 *
1449 * cron_user_check => obsolete
1450 * cron_inactive_user_delete => obsolete
1451 * cron_inactivated_user_delete => obsolete
1452 * cron_link_check => obsolete
1453 * cron_web_resource_check => migrated
1454 * cron_lucene_index => obsolete
1455 * forum_notification => migrated
1456 * mail_notification => migrated
1457 * disk_quota/enabled => migrated
1458 * crsgrp_ntf => migrated
1459 * cron_upd_adrbook => migrated
1460 */
1461
1462 public function jumpToCronJobsObject()
1463 {
1464 // #13010 - this is used for external settings
1465 $this->ctrl->redirectByClass("ilCronManagerGUI", "render");
1466 }
1467
1468
1469 //
1470 //
1471 // Contact Information
1472 //
1473 //
1474
1479 {
1480 $tpl = $this->tpl;
1481
1483 $this->setGeneralSettingsSubTabs("contact_data");
1484 $tpl->setContent($this->form->getHTML());
1485 }
1486
1491 {
1492 $lng = $this->lng;
1494
1495 include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
1496 $this->form = new ilPropertyFormGUI();
1497
1498 // first name
1499 $ti = new ilTextInputGUI($this->lng->txt("firstname"), "admin_firstname");
1500 $ti->setMaxLength(64);
1501 $ti->setSize(40);
1502 $ti->setRequired(true);
1503 $ti->setValue($ilSetting->get("admin_firstname"));
1504 $this->form->addItem($ti);
1505
1506 // last name
1507 $ti = new ilTextInputGUI($this->lng->txt("lastname"), "admin_lastname");
1508 $ti->setMaxLength(64);
1509 $ti->setSize(40);
1510 $ti->setRequired(true);
1511 $ti->setValue($ilSetting->get("admin_lastname"));
1512 $this->form->addItem($ti);
1513
1514 // title
1515 $ti = new ilTextInputGUI($this->lng->txt("title"), "admin_title");
1516 $ti->setMaxLength(64);
1517 $ti->setSize(40);
1518 $ti->setValue($ilSetting->get("admin_title"));
1519 $this->form->addItem($ti);
1520
1521 // position
1522 $ti = new ilTextInputGUI($this->lng->txt("position"), "admin_position");
1523 $ti->setMaxLength(64);
1524 $ti->setSize(40);
1525 $ti->setValue($ilSetting->get("admin_position"));
1526 $this->form->addItem($ti);
1527
1528 // institution
1529 $ti = new ilTextInputGUI($this->lng->txt("institution"), "admin_institution");
1530 $ti->setMaxLength(200);
1531 $ti->setSize(40);
1532 $ti->setValue($ilSetting->get("admin_institution"));
1533 $this->form->addItem($ti);
1534
1535 // street
1536 $ti = new ilTextInputGUI($this->lng->txt("street"), "admin_street");
1537 $ti->setMaxLength(64);
1538 $ti->setSize(40);
1539 //$ti->setRequired(true);
1540 $ti->setValue($ilSetting->get("admin_street"));
1541 $this->form->addItem($ti);
1542
1543 // zip code
1544 $ti = new ilTextInputGUI($this->lng->txt("zipcode"), "admin_zipcode");
1545 $ti->setMaxLength(10);
1546 $ti->setSize(5);
1547 //$ti->setRequired(true);
1548 $ti->setValue($ilSetting->get("admin_zipcode"));
1549 $this->form->addItem($ti);
1550
1551 // city
1552 $ti = new ilTextInputGUI($this->lng->txt("city"), "admin_city");
1553 $ti->setMaxLength(64);
1554 $ti->setSize(40);
1555 //$ti->setRequired(true);
1556 $ti->setValue($ilSetting->get("admin_city"));
1557 $this->form->addItem($ti);
1558
1559 // country
1560 $ti = new ilTextInputGUI($this->lng->txt("country"), "admin_country");
1561 $ti->setMaxLength(64);
1562 $ti->setSize(40);
1563 //$ti->setRequired(true);
1564 $ti->setValue($ilSetting->get("admin_country"));
1565 $this->form->addItem($ti);
1566
1567 // phone
1568 $ti = new ilTextInputGUI($this->lng->txt("phone"), "admin_phone");
1569 $ti->setMaxLength(64);
1570 $ti->setSize(40);
1571 //$ti->setRequired(true);
1572 $ti->setValue($ilSetting->get("admin_phone"));
1573 $this->form->addItem($ti);
1574
1575 // email
1576 $ti = new ilEmailInputGUI($this->lng->txt("email"), "admin_email");
1577 $ti->setMaxLength(64);
1578 $ti->setSize(40);
1579 $ti->setRequired(true);
1580 $ti->allowRFC822(true);
1581 $ti->setValue($ilSetting->get("admin_email"));
1582 $this->form->addItem($ti);
1583
1584 // feedback recipient
1585 /* currently used in:
1586 - footer
1587 - terms of service: no document found message
1588 */
1589 /*$ti = new ilEmailInputGUI($this->lng->txt("feedback_recipient"), "feedback_recipient");
1590 $ti->setInfo(sprintf($this->lng->txt("feedback_recipient_info"), $this->lng->txt("contact_sysadmin")));
1591 $ti->setMaxLength(64);
1592 $ti->setSize(40);
1593 $ti->setRequired(true);
1594 $ti->allowRFC822(true);
1595 $ti->setValue($ilSetting->get("feedback_recipient"));
1596 $this->form->addItem($ti);*/
1597
1598 // System support contacts
1599 include_once("./Modules/SystemFolder/classes/class.ilSystemSupportContacts.php");
1600 $ti = new ilTextInputGUI($this->lng->txt("adm_support_contacts"), "adm_support_contacts");
1601 $ti->setMaxLength(500);
1602 $ti->setValue(ilSystemSupportContacts::getList());
1603 //$ti->setSize();
1604 $ti->setInfo($this->lng->txt("adm_support_contacts_info"));
1605 $this->form->addItem($ti);
1606
1607 // Accessibility support contacts
1608 $ti = new ilTextInputGUI($this->lng->txt("adm_accessibility_contacts"), "accessibility_support_contacts");
1609 $ti->setMaxLength(500);
1611 //$ti->setSize();
1612 $ti->setInfo($this->lng->txt("adm_accessibility_contacts_info"));
1613 $this->form->addItem($ti);
1614
1615
1616 // error recipient
1617 /*$ti = new ilEmailInputGUI($this->lng->txt("error_recipient"), "error_recipient");
1618 $ti->setMaxLength(64);
1619 $ti->setSize(40);
1620 $ti->allowRFC822(true);
1621 $ti->setValue($ilSetting->get("error_recipient"));
1622 $this->form->addItem($ti);*/
1623
1624 $this->form->addCommandButton("saveContactInformation", $lng->txt("save"));
1625
1626 $this->form->setTitle($lng->txt("contact_data"));
1627 $this->form->setFormAction($this->ctrl->getFormAction($this));
1628 }
1629
1635 {
1636 $tpl = $this->tpl;
1637 $lng = $this->lng;
1642
1643 if (!$rbacsystem->checkAccess("write", $this->object->getRefId())) {
1644 $ilErr->raiseError($this->lng->txt("permission_denied"), $ilErr->MESSAGE);
1645 }
1646
1648 if ($this->form->checkInput()) {
1649 $fs = array("admin_firstname", "admin_lastname", "admin_title", "admin_position",
1650 "admin_institution", "admin_street", "admin_zipcode", "admin_city",
1651 "admin_country", "admin_phone", "admin_email");
1652 foreach ($fs as $f) {
1653 $ilSetting->set($f, $_POST[$f]);
1654 }
1655
1656 // System support contacts
1657 include_once("./Modules/SystemFolder/classes/class.ilSystemSupportContacts.php");
1658 ilSystemSupportContacts::setList($_POST["adm_support_contacts"]);
1659
1660 // Accessibility support contacts
1661 ilAccessibilitySupportContacts::setList($_POST["accessibility_support_contacts"]);
1662
1663 ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
1664 $ilCtrl->redirect($this, "showContactInformation");
1665 } else {
1666 $this->setGeneralSettingsSubTabs("contact_data");
1667 $this->form->setValuesByPost();
1668 $tpl->setContent($this->form->getHtml());
1669 }
1670 }
1671
1672 //
1673 //
1674 // Web Services
1675 //
1676 //
1677
1681 public function showWebServicesObject()
1682 {
1683 $tpl = $this->tpl;
1684
1685 $this->initWebServicesForm();
1686 $this->setServerInfoSubTabs("webservices");
1687 $tpl->setContent($this->form->getHTML());
1688 }
1689
1693 public function initWebServicesForm()
1694 {
1695 $lng = $this->lng;
1697
1698 include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
1699 $this->form = new ilPropertyFormGUI();
1700
1701 // soap administration
1702 $cb = new ilCheckboxInputGUI($this->lng->txt("soap_user_administration"), "soap_user_administration");
1703 $cb->setInfo($this->lng->txt("soap_user_administration_desc"));
1704 if ($ilSetting->get("soap_user_administration")) {
1705 $cb->setChecked(true);
1706 }
1707 $this->form->addItem($cb);
1708
1709 // wsdl path
1710 $wsdl = new ilTextInputGUI($this->lng->txt('soap_wsdl_path'), 'soap_wsdl_path');
1711 $wsdl->setInfo(sprintf($this->lng->txt('soap_wsdl_path_info'), "<br />'" . ILIAS_HTTP_PATH . "/webservice/soap/server.php?wsdl'"));
1712 $wsdl->setValue((string) $ilSetting->get('soap_wsdl_path'));
1713 $wsdl->setSize(60);
1714 $wsdl->setMaxLength(255);
1715 $this->form->addItem($wsdl);
1716
1717 // response timeout
1718 $ctime = new ilNumberInputGUI($this->lng->txt('soap_connect_timeout'), 'ctimeout');
1719 $ctime->setMinValue(1);
1720 $ctime->setSize(2);
1721 $ctime->setMaxLength(3);
1722 include_once './Services/WebServices/SOAP/classes/class.ilSoapClient.php';
1723 $ctime->setValue((int) $ilSetting->get('soap_connect_timeout', ilSoapClient::DEFAULT_CONNECT_TIMEOUT));
1724 $ctime->setInfo($this->lng->txt('soap_connect_timeout_info'));
1725 $this->form->addItem($ctime);
1726
1727 $this->form->addCommandButton("saveWebServices", $lng->txt("save"));
1728
1729 $this->form->setTitle($lng->txt("webservices"));
1730 $this->form->setFormAction($this->ctrl->getFormAction($this));
1731 }
1732
1737 public function saveWebServicesObject()
1738 {
1739 $tpl = $this->tpl;
1740 $lng = $this->lng;
1745
1746 if (!$rbacsystem->checkAccess("write", $this->object->getRefId())) {
1747 $ilErr->raiseError($this->lng->txt("permission_denied"), $ilErr->MESSAGE);
1748 }
1749
1750 $this->initWebServicesForm();
1751 if ($this->form->checkInput()) {
1752 $ilSetting->set('soap_user_administration', $this->form->getInput('soap_user_administration'));
1753 $ilSetting->set('soap_wsdl_path', trim($this->form->getInput('soap_wsdl_path')));
1754 $ilSetting->set('soap_connect_timeout', $this->form->getInput('ctimeout'));
1755
1756 ilUtil::sendSuccess($lng->txt('msg_obj_modified'), true);
1757 $ilCtrl->redirect($this, 'showWebServices');
1758 } else {
1759 $this->setGeneralSettingsSubTabs("webservices");
1760 $this->form->setValuesByPost();
1761 $tpl->setContent($this->form->getHtml());
1762 }
1763 }
1764
1765 //
1766 //
1767 // Java Server
1768 //
1769 //
1770
1774 public function showJavaServerObject()
1775 {
1776 $tpl = $this->tpl;
1777
1778 $tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.java_settings.html', 'Modules/SystemFolder');
1779
1780 $GLOBALS['lng']->loadLanguageModule('search');
1781
1782 include_once './Services/UIComponent/Toolbar/classes/class.ilToolbarGUI.php';
1783 $toolbar = new ilToolbarGUI();
1784 $toolbar->addButton(
1785 $this->lng->txt('lucene_create_ini'),
1786 $this->ctrl->getLinkTarget($this, 'createJavaServerIni')
1787 );
1788 $tpl->setVariable('ACTION_BUTTONS', $toolbar->getHTML());
1789
1790 $this->initJavaServerForm();
1791 $this->setServerInfoSubTabs("java_server");
1792 $tpl->setVariable('SETTINGS_TABLE', $this->form->getHTML());
1793 }
1794
1800 {
1801 $this->setGeneralSettingsSubTabs('java_server');
1802 $this->initJavaServerIniForm();
1803 $this->tpl->setContent($this->form->getHTML());
1804 }
1805
1806 protected function initJavaServerIniForm()
1807 {
1808 include_once './Services/Form/classes/class.ilPropertyFormGUI.php';
1809
1810 $this->form = new ilPropertyFormGUI();
1811
1812 $GLOBALS['lng']->loadLanguageModule('search');
1813
1814 $this->form->setTitle($this->lng->txt('lucene_tbl_create_ini'));
1815 $this->form->setFormAction($this->ctrl->getFormAction($this, 'createJavaServerIni'));
1816 $this->form->addCommandButton('downloadJavaServerIni', $this->lng->txt('lucene_download_ini'));
1817 $this->form->addCommandButton('showJavaServer', $this->lng->txt('cancel'));
1818
1819 // Host
1820 $ip = new ilTextInputGUI($this->lng->txt('lucene_host'), 'ho');
1821 $ip->setInfo($this->lng->txt('lucene_host_info'));
1822 $ip->setMaxLength(128);
1823 $ip->setSize(32);
1824 $ip->setRequired(true);
1825 $this->form->addItem($ip);
1826
1827 // Port
1828 $port = new ilNumberInputGUI($this->lng->txt('lucene_port'), 'po');
1829 $port->setSize(5);
1830 $port->setMinValue(1);
1831 $port->setMaxValue(65535);
1832 $port->setRequired(true);
1833 $this->form->addItem($port);
1834
1835 // Index Path
1836 $path = new ilTextInputGUI($this->lng->txt('lucene_index_path'), 'in');
1837 $path->setSize(80);
1838 $path->setMaxLength(1024);
1839 $path->setInfo($this->lng->txt('lucene_index_path_info'));
1840 $path->setRequired(true);
1841 $this->form->addItem($path);
1842
1843 // Logging
1844 $log = new ilTextInputGUI($this->lng->txt('lucene_log'), 'lo');
1845 $log->setSize(80);
1846 $log->setMaxLength(1024);
1847 $log->setInfo($this->lng->txt('lucene_log_info'));
1848 $log->setRequired(true);
1849 $this->form->addItem($log);
1850
1851 // Level
1852 $lev = new ilSelectInputGUI($this->lng->txt('lucene_level'), 'le');
1853 $lev->setOptions(array(
1854 'DEBUG' => 'DEBUG',
1855 'INFO' => 'INFO',
1856 'WARN' => 'WARN',
1857 'ERROR' => 'ERROR',
1858 'FATAL' => 'FATAL'));
1859 $lev->setValue('INFO');
1860 $lev->setRequired(true);
1861 $this->form->addItem($lev);
1862
1863 // CPU
1864 $cpu = new ilNumberInputGUI($this->lng->txt('lucene_cpu'), 'cp');
1865 $cpu->setValue(1);
1866 $cpu->setSize(1);
1867 $cpu->setMaxLength(2);
1868 $cpu->setMinValue(1);
1869 $cpu->setRequired(true);
1870 $this->form->addItem($cpu);
1871
1872 // Max file size
1873 $fs = new ilNumberInputGUI($this->lng->txt('lucene_max_fs'), 'fs');
1874 $fs->setInfo($this->lng->txt('lucene_max_fs_info'));
1875 $fs->setValue(500);
1876 $fs->setSize(4);
1877 $fs->setMaxLength(4);
1878 $fs->setMinValue(1);
1879 $fs->setRequired(true);
1880 $this->form->addItem($fs);
1881
1882 return true;
1883 }
1884
1889 protected function downloadJavaServerIniObject()
1890 {
1891 $this->initJavaServerIniForm();
1892 if ($this->form->checkInput()) {
1893 include_once './Services/WebServices/RPC/classes/class.ilRpcIniFileWriter.php';
1894 $ini = new ilRpcIniFileWriter();
1895 $ini->setHost($this->form->getInput('ho'));
1896 $ini->setPort($this->form->getInput('po'));
1897 $ini->setIndexPath($this->form->getInput('in'));
1898 $ini->setLogPath($this->form->getInput('lo'));
1899 $ini->setLogLevel($this->form->getInput('le'));
1900 $ini->setNumThreads($this->form->getInput('cp'));
1901 $ini->setMaxFileSize($this->form->getInput('fs'));
1902
1903 $ini->write();
1904 ilUtil::deliverData($ini->getIniString(), 'ilServer.ini', 'text/plain', 'utf-8');
1905 return true;
1906 }
1907
1908 $this->form->setValuesByPost();
1909 ilUtil::sendFailure($this->lng->txt('err_check_input'));
1910 $this->setGeneralSettingsSubTabs('java_server');
1911 $this->tpl->setContent($this->form->getHTML());
1912 return true;
1913 }
1914
1918 public function initJavaServerForm()
1919 {
1920 $lng = $this->lng;
1922
1923 include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
1924 $this->form = new ilPropertyFormGUI();
1925
1926 // host
1927 $ti = new ilTextInputGUI($this->lng->txt("java_server_host"), "rpc_server_host");
1928 $ti->setMaxLength(64);
1929 $ti->setSize(32);
1930 $ti->setValue($ilSetting->get("rpc_server_host"));
1931 $this->form->addItem($ti);
1932
1933 // port
1934 $ti = new ilNumberInputGUI($this->lng->txt("java_server_port"), "rpc_server_port");
1935 $ti->setMaxLength(5);
1936 $ti->setSize(5);
1937 $ti->setValue($ilSetting->get("rpc_server_port"));
1938 $this->form->addItem($ti);
1939
1940 // pdf fonts
1941 $pdf = new ilFormSectionHeaderGUI();
1942 $pdf->setTitle($this->lng->txt('rpc_pdf_generation'));
1943 $this->form->addItem($pdf);
1944
1945 $pdf_font = new ilTextInputGUI($this->lng->txt('rpc_pdf_font'), 'rpc_pdf_font');
1946 $pdf_font->setInfo($this->lng->txt('rpc_pdf_font_info'));
1947 $pdf_font->setSize(64);
1948 $pdf_font->setMaxLength(1024);
1949 $pdf_font->setRequired(true);
1950 $pdf_font->setValue(
1951 $ilSetting->get('rpc_pdf_font', 'Helvetica, unifont')
1952 );
1953 $this->form->addItem($pdf_font);
1954
1955
1956 // save and cancel commands
1957 $this->form->addCommandButton("saveJavaServer", $lng->txt("save"));
1958
1959 $this->form->setTitle($lng->txt("java_server"));
1960 $this->form->setDescription($lng->txt("java_server_info") .
1961 '<br /><a href="Services/WebServices/RPC/lib/README.md" target="_blank">' .
1962 $lng->txt("java_server_readme") . '</a>');
1963 $this->form->setFormAction($this->ctrl->getFormAction($this));
1964 }
1965
1970 public function saveJavaServerObject()
1971 {
1972 $tpl = $this->tpl;
1973 $lng = $this->lng;
1978
1979 if (!$rbacsystem->checkAccess("write", $this->object->getRefId())) {
1980 $ilErr->raiseError($this->lng->txt("permission_denied"), $ilErr->MESSAGE);
1981 }
1982
1983 $this->initJavaServerForm();
1984 if ($this->form->checkInput()) {
1985 $ilSetting->set("rpc_server_host", trim($_POST["rpc_server_host"]));
1986 $ilSetting->set("rpc_server_port", trim($_POST["rpc_server_port"]));
1987 $ilSetting->set('rpc_pdf_font', ilUtil::stripSlashes($_POST['rpc_pdf_font']));
1988 ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
1989 $ilCtrl->redirect($this, "showJavaServer");
1990
1991 // TODO check settings, ping server
1992 } else {
1993 $this->setGeneralSettingsSubTabs("java_server");
1994 $this->form->setValuesByPost();
1995 $tpl->setContent($this->form->getHtml());
1996 }
1997 }
1998
2006 public function showProxyObject()
2007 {
2008 $tpl = $this->tpl;
2009 $ilAccess = $this->access;
2011
2012 if (!$ilAccess->checkAccess('write', '', $this->object->getRefId())) {
2013 $ilErr->raiseError($this->lng->txt('permission_denied'), $ilErr->MESSAGE);
2014 }
2015
2016 require_once './Services/Http/classes/class.ilProxySettings.php';
2017
2018 $this->initProxyForm();
2019 $this->form->setValuesByArray(array(
2020 'proxy_status' => ilProxySettings::_getInstance()->isActive(),
2021 'proxy_host' => ilProxySettings::_getInstance()->getHost(),
2022 'proxy_port' => ilProxySettings::_getInstance()->getPort()
2023 ));
2024 if (ilProxySettings::_getInstance()->isActive()) {
2025 $this->printProxyStatus();
2026 }
2027
2028 $tpl->setContent($this->form->getHTML());
2029 }
2030
2038 private function printProxyStatus()
2039 {
2040 try {
2041 ilProxySettings::_getInstance()->checkConnection();
2042 $this->form->getItemByPostVar('proxy_availability')->setHTML(
2043 '<img src="' . ilUtil::getImagePath('icon_ok.svg') . '" /> ' .
2044 $this->lng->txt('proxy_connectable')
2045 );
2046 } catch (ilProxyException $e) {
2047 $this->form->getItemByPostVar('proxy_availability')->setHTML(
2048 '<img src="' . ilUtil::getImagePath('icon_not_ok.svg') . '" /> ' .
2049 $this->lng->txt('proxy_not_connectable')
2050 );
2051 ilUtil::sendFailure(sprintf($this->lng->txt('proxy_socket_error'), $e->getMessage()));
2052 }
2053 }
2054
2062 public function saveProxyObject()
2063 {
2064 $tpl = $this->tpl;
2065 $ilAccess = $this->access;
2067 $lng = $this->lng;
2068
2069 if (!$ilAccess->checkAccess('write', '', $this->object->getRefId())) {
2070 $ilErr->raiseError($lng->txt('permission_denied'), $ilErr->MESSAGE);
2071 }
2072
2073 require_once './Services/Http/classes/class.ilProxySettings.php';
2074
2075 $this->initProxyForm();
2076 $isFormValid = $this->form->checkInput();
2077 ilProxySettings::_getInstance()->isActive((int) $this->form->getInput('proxy_status'))
2078 ->setHost(trim($this->form->getInput('proxy_host')))
2079 ->setPort(trim($this->form->getInput('proxy_port')));
2080 if ($isFormValid) {
2081 if (ilProxySettings::_getInstance()->isActive()) {
2082 if (!strlen(ilProxySettings::_getInstance()->getHost())) {
2083 $isFormValid = false;
2084 $this->form->getItemByPostVar('proxy_host')->setAlert($lng->txt('msg_input_is_required'));
2085 }
2086 if (!strlen(ilProxySettings::_getInstance()->getPort())) {
2087 $isFormValid = false;
2088 $this->form->getItemByPostVar('proxy_port')->setAlert($lng->txt('msg_input_is_required'));
2089 }
2090 if (!preg_match('/[0-9]{1,}/', ilProxySettings::_getInstance()->getPort()) ||
2091 ilProxySettings::_getInstance()->getPort() < 0 ||
2092 ilProxySettings::_getInstance()->getPort() > 65535) {
2093 $isFormValid = false;
2094 $this->form->getItemByPostVar('proxy_port')->setAlert($lng->txt('proxy_port_numeric'));
2095 }
2096 }
2097
2098 if ($isFormValid) {
2100 ilUtil::sendSuccess($lng->txt('saved_successfully'));
2101 if (ilProxySettings::_getInstance()->isActive()) {
2102 $this->printProxyStatus();
2103 }
2104 } else {
2105 ilUtil::sendFailure($lng->txt('form_input_not_valid'));
2106 }
2107 }
2108
2109 $this->form->setValuesByPost();
2110 $tpl->setContent($this->form->getHTML());
2111 }
2112
2120 private function initProxyForm()
2121 {
2122 $lng = $this->lng;
2124
2125 $this->setServerInfoSubTabs('proxy');
2126
2127 include_once('Services/Form/classes/class.ilPropertyFormGUI.php');
2128 $this->form = new ilPropertyFormGUI();
2129 $this->form->setFormAction($ilCtrl->getFormAction($this, 'saveProxy'));
2130
2131 // Proxy status
2132 $proxs = new ilCheckboxInputGUI($lng->txt('proxy_status'), 'proxy_status');
2133 $proxs->setInfo($lng->txt('proxy_status_info'));
2134 $proxs->setValue(1);
2135 $this->form->addItem($proxs);
2136
2137 // Proxy availability
2138 $proxa = new ilCustomInputGUI('', 'proxy_availability');
2139 $proxs->addSubItem($proxa);
2140
2141 // Proxy
2142 $prox = new ilTextInputGUI($lng->txt('proxy_host'), 'proxy_host');
2143 $prox->setInfo($lng->txt('proxy_host_info'));
2144 $proxs->addSubItem($prox);
2145
2146 // Proxy Port
2147 $proxp = new ilTextInputGUI($lng->txt('proxy_port'), 'proxy_port');
2148 $proxp->setInfo($lng->txt('proxy_port_info'));
2149 $proxp->setSize(10);
2150 $proxp->setMaxLength(10);
2151 $proxs->addSubItem($proxp);
2152
2153 // save and cancel commands
2154 $this->form->addCommandButton('saveProxy', $lng->txt('save'));
2155 }
2156
2157 public function showHTTPSObject()
2158 {
2159 $tpl = $this->tpl;
2160 $ilAccess = $this->access;
2162
2163 if (!$ilAccess->checkAccess('write', '', $this->object->getRefId())) {
2164 $ilErr->raiseError($this->lng->txt('permission_denied'), $ilErr->MESSAGE);
2165 }
2166
2167 $form = $this->initHTTPSForm();
2168 $tpl->setContent($form->getHTML());
2169 }
2170
2171 public function saveHTTPSObject()
2172 {
2173 $tpl = $this->tpl;
2174 $lng = $this->lng;
2176
2177 $form = $this->initHTTPSForm();
2178 if ($form->checkInput()) {
2180
2181 // ilias https handling settings
2182 $security->setHTTPSEnabled($_POST["https_enabled"]);
2183
2184 if ($security->validate($form)) {
2185 $security->save();
2186
2187 ilUtil::sendSuccess($lng->txt('saved_successfully'), true);
2188 $ilCtrl->redirect($this, "showHTTPS");
2189 }
2190 }
2191
2192 $form->setValuesByPost();
2193 $tpl->setContent($form->getHTML());
2194 }
2195
2196 private function initHTTPSForm()
2197 {
2199 $lng = $this->lng;
2200
2201 $this->setServerInfoSubTabs('adm_https');
2202
2203 $lng->loadLanguageModule('ps');
2204
2205 include_once('./Services/PrivacySecurity/classes/class.ilSecuritySettings.php');
2207
2208 include_once('Services/Form/classes/class.ilPropertyFormGUI.php');
2209 $form = new ilPropertyFormGUI();
2210 $form->setTitle($lng->txt("adm_https"));
2211 $form->setFormAction($ilCtrl->getFormAction($this, 'saveHTTPS'));
2212
2213 $check2 = new ilCheckboxInputGUI($lng->txt('activate_https'), 'https_enabled');
2214 $check2->setChecked($security->isHTTPSEnabled() ? 1 : 0);
2215 $check2->setValue(1);
2216 $form->addItem($check2);
2217
2218 // save and cancel commands
2219 $form->addCommandButton('saveHTTPS', $lng->txt('save'));
2220
2221 return $form;
2222 }
2223
2224 public function addToExternalSettingsForm($a_form_id)
2225 {
2226 switch ($a_form_id) {
2228
2229 include_once('./Services/PrivacySecurity/classes/class.ilSecuritySettings.php');
2231
2232 $subitems = null;
2233
2234 $fields['activate_https'] =
2235 array($security->isHTTPSEnabled(), ilAdministrationSettingsFormHandler::VALUE_BOOL);
2236
2237 return array("general_settings" => array("showHTTPS", $fields));
2238 }
2239 }
2240
2244 public static function _goto()
2245 {
2246 global $DIC;
2247
2248 $ilAccess = $DIC->access();
2249 $ilErr = $DIC["ilErr"];
2250 $lng = $DIC->language();
2251
2252 $a_target = SYSTEM_FOLDER_ID;
2253
2254 if ($ilAccess->checkAccess("read", "", $a_target)) {
2255 ilUtil::redirect("ilias.php?baseClass=ilAdministrationGUI");
2256 exit;
2257 } else {
2258 if ($ilAccess->checkAccess("read", "", ROOT_FOLDER_ID)) {
2259 ilUtil::sendFailure(sprintf(
2260 $lng->txt("msg_no_perm_read_item"),
2262 ), true);
2264 }
2265 }
2266 $ilErr->raiseError($lng->txt("msg_no_perm_read"), $ilErr->FATAL);
2267 }
2268
2272 protected function showVcsInformationObject() : void
2273 {
2274 $vcInfo = [];
2275
2276 foreach ([new ilGitInformation()] as $vc) {
2277 $html = $vc->getInformationAsHtml();
2278 if ($html) {
2279 $vcInfo[] = $html;
2280 }
2281 }
2282
2283 if ($vcInfo) {
2284 ilUtil::sendInfo(implode("<br />", $vcInfo));
2285 } else {
2286 ilUtil::sendInfo($this->lng->txt('vc_information_not_determined'));
2287 }
2288
2289 $this->showServerInfoObject();
2290 }
2291}
user()
Definition: user.php:4
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
$_GET["client_id"]
$_POST["username"]
$_SESSION["AccountId"]
An exception for terminatinating execution or to throw for unit testing.
error($a_errmsg)
set error message @access public
This class represents a checkbox property in a property form.
Class ilCronManagerGUI.
This class represents a custom property in a property form.
This class represents a section header in a property form.
Class ilGitInformation.
Class ilImprintGUI.
static getInstance()
Factory.
This class represents a non editable value in a property form.
This class represents a number property in a property form.
static getEffectiveContentStyleId($a_style_id, $a_type="")
Get effective Style Id.
Class ilObjSystemFolderGUI.
showWebServicesObject()
Show Web Services.
setServerInfoSubTabs($a_activate)
Set sub tabs for server info.
showProxyObject()
Show proxy settings.
setSystemCheckSubTabs($a_activate)
Set sub tabs for general settings.
downloadJavaServerIniObject()
Create and offer server ini file for download.
showContactInformationObject()
Show contact information.
initContactInformationForm()
Init contact information form.
static _goto()
goto target group
__construct($a_data, $a_id, $a_call_by_reference)
Constructor @access public.
saveHeaderTitlesObject()
Save header titles.
benchmarkSubTabs($a_current)
Benchmark sub tabs.
showDbBenchResults($a_mode)
Show Db Benchmark Results.
showJavaServerObject()
Show Java Server Settings.
saveJavaServerObject()
Save java server form.
initWebServicesForm()
Init web services form.
saveWebServicesObject()
Save web services form.
switchBenchModuleObject()
save benchmark settings
createJavaServerIniObject()
Create a server ini file.
benchmarkObject()
Benchmark settings.
deleteHeaderTitlesObject()
Remove header titles.
showPHPInfoObject()
Show PHP Information.
showDbBenchSortedBySqlObject()
Show db benchmark results.
showDbBenchSlowestFirstObject()
Show db benchmark results.
addHeaderTitleTranslationObject()
adds a translation form & save post vars to session
saveBenchSettingsObject()
Save benchmark settings.
addHeaderTitleObject()
Add a header title.
saveProxyObject()
Save proxy settings.
showDbBenchChronologicalObject()
Show db benchmark results.
checkObject()
displays system check menu
cancelObject()
cancel action and go back to previous page @access public
changeHeaderTitleObject()
edit header title form
saveContactInformationObject()
Save contact information form.
saveBasicSettingsObject()
Save basic settings form.
printProxyStatus()
Print proxy settings.
removeTranslationObject()
removes a translation form & save post vars to session
initProxyForm()
Initialize proxy settings form.
clearBenchObject()
delete all benchmark records
showHeaderTitleObject($a_get_post_values=false)
Show header title.
viewObject()
show admin subpanels and basic settings form
showBasicSettingsObject()
Show basic settings.
saveHeaderTitleObject()
save header title
showDbBenchByFirstTableObject()
Show db benchmark results.
setGeneralSettingsSubTabs($a_activate)
Set sub tabs for general settings.
initJavaServerForm()
Init java server form.
initServerInfoForm()
Init server info form.
getAdminTabs()
administration tabs show only permissions and trash folder
Class ilObjectGUI Basic methods of all Output classes.
prepareOutput($a_show_subobjects=true)
prepare output
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission.
Class ilObjectOwnershipManagementGUI.
static getPluginObjectByType($type)
Return either a repoObject plugin or a orgunit extension plugin or null if the type is not a plugin.
TableGUI class for title/description translations.
static _lookupObjId($a_id)
static _lookupTitle($a_id)
lookup object title
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
This class represents a property form user interface.
Class for proxy related exception handling in ILIAS.
static _getInstance()
Getter for unique instance.
This class represents a property in a property form.
This class represents an option in a radio group.
static _getInstance()
Get instance.
@classDescription Creates a java server ini file for the current client
static _getInstance()
Get instance of ilSecuritySettings.
This class represents a selection list property in a property form.
const DEFAULT_CONNECT_TIMEOUT
special template class to simplify handling of ITX/PEAR
This class represents a text property in a property form.
static redirect($a_script)
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static deliverData($a_data, $a_filename, $mime="application/octet-stream", $charset="")
deliver data for download via browser.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static formSelect( $selected, $varname, $options, $multiple=false, $direct_text=false, $size="0", $style_class="", $attribs="", $disabled=false)
Builds a select form field with options and shows the selected option first.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms @access public
ILIAS Data Validator & Recovery Tool.
help()
Definition: help.php:2
global $ilBench
Definition: ilias.php:18
global $ilCtrl
Definition: ilias.php:18
exit
Definition: login.php:29
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
$ret
Definition: parser.php:6
global $ilSetting
Definition: privfeed.php:17
$_SERVER['HTTP_HOST']
Definition: raiseError.php:10
$ini
Definition: raiseError.php:4
$log
Definition: result.php:15
settings()
Definition: settings.php:2
global $ilDB
$ilUser
Definition: imgupload.php:18
$DIC
Definition: xapitoken.php:46