86 protected \ILIAS\HTTP\Wrapper\WrapperFactory
$wrapper;
93 public function __construct($a_data, $a_id, $a_call_by_reference)
97 $this->
tabs = $DIC->tabs();
98 $this->
access = $DIC->access();
99 $this->
ctrl = $DIC->ctrl();
100 $this->rbacsystem =
$DIC->rbac()->system();
101 $this->
user = $DIC->user();
102 $this->obj_definition =
$DIC[
"objDefinition"];
104 $this->
error = $DIC[
"ilErr"];
105 $this->db =
$DIC->database();
106 $this->style_definition =
$DIC[
"styleDefinition"];
107 $this->
lng = $DIC->language();
108 $this->tpl =
$DIC[
"tpl"];
109 $this->
help = $DIC[
"ilHelp"];
110 $this->
toolbar = $DIC->toolbar();
111 $this->client_ini =
$DIC[
"ilClientIniFile"];
113 $this->bench =
$DIC[
"ilBench"];
114 $this->wrapper =
$DIC->http()->wrapper();
118 $this->
lng->loadLanguageModule(
"administration");
119 $this->
lng->loadLanguageModule(
"adm");
120 $this->content_style_domain =
$DIC->contentStyle()
122 ->styleForRefId($this->
object->getRefId());
129 $next_class = $this->
ctrl->getNextClass($this);
132 switch ($next_class) {
133 case 'ilpermissiongui':
135 $this->
ctrl->forwardCommand($perm_gui);
140 $ilTabs->clearTargets();
141 $ilTabs->setBackTarget(
142 $this->
lng->txt(
"back"),
143 $this->ctrl->getLinkTarget($this,
"")
150 $this->content_style_domain->getEffectiveStyleId()
154 $igui->setEnableEditing(
false);
157 $ret = $this->
ctrl->forwardCommand($igui);
159 $this->tpl->setContent($ret);
163 case "ilobjectownershipmanagementgui":
166 $this->
ctrl->forwardCommand($gui);
169 case "ilcronmanagergui":
170 $ilTabs->activateTab(
"cron_jobs");
172 $this->
ctrl->forwardCommand($gui);
177 $cmd = $this->
ctrl->getCmd(
"view");
195 if ($ilAccess->checkAccess(
"write",
"", $this->object->getRefId())) {
199 $this->showServerInfoObject();
217 $this->
lng->txt(
"system_check"),
218 $ilCtrl->getLinkTarget($this,
"check")
222 $this->
lng->txt(
"system_check_no_owner"),
223 $ilCtrl->getLinkTargetByClass(
"ilObjectOwnershipManagementGUI")
226 $ilTabs->setSubTabActive($a_activate);
227 $ilTabs->setTabActive(
"system_check");
245 if (!
$rbacsystem->checkAccess(
"visible,read", $this->object->getRefId())) {
246 $ilErr->raiseError($this->
lng->txt(
"permission_denied"),
$ilErr->MESSAGE);
249 if ($_POST[
'count_limit'] !==
null || $_POST[
'age_limit'] !==
null || $_POST[
'type_limit'] !==
null) {
251 'systemcheck_count_limit',
252 (is_numeric($_POST[
'count_limit']) && $_POST[
'count_limit'] > 0) ? $_POST[
'count_limit'] :
''
255 'systemcheck_age_limit',
256 (is_numeric($_POST[
'age_limit']) && $_POST[
'age_limit'] > 0) ? $_POST[
'age_limit'] :
''
258 $ilUser->writePref(
'systemcheck_type_limit', trim($_POST[
'type_limit']));
261 if ($_POST[
"mode"]) {
266 $hasScanLog = $validator->hasScanLog();
268 $this->tpl->addBlockFile(
271 "tpl.adm_check.html",
272 "Modules/SystemFolder"
276 $this->tpl->setVariable(
"TXT_VIEW_LOG", $this->
lng->txt(
"view_last_log"));
279 $this->tpl->setVariable(
"FORMACTION", $this->
ctrl->getFormAction($this));
280 $this->tpl->setVariable(
"TXT_TITLE", $this->
lng->txt(
"systemcheck"));
281 $this->tpl->setVariable(
"COLSPAN", 3);
282 $this->tpl->setVariable(
"TXT_ANALYZE_TITLE", $this->
lng->txt(
"analyze_data"));
283 $this->tpl->setVariable(
"TXT_ANALYSIS_OPTIONS", $this->
lng->txt(
"analysis_options"));
284 $this->tpl->setVariable(
"TXT_REPAIR_OPTIONS", $this->
lng->txt(
"repair_options"));
285 $this->tpl->setVariable(
"TXT_OUTPUT_OPTIONS", $this->
lng->txt(
"output_options"));
286 $this->tpl->setVariable(
"TXT_SCAN", $this->
lng->txt(
"scan"));
287 $this->tpl->setVariable(
"TXT_SCAN_DESC", $this->
lng->txt(
"scan_desc"));
288 $this->tpl->setVariable(
"TXT_DUMP_TREE", $this->
lng->txt(
"dump_tree"));
289 $this->tpl->setVariable(
"TXT_DUMP_TREE_DESC", $this->
lng->txt(
"dump_tree_desc"));
290 $this->tpl->setVariable(
"TXT_CLEAN", $this->
lng->txt(
"clean"));
291 $this->tpl->setVariable(
"TXT_CLEAN_DESC", $this->
lng->txt(
"clean_desc"));
292 $this->tpl->setVariable(
"TXT_RESTORE", $this->
lng->txt(
"restore_missing"));
293 $this->tpl->setVariable(
"TXT_RESTORE_DESC", $this->
lng->txt(
"restore_missing_desc"));
294 $this->tpl->setVariable(
"TXT_PURGE", $this->
lng->txt(
"purge_missing"));
295 $this->tpl->setVariable(
"TXT_PURGE_DESC", $this->
lng->txt(
"purge_missing_desc"));
296 $this->tpl->setVariable(
"TXT_RESTORE_TRASH", $this->
lng->txt(
"restore_trash"));
297 $this->tpl->setVariable(
"TXT_RESTORE_TRASH_DESC", $this->
lng->txt(
"restore_trash_desc"));
298 $this->tpl->setVariable(
"TXT_PURGE_TRASH", $this->
lng->txt(
"purge_trash"));
299 $this->tpl->setVariable(
"TXT_PURGE_TRASH_DESC", $this->
lng->txt(
"purge_trash_desc"));
300 $this->tpl->setVariable(
"TXT_COUNT_LIMIT", $this->
lng->txt(
"purge_count_limit"));
301 $this->tpl->setVariable(
"TXT_COUNT_LIMIT_DESC", $this->
lng->txt(
"purge_count_limit_desc"));
302 $this->tpl->setVariable(
"COUNT_LIMIT_VALUE",
$ilUser->getPref(
"systemcheck_count_limit"));
303 $this->tpl->setVariable(
"TXT_AGE_LIMIT", $this->
lng->txt(
"purge_age_limit"));
304 $this->tpl->setVariable(
"TXT_AGE_LIMIT_DESC", $this->
lng->txt(
"purge_age_limit_desc"));
305 $this->tpl->setVariable(
"AGE_LIMIT_VALUE",
$ilUser->getPref(
"systemcheck_age_limit"));
306 $this->tpl->setVariable(
"TXT_TYPE_LIMIT", $this->
lng->txt(
"purge_type_limit"));
307 $this->tpl->setVariable(
"TXT_TYPE_LIMIT_DESC", $this->
lng->txt(
"purge_type_limit_desc"));
309 if (
$ilUser->getPref(
'systemcheck_mode_scan')) {
310 $this->tpl->touchBlock(
'mode_scan_checked');
312 if (
$ilUser->getPref(
'systemcheck_mode_dump_tree')) {
313 $this->tpl->touchBlock(
'mode_dump_tree_checked');
315 if (
$ilUser->getPref(
'systemcheck_mode_clean')) {
316 $this->tpl->touchBlock(
'mode_clean_checked');
318 if (
$ilUser->getPref(
'systemcheck_mode_restore')) {
319 $this->tpl->touchBlock(
'mode_restore_checked');
320 $this->tpl->touchBlock(
'mode_purge_disabled');
321 } elseif (
$ilUser->getPref(
'systemcheck_mode_purge')) {
322 $this->tpl->touchBlock(
'mode_purge_checked');
323 $this->tpl->touchBlock(
'mode_restore_disabled');
325 if (
$ilUser->getPref(
'systemcheck_mode_restore_trash')) {
326 $this->tpl->touchBlock(
'mode_restore_trash_checked');
327 $this->tpl->touchBlock(
'mode_purge_trash_disabled');
328 } elseif (
$ilUser->getPref(
'systemcheck_mode_purge_trash')) {
329 $this->tpl->touchBlock(
'mode_purge_trash_checked');
330 $this->tpl->touchBlock(
'mode_restore_trash_disabled');
332 if (
$ilUser->getPref(
'systemcheck_log_scan')) {
333 $this->tpl->touchBlock(
'log_scan_checked');
339 $obj_types_in_tree = [];
342 $set =
$ilDB->query(
'SELECT type FROM object_data od' .
343 ' JOIN object_reference ref ON (od.obj_id = ref.obj_id)' .
344 ' JOIN tree ON (tree.child = ref.ref_id)' .
345 ' WHERE tree.tree < 1' .
347 while ($row =
$ilDB->fetchAssoc($set)) {
348 $obj_types_in_tree[] = $row[
'type'];
351 $types = $objDefinition->getAllObjects();
353 foreach ($types as $t) {
354 if ($t !=
"" && !$objDefinition->isSystemObject($t) && $t !=
"root" &&
355 in_array($t, $obj_types_in_tree)) {
356 if ($objDefinition->isPlugin($t)) {
358 $ts[$t] = $pl->txt(
"obj_" . $t);
360 $ts[$t] = $this->
lng->txt(
"obj_" . $t);
365 $this->tpl->setVariable(
368 $ilUser->getPref(
"systemcheck_type_limit"),
375 $this->tpl->setVariable(
"TXT_LOG_SCAN", $this->
lng->txt(
"log_scan"));
376 $this->tpl->setVariable(
"TXT_LOG_SCAN_DESC", $this->
lng->txt(
"log_scan_desc"));
377 $this->tpl->setVariable(
"TXT_SUBMIT", $this->
lng->txt(
"start_scan"));
379 $this->tpl->setVariable(
"TXT_SAVE", $this->
lng->txt(
"save_params_for_cron"));
382 $cron_form->setFormAction($this->
ctrl->getFormAction($this));
383 $cron_form->setTitle($this->
lng->txt(
'systemcheck_cronform'));
386 $radio_group->setValue(
$ilSetting->get(
'systemcheck_cron'));
389 $radio_group->addOption($radio_opt);
392 $radio_group->addOption($radio_opt);
394 $cron_form->addItem($radio_group);
396 $cron_form->addCommandButton(
'saveCheckCron', $this->
lng->txt(
'save'));
398 $this->tpl->setVariable(
'CRON_FORM', $cron_form->getHTML());
405 unset($_POST[
'mode']);
412 $modes = $validator->getPossibleModes();
415 foreach ($modes as $mode) {
416 if (isset($_POST[
'mode'][$mode])) {
417 $value = (
int) $_POST[
'mode'][$mode];
421 $prefs[
'systemcheck_mode_' . $mode ] = $value;
424 if (isset($_POST[
'log_scan'])) {
425 $value = (
int) $_POST[
'log_scan'];
429 $prefs[
'systemcheck_log_scan'] = $value;
432 foreach ($prefs as
$key => $val) {
441 $systemcheck_cron = ($_POST[
'cronjob'] ? 1 : 0);
442 $ilSetting->set(
'systemcheck_cron', $systemcheck_cron);
444 unset($_POST[
'mode']);
458 $this->tpl->addBlockFile(
461 "tpl.header_title_edit.html",
462 "Modules/SystemFolder"
467 if ($_SESSION[
"error_post_vars"]) {
468 $_SESSION[
"translation_post"] = $_SESSION[
"error_post_vars"];
469 $_GET[
"mode"] =
"session";
474 if ((
$_GET[
"mode"] !=
"session")) {
475 $data = $this->
object->getHeaderTitleTranslations();
476 $_SESSION[
"translation_post"] =
$data;
479 elseif (
$_GET[
"entry"] != 0) {
480 array_splice($_SESSION[
"translation_post"][
"Fobject"],
$_GET[
"entry"], 1, array());
482 if (
$_GET[
"entry"] == $_SESSION[
"translation_post"][
"default_language"]) {
483 $_SESSION[
"translation_post"][
"default_language"] =
"";
487 $data = $_SESSION[
"translation_post"];
490 if (!
$_GET[
"entry"] and $array_push) {
491 $count = array_push(
$data[
"Fobject"], array(
"title" =>
"",
"desc" =>
""));
493 $count = count(
$data[
"Fobject"]);
497 $strip = isset($_SESSION[
"translation_post"]) ?
true :
false;
499 foreach (
$data[
"Fobject"] as
$key => $val) {
501 if (
$key == $count - 1) {
502 $this->tpl->setCurrentBlock(
"addTranslation");
503 $this->tpl->setVariable(
"TXT_ADD_TRANSLATION", $this->
lng->txt(
"add_translation") .
" >>");
504 $this->tpl->parseCurrentBlock();
509 $this->tpl->setCurrentBlock(
"removeTranslation");
510 $this->tpl->setVariable(
"TXT_REMOVE_TRANSLATION", $this->
lng->txt(
"remove_translation"));
511 $this->
ctrl->setParameter($this,
"entry",
$key);
512 $this->
ctrl->setParameter($this,
"mode",
"edit");
513 $this->tpl->setVariable(
514 "LINK_REMOVE_TRANSLATION",
515 $this->
ctrl->getLinkTarget($this,
"removeTranslation")
517 $this->tpl->parseCurrentBlock();
521 $this->tpl->addBlockFile(
524 "tpl.lang_selection.html",
527 $this->tpl->setVariable(
"SEL_NAME",
"Fobject[" .
$key .
"][lang]");
531 foreach ($languages as $code => $language) {
532 $this->tpl->setCurrentBlock(
"lg_option");
533 $this->tpl->setVariable(
"VAL_LG", $code);
534 $this->tpl->setVariable(
"TXT_LG", $language);
536 if ($code == $val[
"lang"]) {
537 $this->tpl->setVariable(
"SELECTED",
"selected=\"selected\"");
540 $this->tpl->parseCurrentBlock();
544 $this->tpl->setCurrentBlock(
"obj_form");
547 $this->tpl->setVariable(
"TXT_HEADER", $this->
lng->txt(
"change_header_title"));
549 $this->tpl->setVariable(
"TXT_HEADER", $this->
lng->txt(
"translation") .
" " .
$key);
553 $this->tpl->setVariable(
"CHECKED",
"checked=\"checked\"");
556 $this->tpl->setVariable(
"TXT_TITLE", $this->
lng->txt(
"title"));
557 $this->tpl->setVariable(
"TXT_DESC", $this->
lng->txt(
"desc"));
558 $this->tpl->setVariable(
"TXT_DEFAULT", $this->
lng->txt(
"default"));
559 $this->tpl->setVariable(
"TXT_LANGUAGE", $this->
lng->txt(
"language"));
562 $this->tpl->setVariable(
"NUM",
$key);
563 $this->tpl->parseCurrentBlock();
567 $this->tpl->setCurrentBlock(
"adm_content");
569 $this->tpl->setVariable(
"FORMACTION", $this->
ctrl->getFormAction($this));
570 $this->tpl->setVariable(
"TXT_CANCEL", $this->
lng->txt(
"cancel"));
571 $this->tpl->setVariable(
"TXT_SUBMIT", $this->
lng->txt(
"save"));
572 $this->tpl->setVariable(
"CMD_SUBMIT",
"saveHeaderTitle");
573 $this->tpl->setVariable(
"TXT_REQUIRED_FLD", $this->
lng->txt(
"required_field"));
587 if (!isset(
$data[
"default_language"])) {
588 $ilErr->raiseError($this->
lng->txt(
"msg_no_default_language"),
$ilErr->MESSAGE);
592 foreach (
$data[
"Fobject"] as
$key => $val) {
593 $langs[
$key] = $val[
"lang"];
596 $langs = array_count_values($langs);
599 if (array_key_exists(
"", $langs)) {
600 $ilErr->raiseError($this->
lng->txt(
"msg_no_language_selected"),
$ilErr->MESSAGE);
604 if (array_sum($langs) > count($langs)) {
605 $ilErr->raiseError($this->
lng->txt(
"msg_multi_language_selected"),
$ilErr->MESSAGE);
609 $_POST[
"Fobject"][
"title"] = $_POST[
"Fobject"][$_POST[
"default_language"]][
"title"];
610 $_POST[
"Fobject"][
"desc"] = $_POST[
"Fobject"][$_POST[
"default_language"]][
"desc"];
613 $this->
object->removeHeaderTitleTranslations();
616 foreach (
$data[
"Fobject"] as
$key => $val) {
626 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"msg_obj_modified"),
true);
628 $this->
ctrl->redirect($this);
633 $this->
ctrl->redirect($this,
"view");
643 $_SESSION[
"translation_post"] = $_POST;
645 $this->
ctrl->setParameter($this,
"mode",
"session");
646 $this->
ctrl->setParameter($this,
"entry",
"0");
647 $this->
ctrl->redirect($this,
"changeHeaderTitle");
657 $this->
ctrl->setParameter($this,
"entry",
$_GET[
"entry"]);
658 $this->
ctrl->setParameter($this,
"mode",
"session");
659 $this->
ctrl->redirect($this,
"changeHeaderTitle");
668 if (!
$rbacsystem->checkAccess(
"visible,read", $this->object->getRefId())) {
669 $ilErr->raiseError($this->
lng->txt(
"permission_denied"),
$ilErr->MESSAGE);
672 $logging = ($a_log) ?
true :
false;
674 $validator->setMode(
"all",
false);
677 foreach ($a_mode as $mode => $value) {
678 $validator->setMode($mode, (
bool) $value);
679 $modes[] = $mode .
'=' . $value;
682 $scan_log = $validator->validate();
684 $mode = $this->
lng->txt(
"scan_modes") .
": " . implode(
', ', $modes);
687 $this->tpl->addBlockFile(
691 "Modules/SystemFolder"
694 $this->tpl->setVariable(
"FORMACTION", $this->
ctrl->getFormAction($this));
695 $this->tpl->setVariable(
"TXT_TITLE", $this->
lng->txt(
"scanning_system"));
696 $this->tpl->setVariable(
"COLSPAN", 3);
697 $this->tpl->setVariable(
"TXT_SCAN_LOG", $scan_log);
698 $this->tpl->setVariable(
"TXT_MODE", $mode);
700 if ($logging ===
true) {
701 $this->tpl->setVariable(
"TXT_VIEW_LOG", $this->
lng->txt(
"view_log"));
704 $this->tpl->setVariable(
"TXT_DONE", $this->
lng->txt(
"done"));
706 $validator->writeScanLogLine($mode);
711 $validator =
new IlValidator();
712 $scan_log = $validator->readScanLog();
714 if (is_array($scan_log)) {
715 $scan_log =
'<pre>' . implode(
"", $scan_log) .
'</pre>';
716 $this->tpl->setVariable(
"ADM_CONTENT", $scan_log);
718 $scan_log =
"no scanlog found.";
722 $this->tpl->addBlockFile(
726 "Modules/SystemFolder"
728 $this->tpl->setVariable(
"TXT_TITLE", $this->
lng->txt(
"scan_details"));
729 $this->tpl->setVariable(
"COLSPAN", 3);
730 $this->tpl->setVariable(
"TXT_SCAN_LOG", $scan_log);
731 $this->tpl->setVariable(
"TXT_DONE", $this->
lng->txt(
"done"));
747 if (!
$rbacsystem->checkAccess(
"visible,read", $this->object->getRefId())) {
748 $ilErr->raiseError($this->
lng->txt(
"permission_denied"),
$ilErr->MESSAGE);
758 $cb->setInfo(
$lng->
txt(
"adm_activate_db_benchmark_desc"));
759 $this->
form->addItem($cb);
767 $ti->setInfo(
$lng->
txt(
"adm_db_benchmark_user_desc"));
768 $this->
form->addItem($ti);
770 $this->
form->addCommandButton(
"saveBenchSettings",
$lng->
txt(
"save"));
772 $this->
form->setTitle(
$lng->
txt(
"adm_db_benchmark"));
773 $this->
form->setFormAction($ilCtrl->getFormAction($this));
824 $rec = $ilBench->getDbBenchRecords();
843 $ilTabs->activateTab(
"benchmarks");
848 $ilCtrl->getLinkTarget($this,
"benchmark")
851 $rec = $ilBench->getDbBenchRecords();
855 $lng->
txt(
"adm_db_bench_chronological"),
856 $ilCtrl->getLinkTarget($this,
"showDbBenchChronological")
860 $lng->
txt(
"adm_db_bench_slowest_first"),
861 $ilCtrl->getLinkTarget($this,
"showDbBenchSlowestFirst")
865 $lng->
txt(
"adm_db_bench_sorted_by_sql"),
866 $ilCtrl->getLinkTarget($this,
"showDbBenchSortedBySql")
870 $lng->
txt(
"adm_db_bench_by_first_table"),
871 $ilCtrl->getLinkTarget($this,
"showDbBenchByFirstTable")
875 $ilTabs->activateSubTab($a_current);
889 $this->bench->enableDbBenchmarkForUserName($user_name);
892 $this->bench->disableDbBenchmark();
895 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"msg_obj_modified"),
true);
897 $this->
ctrl->redirect($this,
"benchmark");
906 $this->
ctrl->setParameter($this,
'cur_mod', $_POST[
'module']);
907 $this->
ctrl->redirect($this,
"benchmark");
917 $ilBench->clearData();
929 $this->
ctrl->setParameter($this,
"ref_id", $this->
object->getRefId());
932 if (
$rbacsystem->checkAccess(
"write", $this->object->getRefId())) {
933 $this->tabs_gui->addTarget(
935 $this->
ctrl->getLinkTarget($this,
"showBasicSettings"),
936 [
"showBasicSettings",
"saveBasicSettings"],
942 if (
$rbacsystem->checkAccess(
"visible,read", $this->object->getRefId())) {
943 $this->tabs_gui->addTarget(
945 $this->
ctrl->getLinkTarget($this,
"showServerInfo"),
946 [
"showServerInfo",
"view"],
951 if (
$rbacsystem->checkAccess(
"write", $this->object->getRefId())) {
952 $this->tabs_gui->addTarget(
954 $this->
ctrl->getLinkTargetByClass(
"ilCronManagerGUI",
""),
962 $this->tabs_gui->addTarget(
964 $this->
ctrl->getLinkTarget($this,
"benchmark"),
970 if (
$rbacsystem->checkAccess(
'edit_permission', $this->object->getRefId())) {
971 $this->tabs_gui->addTarget(
973 $this->
ctrl->getLinkTargetByClass(array(get_class($this),
'ilpermissiongui'),
"perm"),
974 array(
"perm",
"info",
"owner"),
1006 $ilTabs->addSubTabTarget(
"installation_status", $ilCtrl->getLinkTarget($this,
"showServerInstallationStatus"));
1008 $ilTabs->addSubTabTarget(
"server_data", $ilCtrl->getLinkTarget($this,
"showServerInfo"));
1010 if (
$rbacsystem->checkAccess(
"write", $this->object->getRefId())) {
1011 $ilTabs->addSubTabTarget(
"java_server", $ilCtrl->getLinkTarget($this,
"showJavaServer"));
1014 $ilTabs->setSubTabActive($a_activate);
1015 $ilTabs->setTabActive(
"server");
1021 public function showServerInfoObject(): void
1034 $button->setCaption(
'vc_information');
1035 $button->setUrl($this->
ctrl->getLinkTarget($this,
'showVcsInformation'));
1036 $ilToolbar->addButtonInstance($button);
1043 $btpl =
new ilTemplate(
"tpl.server_data.html",
true,
true,
"Modules/SystemFolder");
1044 $btpl->setVariable(
"FORM", $this->
form->getHTML());
1045 $btpl->setVariable(
"PHP_INFO_TARGET", $ilCtrl->getLinkTarget($this,
"showPHPInfo"));
1064 $ne->setValue($ilClientIniFile->readVariable(
"client",
"name"));
1065 $ne->setInfo($ilClientIniFile->readVariable(
"client",
"description"));
1066 $this->
form->addItem($ne);
1071 $this->
form->addItem($ne);
1076 $this->
form->addItem($ne);
1080 $ne->setValue(
$ilSetting->get(
"db_version"));
1082 $this->
form->addItem($ne);
1087 $this->
form->addItem($ne);
1091 $ne->setValue(
$_SERVER[
"SERVER_NAME"]);
1092 $this->
form->addItem($ne);
1097 $this->
form->addItem($ne);
1101 $ne->setValue(
$_SERVER[
"SERVER_SOFTWARE"]);
1102 $this->
form->addItem($ne);
1106 $ne->setValue(ILIAS_HTTP_PATH);
1107 $this->
form->addItem($ne);
1111 $ne->setValue(ILIAS_ABSOLUTE_PATH);
1112 $this->
form->addItem($ne);
1114 $not_set =
$lng->
txt(
"path_not_set");
1118 $ne->setValue(PATH_TO_CONVERT ?: $not_set);
1119 $this->
form->addItem($ne);
1123 $ne->setValue(PATH_TO_ZIP ?: $not_set);
1124 $this->
form->addItem($ne);
1128 $ne->setValue(PATH_TO_UNZIP ?: $not_set);
1129 $this->
form->addItem($ne);
1133 $ne->setValue(PATH_TO_JAVA ?: $not_set);
1134 $this->
form->addItem($ne);
1138 $ne->setValue(PATH_TO_MKISOFS ?: $not_set);
1139 $this->
form->addItem($ne);
1143 $ne->setValue(URL_TO_LATEX ?: $not_set);
1144 $this->
form->addItem($ne);
1148 $this->
form->setFormAction($this->
ctrl->getFormAction($this));
1160 $f =
$DIC->ui()->factory();
1161 $r =
$DIC->ui()->renderer();
1165 $report = $metric->toUIReport(
$f, $this->
lng->txt(
"installation_status"));
1167 $this->tpl->setContent($r->render($report));
1186 return $st->getMetrics($agent_finder->getAgents());
1203 $ilTabs->addSubTabTarget(
"basic_settings", $ilCtrl->getLinkTarget($this,
"showBasicSettings"));
1204 $ilTabs->addSubTabTarget(
"header_title", $ilCtrl->getLinkTarget($this,
"showHeaderTitle"));
1205 $ilTabs->addSubTabTarget(
"contact_data", $ilCtrl->getLinkTarget($this,
"showContactInformation"));
1206 $ilTabs->addSubTabTarget(
"adm_imprint", $ilCtrl->getLinkTargetByClass(
"ilimprintgui",
"preview"));
1208 $ilTabs->setSubTabActive($a_activate);
1209 $ilTabs->setTabActive(
"general_settings");
1225 $this->initBasicSettingsForm();
1235 public function initBasicSettingsForm(): void
1248 $ti =
new ilTextInputGUI($this->
lng->txt(
"short_inst_name"),
"short_inst_name");
1249 $ti->setMaxLength(200);
1251 $ti->setValue(
$ilSetting->get(
"short_inst_name"));
1252 $ti->setInfo($this->
lng->txt(
"short_inst_name_info"));
1253 $this->
form->addItem($ti);
1257 $cb->setInfo(
$lng->
txt(
"pub_section_info"));
1259 $cb->setChecked(
true);
1261 $this->
form->addItem($cb);
1263 $this->
lng->loadLanguageModule(
'administration');
1264 $domains =
new ilTextInputGUI($this->
lng->txt(
'adm_pub_section_domain_filter'),
'public_section_domains');
1265 $domains->setInfo($this->
lng->txt(
'adm_pub_section_domain_filter_info'));
1266 $domains->setMulti(
true);
1270 $cb->addSubItem($domains);
1275 $cb_prop->setInfo(
$lng->
txt(
'pd_enable_user_publish_info'));
1276 $cb_prop->setChecked((
bool)
$ilSetting->get(
'enable_global_profiles'));
1277 $cb->addSubItem($cb_prop);
1282 $cb2->setInfo($this->
lng->txt(
"enable_search_engine"));
1283 $this->
form->addItem($cb2);
1285 if (!$robot_settings->checkRewrite()) {
1286 $cb2->setAlert(
$lng->
txt(
"allow_override_alert"));
1287 $cb2->setChecked(
false);
1288 $cb2->setDisabled(
true);
1290 $cb2->setChecked(
true);
1295 $ti->setMaxLength(80);
1297 $ti->setInfo($this->
lng->txt(
"adm_locale_info"));
1299 $this->
form->addItem($ti);
1302 $this->
form->addCommandButton(
"saveBasicSettings",
$lng->
txt(
"save"));
1304 $this->
form->setTitle(
$lng->
txt(
"basic_settings"));
1305 $this->
form->setFormAction($this->
ctrl->getFormAction($this));
1321 if (!
$rbacsystem->checkAccess(
"write", $this->object->getRefId())) {
1322 $ilErr->raiseError($this->
lng->txt(
"permission_denied"),
$ilErr->MESSAGE);
1325 $this->initBasicSettingsForm();
1326 if ($this->
form->checkInput()) {
1327 $ilSetting->set(
"short_inst_name", $this->
form->getInput(
"short_inst_name"));
1330 $public_section->setEnabled($this->
form->getInput(
'pub_section'));
1333 foreach ((array) $this->
form->getInput(
'public_section_domains') as $domain) {
1334 if (strlen(trim($domain)) !== 0) {
1335 $domains[] = $domain;
1338 $public_section->setDomains($domains);
1339 $public_section->save();
1341 $global_profiles = ($this->
form->getInput(
"pub_section"))
1342 ? (
int) $this->
form->getInput(
'enable_global_profiles')
1344 $ilSetting->set(
'enable_global_profiles', $global_profiles);
1346 $ilSetting->set(
"open_google", $this->
form->getInput(
"open_google"));
1349 $this->tpl->setOnScreenMessage(
'success',
$lng->
txt(
"msg_obj_modified"),
true);
1350 $ilCtrl->redirect($this,
"showBasicSettings");
1353 $this->
form->setValuesByPost();
1367 bool $add_entry =
false): void
1373 if ($a_get_post_values) {
1375 foreach (($_POST[
"title"] ?? []) as $k => $v) {
1376 $def = $_POST[
"default"] ??
"";
1377 $vals[] = array(
"title" => $v,
1378 "desc" => ($_POST[
"desc"][$k] ??
""),
1379 "lang" => ($_POST[
"lang"][$k] ??
""),
1380 "default" => ($def == $k));
1383 $vals[] = array(
"title" =>
"",
1386 "default" =>
false);
1388 $table->setData($vals);
1390 $data = $this->
object->getHeaderTitleTranslations();
1391 if (isset(
$data[
"Fobject"]) && is_array(
$data[
"Fobject"])) {
1392 foreach (
$data[
"Fobject"] as $k => $v) {
1393 if ($k ==
$data[
"default_language"]) {
1394 $data[
"Fobject"][$k][
"default"] =
true;
1396 $data[
"Fobject"][$k][
"default"] =
false;
1400 $data[
"Fobject"] = array();
1402 $table->setData(
$data[
"Fobject"]);
1419 if (!
$rbacsystem->checkAccess(
"write", $this->object->getRefId())) {
1420 $ilErr->raiseError($this->
lng->txt(
"permission_denied"),
$ilErr->MESSAGE);
1425 $post = $DIC->http()->request()->getParsedBody();
1426 foreach (
$post[
"title"] as $k => $v) {
1427 if ($delete && (
$post[
"check"][$k] ??
false)) {
1428 unset(
$post[
"title"][$k]);
1429 unset(
$post[
"desc"][$k]);
1430 unset(
$post[
"lang"][$k]);
1431 if ($k ==
$post[
"default"]) {
1432 unset(
$post[
"default"]);
1440 if (!isset(
$post[
"default"]) && count(
$post[
"lang"]) > 0) {
1441 $this->tpl->setOnScreenMessage(
'failure',
$lng->
txt(
"msg_no_default_language"));
1446 if (array_key_exists(
"",
$post[
"lang"])) {
1447 $this->tpl->setOnScreenMessage(
'failure',
$lng->
txt(
"msg_no_language_selected"));
1452 if (count(array_unique(
$post[
"lang"])) < count(
$post[
"lang"])) {
1453 $this->tpl->setOnScreenMessage(
'failure',
$lng->
txt(
"msg_multi_language_selected"));
1458 $this->
object->removeHeaderTitleTranslations();
1459 foreach (
$post[
"title"] as $k => $v) {
1460 $desc =
$post[
"desc"][$k] ??
"";
1461 $this->
object->addHeaderTitleTranslation(
1465 (
$post[
"default"] == $k)
1469 $this->tpl->setOnScreenMessage(
'success',
$lng->
txt(
"msg_obj_modified"),
true);
1470 $ilCtrl->redirect($this,
"showHeaderTitle");
1517 $this->
ctrl->redirectByClass(
"ilCronManagerGUI",
"render");
1551 $ti->setMaxLength(64);
1553 $ti->setRequired(
true);
1554 $ti->setValue(
$ilSetting->get(
"admin_firstname"));
1555 $this->
form->addItem($ti);
1559 $ti->setMaxLength(64);
1561 $ti->setRequired(
true);
1562 $ti->setValue(
$ilSetting->get(
"admin_lastname"));
1563 $this->
form->addItem($ti);
1567 $ti->setMaxLength(64);
1569 $ti->setValue(
$ilSetting->get(
"admin_title"));
1570 $this->
form->addItem($ti);
1574 $ti->setMaxLength(64);
1576 $ti->setValue(
$ilSetting->get(
"admin_position"));
1577 $this->
form->addItem($ti);
1581 $ti->setMaxLength(200);
1583 $ti->setValue(
$ilSetting->get(
"admin_institution"));
1584 $this->
form->addItem($ti);
1588 $ti->setMaxLength(64);
1591 $ti->setValue(
$ilSetting->get(
"admin_street"));
1592 $this->
form->addItem($ti);
1596 $ti->setMaxLength(10);
1599 $ti->setValue(
$ilSetting->get(
"admin_zipcode"));
1600 $this->
form->addItem($ti);
1604 $ti->setMaxLength(64);
1607 $ti->setValue(
$ilSetting->get(
"admin_city"));
1608 $this->
form->addItem($ti);
1612 $ti->setMaxLength(64);
1615 $ti->setValue(
$ilSetting->get(
"admin_country"));
1616 $this->
form->addItem($ti);
1620 $ti->setMaxLength(64);
1623 $ti->setValue(
$ilSetting->get(
"admin_phone"));
1624 $this->
form->addItem($ti);
1628 $ti->setMaxLength(64);
1630 $ti->setRequired(
true);
1631 $ti->allowRFC822(
true);
1632 $ti->setValue(
$ilSetting->get(
"admin_email"));
1633 $this->
form->addItem($ti);
1636 $ti =
new ilTextInputGUI($this->
lng->txt(
"adm_support_contacts"),
"adm_support_contacts");
1637 $ti->setMaxLength(500);
1640 $ti->setInfo($this->
lng->txt(
"adm_support_contacts_info"));
1641 $this->
form->addItem($ti);
1644 $ti =
new ilTextInputGUI($this->
lng->txt(
"adm_accessibility_contacts"),
"accessibility_support_contacts");
1645 $ti->setMaxLength(500);
1648 $ti->setInfo($this->
lng->txt(
"adm_accessibility_contacts_info"));
1649 $this->
form->addItem($ti);
1651 $this->
form->addCommandButton(
"saveContactInformation",
$lng->
txt(
"save"));
1654 $this->
form->setFormAction($this->
ctrl->getFormAction($this));
1670 if (!
$rbacsystem->checkAccess(
"write", $this->object->getRefId())) {
1671 $ilErr->raiseError($this->
lng->txt(
"permission_denied"),
$ilErr->MESSAGE);
1675 if ($this->
form->checkInput()) {
1676 $fs = array(
"admin_firstname",
"admin_lastname",
"admin_title",
"admin_position",
1677 "admin_institution",
"admin_street",
"admin_zipcode",
"admin_city",
1678 "admin_country",
"admin_phone",
"admin_email");
1679 foreach ($fs as
$f) {
1689 $this->tpl->setOnScreenMessage(
'success',
$lng->
txt(
"msg_obj_modified"),
true);
1690 $ilCtrl->redirect($this,
"showContactInformation");
1693 $this->
form->setValuesByPost();
1711 $tpl->
addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.java_settings.html',
'Modules/SystemFolder');
1713 $GLOBALS[
'lng']->loadLanguageModule(
'search');
1727 $this->tpl->setContent($this->
form->getHTML());
1739 $this->
form->setFormAction($this->
ctrl->getFormAction($this,
'saveJavaServer'));
1743 $pdf->setTitle($this->
lng->txt(
'rpc_pdf_generation'));
1744 $this->
form->addItem($pdf);
1746 $pdf_font =
new ilTextInputGUI($this->
lng->txt(
'rpc_pdf_font'),
'rpc_pdf_font');
1747 $pdf_font->setInfo($this->
lng->txt(
'rpc_pdf_font_info'));
1748 $pdf_font->setSize(64);
1749 $pdf_font->setMaxLength(1024);
1750 $pdf_font->setRequired(
true);
1751 $pdf_font->setValue(
1752 $ilSetting->get(
'rpc_pdf_font',
'Helvetica, unifont')
1754 $this->
form->addItem($pdf_font);
1757 $this->
form->addCommandButton(
"saveJavaServer",
$lng->
txt(
"save"));
1773 if (!
$rbacsystem->checkAccess(
"write", $this->object->getRefId())) {
1774 $ilErr->raiseError($this->
lng->txt(
"permission_denied"),
$ilErr->MESSAGE);
1778 if ($this->
form->checkInput()) {
1780 $this->tpl->setOnScreenMessage(
'success',
$lng->
txt(
"msg_obj_modified"),
true);
1781 $ilCtrl->redirect($this,
"showJavaServer");
1786 $this->
form->setValuesByPost();
1797 $main_tpl =
$DIC->ui()->mainTemplate();
1799 $ilAccess =
$DIC->access();
1805 if ($ilAccess->checkAccess(
"read",
"", $a_target)) {
1810 $main_tpl->setOnScreenMessage(
'failure', sprintf(
1811 $lng->
txt(
"msg_no_perm_read_item"),
1828 $html = $vc->getInformationAsHtml();
1834 if ($vcInfo !== []) {
1835 $this->tpl->setOnScreenMessage(
'info', implode(
"<br />", $vcInfo));
1837 $this->tpl->setOnScreenMessage(
'info', $this->
lng->txt(
'vc_information_not_determined'));
1840 $this->showServerInfoObject();
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Command to output status information about the installation.
A metric is something we can measure about the system.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Error Handling & global info handling uses PEAR error class.
loadLanguageModule(string $a_module)
Load language module.
txt(string $a_topic, string $a_default_lang_fallback_mod="")
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Class ilObjSystemFolderGUI.
setServerInfoSubTabs($a_activate)
Set sub tabs for server info.
showHeaderTitleObject($a_get_post_values=false, bool $add_entry=false)
Show header title.
setSystemCheckSubTabs($a_activate)
Set sub tabs for general settings.
showContactInformationObject()
Show contact information.
initContactInformationForm()
Init contact information form.
ilObjectDefinition $obj_definition
startValidator($a_mode, $a_log)
static _goto()
goto target group
__construct($a_data, $a_id, $a_call_by_reference)
Constructor @access public.
benchmarkSubTabs($a_current)
Benchmark sub tabs.
showDbBenchResults($a_mode)
Show Db Benchmark Results.
showJavaServerObject()
Show Java Server Settings.
saveJavaServerObject()
Save java server form.
switchBenchModuleObject()
save benchmark settings
createJavaServerIniObject()
Create a server ini file.
benchmarkObject()
Benchmark settings.
deleteHeaderTitlesObject()
Remove header titles.
ILIAS Refinery Factory $refinery
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.
showDbBenchChronologicalObject()
Show db benchmark results.
checkObject()
displays system check menu
cancelObject()
cancel action and go back to previous page
changeHeaderTitleObject()
edit header title form
saveContactInformationObject()
Save contact information form.
saveBasicSettingsObject()
Save basic settings form.
showServerInstallationStatusObject()
removeTranslationObject()
removes a translation form & save post vars to session
getServerStatusInfo(ILIAS\Refinery\Factory $refinery)
clearBenchObject()
delete all benchmark records
viewObject()
show admin subpanels and basic settings form
showBasicSettingsObject()
Show basic settings.
saveHeaderTitlesObject($delete=false)
Save header titles.
saveHeaderTitleObject()
save header title
showVcsInformationObject()
ILIAS HTTP Wrapper WrapperFactory $wrapper
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
static _lookupLogin(int $a_user_id)
parses the objects.xml it handles the xml-description of all ilias objects
Class ilObjectGUI Basic methods of all Output classes.
ilGlobalTemplateInterface $tpl
static _gotoRepositoryRoot(bool $raise_error=false)
Goto repository root.
checkPermissionBool(string $perm, string $cmd="", string $type="", ?int $ref_id=null)
prepareOutput(bool $show_sub_objects=true)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getPluginObjectByType(string $type)
Return either a repoObject plugin or a orgunit extension plugin or null if the type is not a plugin.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static _lookupObjId(int $ref_id)
static _lookupTitle(int $obj_id)
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getInstance()
get singleton instance
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
special template class to simplify handling of ITX/PEAR
This class represents a text property in a property form.
static stripSlashes(string $a_str, bool $a_strip_html=true, string $a_allow="")
static redirect(string $a_script)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
setContent(string $a_html)
Sets content for standard template.
addBlockFile(string $var, string $block, string $template_name, string $in_module=null)
overwrites ITX::addBlockFile
setVariable(string $variable, $value='')
Sets the given variable to the given value.
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
form( $class_path, string $cmd)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Class ChatMainBarProvider \MainMenu\Provider.