42require_once(
"libs/composer/vendor/autoload.php");
45if (!isset(
$GLOBALS[
'ilGlobalStartTime']) || !
$GLOBALS[
'ilGlobalStartTime']) {
46 $GLOBALS[
'ilGlobalStartTime'] = microtime();
55include_once
"Services/Context/classes/class.ilContext.php";
90 foreach ($var as $k => $v) {
98 array(
"\x00",
"\n",
"\r",
"\\",
"'",
'"',
"\x1a"),
112 require_once
"./Services/UICore/classes/class.ilTemplate.php";
116 require_once
"./Services/Utilities/classes/class.ilUtil.php";
117 require_once
"./Services/Calendar/classes/class.ilDatePresentation.php";
118 require_once
"include/inc.ilias_version.php";
120 include_once
'./Services/Authentication/classes/class.ilAuthUtils.php';
122 self::initGlobal(
"ilBench",
"ilBenchmark",
"./Services/Utilities/classes/class.ilBenchmark.php");
132 include_once
'Services/Authentication/classes/class.ilAuthFactory.php';
134 require_once(
"include/inc.xml5compliance.php");
136 require_once(
"include/inc.xsl5compliance.php");
148 require_once(
"./Services/Init/classes/class.ilIniFile.php");
154 define(
"ILIAS_DATA_DIR",
$ilIliasIniFile->readVariable(
"clients",
"datadir"));
155 define(
"ILIAS_WEB_DIR",
$ilIliasIniFile->readVariable(
"clients",
"path"));
156 define(
"ILIAS_ABSOLUTE_PATH",
$ilIliasIniFile->readVariable(
'server',
'absolute_path'));
160 define(
"ILIAS_LOG_FILE",
$ilIliasIniFile->readVariable(
"log",
"file"));
161 define(
"ILIAS_LOG_ENABLED",
$ilIliasIniFile->readVariable(
"log",
"enabled"));
162 define(
"ILIAS_LOG_LEVEL",
$ilIliasIniFile->readVariable(
"log",
"level"));
163 define(
"SLOW_REQUEST_TIME",
$ilIliasIniFile->readVariable(
"log",
"slow_request_time"));
166 define(
"PATH_TO_CONVERT",
$ilIliasIniFile->readVariable(
"tools",
"convert"));
167 define(
"PATH_TO_FFMPEG",
$ilIliasIniFile->readVariable(
"tools",
"ffmpeg"));
169 define(
"PATH_TO_MKISOFS",
$ilIliasIniFile->readVariable(
"tools",
"mkisofs"));
170 define(
"PATH_TO_UNZIP",
$ilIliasIniFile->readVariable(
"tools",
"unzip"));
171 define(
"PATH_TO_GHOSTSCRIPT",
$ilIliasIniFile->readVariable(
"tools",
"ghostscript"));
172 define(
"PATH_TO_JAVA",
$ilIliasIniFile->readVariable(
"tools",
"java"));
173 define(
"URL_TO_LATEX",
$ilIliasIniFile->readVariable(
"tools",
"latex"));
175 define(
"PATH_TO_LESSC",
$ilIliasIniFile->readVariable(
"tools",
"lessc"));
176 define(
"PATH_TO_PHANTOMJS",
$ilIliasIniFile->readVariable(
"tools",
"phantomjs"));
180 define(
"ERROR_EDITOR_URL",
$ilIliasIniFile->readVariable(
'error',
'editor_url'));
183 if (
$ilIliasIniFile->variableExists(
'error',
'editor_path_translations')) {
184 define(
"ERROR_EDITOR_PATH_TRANSLATIONS",
$ilIliasIniFile->readVariable(
'error',
'editor_path_translations'));
191 define(
"IL_VIRUS_SCANNER",
"Sophos");
192 define(
"IL_VIRUS_SCAN_COMMAND",
$ilIliasIniFile->readVariable(
"tools",
"scancommand"));
193 define(
"IL_VIRUS_CLEAN_COMMAND",
$ilIliasIniFile->readVariable(
"tools",
"cleancommand"));
197 define(
"IL_VIRUS_SCANNER",
"AntiVir");
198 define(
"IL_VIRUS_SCAN_COMMAND",
$ilIliasIniFile->readVariable(
"tools",
"scancommand"));
199 define(
"IL_VIRUS_CLEAN_COMMAND",
$ilIliasIniFile->readVariable(
"tools",
"cleancommand"));
203 define(
"IL_VIRUS_SCANNER",
"ClamAV");
204 define(
"IL_VIRUS_SCAN_COMMAND",
$ilIliasIniFile->readVariable(
"tools",
"scancommand"));
205 define(
"IL_VIRUS_CLEAN_COMMAND",
$ilIliasIniFile->readVariable(
"tools",
"cleancommand"));
208 define(
"IL_VIRUS_SCANNER",
"icap");
209 define(
"IL_ICAP_HOST",
$ilIliasIniFile->readVariable(
"tools",
"icap_host"));
210 define(
"IL_ICAP_PORT",
$ilIliasIniFile->readVariable(
"tools",
"icap_port"));
211 define(
"IL_ICAP_AV_COMMAND",
$ilIliasIniFile->readVariable(
"tools",
"icap_service_name"));
212 define(
"IL_ICAP_CLIENT",
$ilIliasIniFile->readVariable(
"tools",
"icap_client_path"));
216 define(
"IL_VIRUS_SCANNER",
"None");
219 define(
"IL_VIRUS_CLEAN_COMMAND",
'');
221 include_once
'./Services/Calendar/classes/class.ilTimeZone.php';
223 define(
"IL_TIMEZONE", $tz);
235 return new \ILIAS\ResourceStorage\Services(
240 $revision_repository,
241 $resource_repository,
242 $information_repository,
243 $stakeholder_repository,
248 $resource_repository,
249 $revision_repository,
250 $information_repository,
251 $stakeholder_repository
269 public static function bootstrapFilesystems()
273 $DIC[
'filesystem.security.sanitizing.filename'] =
function (
$c) {
277 $DIC[
'filesystem.factory'] =
function (
$c) {
278 return new \ILIAS\Filesystem\Provider\DelegatingFilesystemFactory(
$c[
'filesystem.security.sanitizing.filename']);
281 $DIC[
'filesystem.web'] =
function (
$c) {
287 $delegatingFactory =
$c[
'filesystem.factory'];
288 $webConfiguration = new \ILIAS\Filesystem\Provider\Configuration\LocalConfig(ILIAS_ABSOLUTE_PATH .
'/' .
ILIAS_WEB_DIR .
'/' .
CLIENT_ID);
289 return $delegatingFactory->getLocal($webConfiguration);
292 $DIC[
'filesystem.storage'] =
function (
$c) {
298 $delegatingFactory =
$c[
'filesystem.factory'];
299 $storageConfiguration = new \ILIAS\Filesystem\Provider\Configuration\LocalConfig(
ILIAS_DATA_DIR .
'/' .
CLIENT_ID);
300 return $delegatingFactory->getLocal($storageConfiguration);
303 $DIC[
'filesystem.temp'] =
function (
$c) {
309 $delegatingFactory =
$c[
'filesystem.factory'];
310 $tempConfiguration = new \ILIAS\Filesystem\Provider\Configuration\LocalConfig(
ILIAS_DATA_DIR .
'/' .
CLIENT_ID .
'/temp');
311 return $delegatingFactory->getLocal($tempConfiguration);
314 $DIC[
'filesystem.customizing'] =
function (
$c) {
320 $delegatingFactory =
$c[
'filesystem.factory'];
321 $customizingConfiguration = new \ILIAS\Filesystem\Provider\Configuration\LocalConfig(ILIAS_ABSOLUTE_PATH .
'/' .
'Customizing');
322 return $delegatingFactory->getLocal($customizingConfiguration);
325 $DIC[
'filesystem.libs'] =
function (
$c) {
331 $delegatingFactory =
$c[
'filesystem.factory'];
332 $customizingConfiguration = new \ILIAS\Filesystem\Provider\Configuration\LocalConfig(ILIAS_ABSOLUTE_PATH .
'/' .
'libs');
333 return $delegatingFactory->getLocal($customizingConfiguration,
true);
336 $DIC[
'filesystem.node_modules'] =
function (
$c) {
342 $delegatingFactory =
$c[
'filesystem.factory'];
343 $customizingConfiguration = new \ILIAS\Filesystem\Provider\Configuration\LocalConfig(ILIAS_ABSOLUTE_PATH .
'/' .
'node_modules');
344 return $delegatingFactory->getLocal($customizingConfiguration,
true);
347 $DIC[
'filesystem'] =
function (
$c) {
348 return new \ILIAS\Filesystem\FilesystemsImpl(
349 $c[
'filesystem.storage'],
350 $c[
'filesystem.web'],
351 $c[
'filesystem.temp'],
352 $c[
'filesystem.customizing'],
353 $c[
'filesystem.libs'],
354 $c[
'filesystem.node_modules']
370 $dic[
'upload.processor-manager'] =
function (
$c) {
375 $fileUploadImpl = new \ILIAS\FileUpload\FileUploadImpl(
$c[
'upload.processor-manager'],
$c[
'filesystem'],
$c[
'http']);
376 if ((defined(
'IL_VIRUS_SCANNER') && IL_VIRUS_SCANNER !=
"None") || (defined(
'IL_SCANNER_TYPE') && IL_SCANNER_TYPE ==
"1")) {
385 return $fileUploadImpl;
394 include_once
'./Services/Http/classes/class.ilHTTPS.php';
397 if (
$https->isDetected()) {
398 $protocol =
'https://';
400 $protocol =
'http://';
404 $rq_uri = strip_tags(
$_SERVER[
'REQUEST_URI']);
408 if (is_int($pos = strpos($rq_uri,
"?"))) {
409 $rq_uri = substr($rq_uri, 0, $pos);
412 if (!defined(
'ILIAS_MODULE')) {
413 $path = pathinfo($rq_uri);
414 if (!$path[
'extension']) {
417 $uri = dirname($rq_uri);
421 $path = dirname($rq_uri);
426 $dirs = explode(
'/', $module);
428 foreach ($dirs as $dir) {
429 $uri = dirname($uri);
436 $ilias_http_path = preg_replace(
'/(http|https)(:\/\/)(.*?\/.*?\.php).*/',
'$1$2$3', $ilias_http_path);
438 $f = new \ILIAS\Data\Factory();
441 $base_URI = $uri->getBaseURI();
443 return define(
'ILIAS_HTTP_PATH', $base_URI);
454 if (defined(
'CLIENT_ID')) {
460 self::abortAndDie(
'Fatal Error: ilInitialisation::determineClient called without initialisation of ILIAS ini file object.');
463 $default_client_id =
$ilIliasIniFile->readVariable(
'clients',
'default');
465 $client_id_to_use =
'';
466 if (isset(
$_GET[
'client_id']) && is_string(
$_GET[
'client_id'])) {
467 $client_id_to_use =
$_GET[
'client_id'];
470 if ($client_id_to_use ===
'' && isset(
$_COOKIE[
'ilClientId']) && is_string(
$_COOKIE[
'ilClientId'])) {
471 $client_id_to_use =
$_COOKIE[
'ilClientId'];
474 $client_id_to_use = $client_id_to_use ?: $default_client_id;
497 self::abortAndDie(
"Fatal Error: ilInitialisation::initClientIniFile called without ILIAS_WEB_DIR.");
502 self::abortAndDie(
"Fatal Error: ilInitialisation::initClientIniFile called without CLIENT_ID.");
508 $ilClientIniFile =
new ilIniFile($ini_file);
509 $ilClientIniFile->read();
512 if ($ilClientIniFile->ERROR !=
"") {
515 $mess = array(
"en" =>
"Client does not exist.",
516 "de" =>
"Mandant ist ungültig.");
517 self::redirect(
"index.php?client_id=" . $default_client,
null, $mess);
519 self::abortAndDie(
"Fatal Error: ilInitialisation::initClientIniFile initializing client ini file abborted with: " . $ilClientIniFile->ERROR);
526 define(
"SESSION_REMINDER_LEADTIME", 30);
527 define(
"DEBUG", $ilClientIniFile->readVariable(
"system",
"DEBUG"));
528 define(
"DEVMODE", $ilClientIniFile->readVariable(
"system",
"DEVMODE"));
529 define(
"SHOWNOTICES", $ilClientIniFile->readVariable(
"system",
"SHOWNOTICES"));
530 define(
"DEBUGTOOLS", $ilClientIniFile->readVariable(
"system",
"DEBUGTOOLS"));
531 define(
"ROOT_FOLDER_ID", $ilClientIniFile->readVariable(
'system',
'ROOT_FOLDER_ID'));
532 define(
"SYSTEM_FOLDER_ID", $ilClientIniFile->readVariable(
'system',
'SYSTEM_FOLDER_ID'));
533 define(
"ROLE_FOLDER_ID", $ilClientIniFile->readVariable(
'system',
'ROLE_FOLDER_ID'));
534 define(
"MAIL_SETTINGS_ID", $ilClientIniFile->readVariable(
'system',
'MAIL_SETTINGS_ID'));
535 $error_handler = $ilClientIniFile->readVariable(
'system',
'ERROR_HANDLER');
536 define(
"ERROR_HANDLER", $error_handler ? $error_handler :
"PRETTY_PAGE");
540 define(
"OH_REF_ID", $ilClientIniFile->readVariable(
"system",
"OH_REF_ID"));
542 define(
"SYSTEM_MAIL_ADDRESS", $ilClientIniFile->readVariable(
'system',
'MAIL_SENT_ADDRESS'));
543 define(
"MAIL_REPLY_WARNING", $ilClientIniFile->readVariable(
'system',
'MAIL_REPLY_WARNING'));
551 define(
"CLIENT_NAME", $ilClientIniFile->readVariable(
'client',
'name'));
553 $val = $ilClientIniFile->readVariable(
"db",
"type");
555 define(
"IL_DB_TYPE",
"mysql");
557 define(
"IL_DB_TYPE", $val);
561 $ilGlobalCacheSettings->readFromIniFile($ilClientIniFile);
572 global $ilClientIniFile;
574 if (!$ilClientIniFile->readVariable(
"client",
"access")) {
576 "en" =>
"The server is not available due to maintenance." .
577 " We apologise for any inconvenience.",
578 "de" =>
"Der Server ist aufgrund von Wartungsarbeiten aktuell nicht verfügbar." .
579 " Wir bitten um Verständnis. Versuchen Sie es später noch einmal."
581 $mess_id =
"init_error_maintenance";
600 $ilDB->initFromIniFile();
613 if (ini_get(
'session.save_handler') !=
'user' && version_compare(PHP_VERSION,
'7.2.0',
'<')) {
614 ini_set(
"session.save_handler",
"user");
617 require_once
"Services/Authentication/classes/class.ilSessionDBHandler.php";
619 if (!$db_session_handler->setSaveHandler()) {
620 self::abortAndDie(
"Please turn off Safe mode OR set session.save_handler to \"user\" in your php.ini");
626 if (function_exists(
"session_status") && session_status() == PHP_SESSION_ACTIVE) {
627 session_regenerate_id();
637 include_once
'Services/Authentication/classes/class.ilAuthFactory.php';
640 } elseif (
$GLOBALS[
'COOKIE_PATH']) {
658 define(
'IL_COOKIE_HTTPONLY',
true);
659 define(
'IL_COOKIE_EXPIRE', 0);
661 define(
'IL_COOKIE_DOMAIN',
'');
666 if (defined(
'CLIENT_ID') &&
667 !defined(
'IL_PHPUNIT_TEST') &&
680 if (!defined(
'IL_COOKIE_SECURE')) {
684 include_once
'./Services/Http/classes/class.ilHTTPS.php';
686 define(
'IL_COOKIE_SECURE', $cookie_secure);
688 $cookie_parameters = [
689 'lifetime' => IL_COOKIE_EXPIRE,
691 'domain' => IL_COOKIE_DOMAIN,
692 'secure' => IL_COOKIE_SECURE,
693 'httponly' => IL_COOKIE_HTTPONLY,
698 (!isset(session_get_cookie_params()[
'samesite']) || strtolower(session_get_cookie_params()[
'samesite']) !==
'strict')
700 $cookie_parameters[
'samesite'] =
'Lax';
703 session_set_cookie_params($cookie_parameters);
713 return new \ilMailMimeTransportFactory(
$c->settings(),
$c->event());
716 return new \ilMailMimeSenderFactory(
$c->settings());
728 $c[
"object.customicons.factory"] =
function (
$c) {
729 require_once
'Services/Object/Icon/classes/class.ilObjectCustomIconFactory.php';
731 $c->filesystem()->web(),
743 $c[
"user.avatar.factory"] =
function (
$c) {
744 return new \ilUserAvatarFactory(
$c);
753 $c[
'tos.criteria.type.factory'] =
function (
757 $c->rbac()->review(),
758 $c[
'ilObjDataCache'],
765 $persistence->setDatabaseAdapter(
$c->database());
768 $c[
'tos.document.evaluator'],
769 $c[
'tos.criteria.type.factory'],
777 $c[
'tos.criteria.type.factory'],
797 $c[
'acc.criteria.type.factory'],
820 "Services/Administration/classes/class.ilSetting.php"
829 define(
"ANONYMOUS_USER_ID",
$ilSetting->get(
"anonymous_user_id"));
830 define(
"ANONYMOUS_ROLE_ID",
$ilSetting->get(
"anonymous_role_id"));
831 define(
"SYSTEM_USER_ID",
$ilSetting->get(
"system_user_id"));
832 define(
"SYSTEM_ROLE_ID",
$ilSetting->get(
"system_role_id"));
833 define(
"USER_FOLDER_ID", 7);
836 define(
"RECOVERY_FOLDER_ID",
$ilSetting->get(
"recovery_folder_id"));
839 define(
"IL_INST_ID",
$ilSetting->get(
"inst_id", 0));
842 define(
"SUFFIX_REPL_DEFAULT",
"php,php3,php4,inc,lang,phtml,htaccess");
843 define(
"SUFFIX_REPL_ADDITIONAL",
$ilSetting->get(
"suffix_repl_additional"));
855 global
$DIC, $ilPluginAdmin;
861 "./Services/Style/System/classes/class.ilStyleDefinition.php"
865 $pl_names = $ilPluginAdmin->getActivePluginsForSlot(
IL_COMP_SERVICE,
"UIComponent",
"uihk");
866 foreach ($pl_names as $pl) {
868 $gui_class = $ui_plugin->getUIClassInstance();
869 $gui_class->modifyGUI(
"Services/Init",
"init_style", array(
"styleDefinition" =>
$DIC->systemStyle()));
880 static $context_init;
882 $uid =
$GLOBALS[
'DIC'][
'ilAuthSession']->getUserId();
884 $DIC->user()->setId($uid);
885 $DIC->user()->read();
886 if (!isset($context_init)) {
887 if (
$DIC->user()->isAnonymous()) {
888 $DIC->globalScreen()->tool()->context()->claim()->external();
890 $DIC->globalScreen()->tool()->context()->claim()->internal();
892 $context_init =
true;
896 \ilOnlineTracking::updateAccess(
$DIC->user());
913 $larr = explode(
",", trim(
$ilSetting->get(
"locale")));
916 foreach ($larr as $l) {
917 if (trim($l) !=
"") {
921 if (count($ls) > 0) {
922 setlocale(LC_ALL, $ls);
925 setlocale(LC_NUMERIC,
"C");
927 if (class_exists(
"Collator")) {
928 $GLOBALS[
"ilCollator"] =
new Collator($first);
929 $GLOBALS[
"DIC"][
"ilCollator"] =
function (
$c) {
950 $session_destroyed =
false;
951 if (
$GLOBALS[
'DIC'][
'ilAuthSession']->isExpired()) {
952 $session_destroyed =
true;
955 if (!
$GLOBALS[
'DIC'][
'ilAuthSession']->isAuthenticated()) {
956 $session_destroyed =
true;
960 if ($session_destroyed) {
967 if (strlen(
$_GET[
"target"])) {
969 $current_script = substr(strrchr(
$_SERVER[
"PHP_SELF"],
"/"), 1);
970 if ($current_script ==
"goto.php") {
978 #if(!$GLOBALS['DIC']->rbac()->system()->checkAccess('read', ROOT_FOLDER_ID))
980 # return self::goToLogin();
985 $_GET[
"cmd"] =
"frameset";
987 "ilias.php?baseClass=ilrepositorygui&reloadpublic=1&cmd=" .
999 $script =
"login.php?target=" .
$_GET[
"target"] .
"&client_id=" .
CLIENT_ID;
1001 if (
$GLOBALS[
'DIC'][
'ilAuthSession']->isExpired()) {
1004 $script .=
"&session_expired=1";
1006 if (!
$GLOBALS[
'DIC'][
'ilAuthSession']->isAuthenticated()) {
1012 "init_error_authentication_fail",
1014 "en" =>
"Authentication failed.",
1015 "de" =>
"Authentifizierung fehlgeschlagen.")
1022 protected static function initLanguage($a_use_user_language =
true)
1031 require_once
'Services/Language/classes/class.ilLanguage.php';
1033 if ($a_use_user_language) {
1034 if (
$DIC->offsetExists(
'lng')) {
1035 $DIC->offsetUnset(
'lng');
1041 if (is_object($rbacsystem) &&
$DIC->offsetExists(
'tree')) {
1042 $rbacsystem->initMemberView();
1054 "./Services/AccessControl/classes/class.ilRbacReview.php"
1057 require_once
"./Services/AccessControl/classes/class.ilRbacSystem.php";
1064 "./Services/AccessControl/classes/class.ilRbacAdmin.php"
1070 "./Services/AccessControl/classes/class.ilAccess.php"
1073 require_once
"./Services/Conditions/classes/class.ilConditionHandler.php";
1081 include_once
'./Services/Logging/classes/public/class.ilLoggerFactory.php';
1096 protected static function initGlobal($a_name, $a_class, $a_source_file =
null)
1100 if ($a_source_file) {
1101 include_once $a_source_file;
1107 $DIC[$a_name] =
function (
$c) use ($a_name) {
1119 if (is_object(
$GLOBALS[
'ilLog'])) {
1120 $GLOBALS[
'ilLog']->write(
"Fatal Error: ilInitialisation - " . $a_message);
1131 if (defined(SHOWNOTICES) && SHOWNOTICES) {
1136 error_reporting(E_ALL);
1138 error_reporting(E_ALL & ~E_NOTICE);
1141 if (defined(
'DEBUGTOOLS') && DEBUGTOOLS) {
1142 include_once
"include/inc.debug.php";
1151 self::$already_initialized =
false;
1160 if (self::$already_initialized) {
1165 $GLOBALS[
"DIC"][
"ilLoggerFactory"] =
function (
$c) {
1169 self::$already_initialized =
true;
1190 self::initLanguage(
true);
1191 $GLOBALS[
'DIC'][
'tree']->initLangCode();
1209 $GLOBALS[
"DIC"][
"ilAuthSession"] =
function (
$c) {
1211 $c[
'ilLoggerFactory']->getLogger(
'auth')
1213 $auth_session->init();
1214 return $auth_session;
1225 error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
1250 "./Services/Init/classes/class.ilErrorHandling.php"
1258 define(
'IL_INITIAL_WD', getcwd());
1261 self::initGlobal(
"ilias",
"ILIAS",
"./Services/Init/classes/class.ilias.php");
1275 self::bootstrapFilesystems();
1296 self::initLanguage(
false);
1302 "ilAppEventHandler",
1303 "ilAppEventHandler",
1304 "./Services/EventHandling/classes/class.ilAppEventHandler.php"
1316 "./Services/Component/classes/class.ilPluginAdmin.php"
1335 self::initGlobal(
"https",
"ilHTTPS",
"./Services/Http/classes/class.ilHTTPS.php");
1336 $https->enableSecureCookies();
1345 "ilObjectDataCache",
1346 "./Services/Object/classes/class.ilObjectDataCache.php"
1350 require_once
"./Services/Xml/classes/class.ilSaxParser.php";
1354 "ilObjectDefinition",
1355 "./Services/Object/classes/class.ilObjectDefinition.php"
1359 require_once
"./Services/Tree/classes/class.ilTree.php";
1367 "./Services/UICore/classes/class.ilCtrl.php"
1388 "./Services/User/classes/class.ilObjUser.php"
1406 !
$GLOBALS[
'DIC'][
'ilAuthSession']->isAuthenticated() or
1407 $GLOBALS[
'DIC'][
'ilAuthSession']->isExpired()
1409 if (
$GLOBALS[
'DIC'][
'ilAuthSession']->isExpired()) {
1414 $current_script = substr(strrchr(
$_SERVER[
"PHP_SELF"],
"/"), 1);
1415 if (self::blockedAuthentication($current_script)) {
1421 return self::handleAuthenticationFail();
1431 protected static function handleAuthenticationSuccess()
1438 require_once
'Services/Tracking/classes/class.ilOnlineTracking.php';
1439 ilOnlineTracking::updateAccess(
$ilUser);
1445 protected static function handleAuthenticationFail()
1459 throw new Exception(
"Authentication failed.");
1462 $GLOBALS[
'DIC'][
'ilAuthSession']->isExpired() &&
1483 return new \ILIAS\HTTP\Request\RequestFactoryImpl();
1487 return new \ILIAS\HTTP\Response\ResponseFactoryImpl();
1490 $container[
'http.cookie_jar_factory'] =
function (
$c) {
1491 return new \ILIAS\HTTP\Cookies\CookieJarFactoryImpl();
1494 $container[
'http.response_sender_strategy'] =
function (
$c) {
1495 return new \ILIAS\HTTP\Response\Sender\DefaultResponseSenderStrategy();
1499 return new \ILIAS\DI\HTTPServices(
1500 $c[
'http.response_sender_strategy'],
1501 $c[
'http.cookie_jar_factory'],
1502 $c[
'http.request_factory'],
1503 $c[
'http.response_factory']
1514 $c[
'global_screen'] =
function () use (
$c) {
1517 $c->globalScreen()->tool()->context()->stack()->clear();
1518 $c->globalScreen()->tool()->context()->claim()->main();
1527 $c[
"ui.factory"] =
function (
$c) {
1528 $c[
"lng"]->loadLanguageModule(
"ui");
1530 $c[
"ui.factory.counter"],
1531 $c[
"ui.factory.button"],
1532 $c[
"ui.factory.listing"],
1533 $c[
"ui.factory.image"],
1534 $c[
"ui.factory.panel"],
1535 $c[
"ui.factory.modal"],
1536 $c[
"ui.factory.dropzone"],
1537 $c[
"ui.factory.popover"],
1538 $c[
"ui.factory.divider"],
1539 $c[
"ui.factory.link"],
1540 $c[
"ui.factory.dropdown"],
1541 $c[
"ui.factory.item"],
1542 $c[
"ui.factory.viewcontrol"],
1543 $c[
"ui.factory.chart"],
1544 $c[
"ui.factory.input"],
1545 $c[
"ui.factory.table"],
1546 $c[
"ui.factory.messagebox"],
1547 $c[
"ui.factory.card"],
1548 $c[
"ui.factory.layout"],
1549 $c[
"ui.factory.maincontrols"],
1550 $c[
"ui.factory.tree"],
1551 $c[
"ui.factory.menu"],
1552 $c[
"ui.factory.symbol"],
1553 $c[
"ui.factory.legacy"]
1556 $c[
"ui.signal_generator"] =
function (
$c) {
1559 $c[
"ui.factory.counter"] =
function (
$c) {
1562 $c[
"ui.factory.button"] =
function (
$c) {
1565 $c[
"ui.factory.listing"] =
function (
$c) {
1568 $c[
"ui.factory.image"] =
function (
$c) {
1571 $c[
"ui.factory.panel"] =
function (
$c) {
1574 $c[
"ui.factory.modal"] =
function (
$c) {
1577 $c[
"ui.factory.dropzone"] =
function (
$c) {
1580 $c[
"ui.factory.popover"] =
function (
$c) {
1583 $c[
"ui.factory.divider"] =
function (
$c) {
1586 $c[
"ui.factory.link"] =
function (
$c) {
1589 $c[
"ui.factory.dropdown"] =
function (
$c) {
1592 $c[
"ui.factory.item"] =
function (
$c) {
1595 $c[
"ui.factory.viewcontrol"] =
function (
$c) {
1597 $c[
"ui.signal_generator"],
1598 $c[
"ui.factory.input"]
1601 $c[
"ui.factory.chart"] =
function (
$c) {
1604 $c[
"ui.factory.input"] =
function (
$c) {
1606 $c[
"ui.signal_generator"],
1607 $c[
"ui.factory.input.field"],
1608 $c[
"ui.factory.input.container"],
1609 $c[
"ui.factory.input.viewcontrol"]
1612 $c[
"ui.factory.table"] =
function (
$c) {
1615 $c[
"ui.factory.messagebox"] =
function (
$c) {
1618 $c[
"ui.factory.card"] =
function (
$c) {
1621 $c[
"ui.factory.layout"] =
function (
$c) {
1624 $c[
"ui.factory.maincontrols.slate"] =
function (
$c) {
1626 $c[
'ui.signal_generator'],
1627 $c[
'ui.factory.counter'],
1628 $c[
"ui.factory.symbol"]
1631 $c[
"ui.factory.maincontrols"] =
function (
$c) {
1633 $c[
'ui.signal_generator'],
1634 $c[
'ui.factory.maincontrols.slate']
1637 $c[
"ui.factory.menu"] =
function (
$c) {
1640 $c[
"ui.factory.symbol.glyph"] =
function (
$c) {
1643 $c[
"ui.factory.symbol.icon"] =
function (
$c) {
1646 $c[
"ui.factory.symbol.avatar"] =
function (
$c) {
1649 $c[
"ui.factory.symbol"] =
function (
$c) {
1651 $c[
"ui.factory.symbol.icon"],
1652 $c[
"ui.factory.symbol.glyph"],
1653 $c[
"ui.factory.symbol.avatar"]
1656 $c[
"ui.factory.progressmeter"] =
function (
$c) {
1659 $c[
"ui.factory.dropzone.file"] =
function (
$c) {
1662 $c[
"ui.factory.input.field"] =
function (
$c) {
1667 $c[
"ui.signal_generator"],
1673 $c[
"ui.factory.input.container"] =
function (
$c) {
1675 $c[
"ui.factory.input.container.form"],
1676 $c[
"ui.factory.input.container.filter"],
1677 $c[
"ui.factory.input.container.viewcontrol"]
1680 $c[
"ui.factory.input.container.form"] =
function (
$c) {
1682 $c[
"ui.factory.input.field"]
1685 $c[
"ui.factory.input.container.filter"] =
function (
$c) {
1687 $c[
"ui.signal_generator"],
1688 $c[
"ui.factory.input.field"]
1691 $c[
"ui.factory.input.container.viewcontrol"] =
function (
$c) {
1694 $c[
"ui.factory.input.viewcontrol"] =
function (
$c) {
1697 $c[
"ui.factory.panel.listing"] =
function (
$c) {
1700 $c[
"ui.renderer"] =
function (
$c) {
1702 $c[
"ui.component_renderer_loader"]
1705 $c[
"ui.component_renderer_loader"] =
function (
$c) {
1707 new ILIAS\
UI\Implementation\Render\LoaderResourceRegistryWrapper(
1708 $c[
"ui.resource_registry"],
1709 new ILIAS\
UI\Implementation\Render\FSLoader(
1710 new ILIAS\
UI\Implementation\Render\DefaultRendererFactory(
1712 $c[
"ui.template_factory"],
1714 $c[
"ui.javascript_binding"],
1716 $c[
"ui.pathresolver"]
1718 new ILIAS\
UI\Implementation\Component\Symbol\Glyph\GlyphRendererFactory(
1720 $c[
"ui.template_factory"],
1722 $c[
"ui.javascript_binding"],
1724 $c[
"ui.pathresolver"]
1726 new ILIAS\
UI\Implementation\Component\Input\Field\FieldRendererFactory(
1728 $c[
"ui.template_factory"],
1730 $c[
"ui.javascript_binding"],
1732 $c[
"ui.pathresolver"]
1738 $c[
"ui.template_factory"] =
function (
$c) {
1741 $c[
"ui.resource_registry"] =
function (
$c) {
1744 $c[
"ui.javascript_binding"] =
function (
$c) {
1748 $c[
"ui.factory.tree"] =
function (
$c) {
1752 $c[
"ui.factory.legacy"] =
function (
$c) {
1757 foreach ($plugins as $plugin_data) {
1760 $c[
'ui.renderer'] =
$plugin->exchangeUIRendererAfterInitialization(
$c);
1762 foreach (
$c->keys() as $key) {
1763 if (strpos($key,
"ui.factory") === 0) {
1764 $c[$key] =
$plugin->exchangeUIFactoryAfterInitialization($key,
$c);
1769 $c[
"ui.pathresolver"] =
function (
$c) :
ILIAS\
UI\Implementation\Render\ImagePathResolver {
1780 $dataFactory = new \ILIAS\Data\Factory();
1783 return new \ILIAS\Refinery\Factory($dataFactory, $language);
1805 $dispatcher = new \ILIAS\Init\StartupSequence\StartUpSequenceDispatcher(
$DIC);
1806 $dispatcher->dispatch();
1809 require_once
"./Services/UICore/classes/class.ilFrameTargetInfo.php";
1812 "ilNavigationHistory",
1813 "ilNavigationHistory",
1814 "Services/Navigation/classes/class.ilNavigationHistory.php"
1820 "./Services/Utilities/classes/class.ilBrowser.php"
1826 "Services/Help/classes/class.ilHelpGUI.php"
1832 "./Services/UIComponent/Toolbar/classes/class.ilToolbarGUI.php"
1838 "./Services/Locator/classes/class.ilLocatorGUI.php"
1844 "./Services/UIComponent/Tabs/classes/class.ilTabsGUI.php"
1848 include_once
'./Services/MainMenu/classes/class.ilMainMenuGUI.php';
1857 $_GET[
'limit'] = (int)
$ilUser->getPref(
'hits_per_page');
1866 if (isset(
$_GET[
'offset']) &&
$_GET[
'offset'] !=
"") {
1870 self::initGlobal(
"lti",
"ilLTIViewGUI",
"./Services/LTI/classes/class.ilLTIViewGUI.php");
1875 include_once
"Services/User/classes/class.ilObjUser.php";
1883 if (is_array($cmd)) {
1884 $cmd_keys = array_keys($cmd);
1885 $cmd = array_shift($cmd_keys) ??
'';
1923 $a_current_script ==
"register.php" ||
1924 $a_current_script ==
"pwassist.php" ||
1925 $a_current_script ==
"confirmReg.php" ||
1926 $a_current_script ==
"il_securimage_play.php" ||
1927 $a_current_script ==
"il_securimage_show.php" ||
1928 $a_current_script ==
'login.php'
1934 $requestBaseClass = strtolower((
string) (
$_GET[
'baseClass'] ??
''));
1935 if ($requestBaseClass == strtolower(ilStartUpGUI::class)) {
1936 $requestCmdClass = strtolower((
string) (
$_GET[
'cmdClass'] ??
''));
1938 $requestCmdClass == strtolower(ilAccountRegistrationGUI::class) ||
1939 $requestCmdClass == strtolower(ilPasswordAssistanceGUI::class)
1946 $cmd ==
"showTermsOfService" ||
1947 $cmd ==
'showAccountMigration' || $cmd ==
'migrateAccount' ||
1948 $cmd ==
'processCode' || $cmd ==
'showLoginPage' || $cmd ==
'showLogout' ||
1949 $cmd ==
'doStandardAuthentication' || $cmd ==
'doCasAuthentication'
1957 if (($a_current_script ==
"goto.php" &&
$_GET[
"target"] ==
"impr_0") ||
1958 strtolower((
string)
$_GET[
"baseClass"]) == strtolower(ilImprintGUI::class)) {
1963 if ($a_current_script ==
'goto.php' && in_array(
$_GET[
'target'], array(
1964 'usr_registration',
'usr_nameassist',
'usr_pwassist',
'usr_agreement'
1989 } elseif ($_REQUEST[
"lang"]) {
1990 $lang = (string) $_REQUEST[
"lang"];
1993 } elseif ($ilClientIniFile) {
1994 $lang = $ilClientIniFile->readVariable(
"language",
"default");
2001 if (
$ilDB && $a_message_id) {
2003 require_once
"./Services/Language/classes/class.ilLanguage.php";
2007 $lng->loadLanguageModule(
"init");
2009 } elseif (is_array($a_message_static)) {
2010 if (!isset($a_message_static[
$lang])) {
2025 protected static function redirect($a_target, $a_message_id =
'', array $a_message_static =
null)
2028 if (defined(
"ILIAS_HTTP_PATH") &&
2029 !stristr($a_target, ILIAS_HTTP_PATH)) {
2030 $a_target = ILIAS_HTTP_PATH .
"/" . $a_target;
2033 foreach ([
'ext_uid',
'soap_pw'] as
$param) {
2034 if (
false === strpos($a_target,
$param .
'=') && isset(
$GLOBALS[
'DIC']->
http()->request()->getQueryParams()[
$param])) {
2049 "init_error_redirect_click",
2050 array(
"en" =>
'Please click to continue.',
2051 "de" =>
'Bitte klicken um fortzufahren.')
2054 '<br /><a href="' . $a_target .
'">' . $link .
'</a>';
2063 "init_error_redirect_info",
2064 array(
"en" =>
'Redirect not supported by context.',
2065 "de" =>
'Weiterleitungen werden durch Kontext nicht unterstützt.')
2067 ' (' . $a_target .
')';
2078 public static function redirectToStartingPage()
2093 if (!
$_GET[
"target"]) {
2096 include_once
'./Services/User/classes/class.ilUserUtil.php';
2109 $n_of_tasks =
$ilIliasIniFile->readVariable(
"background_tasks",
"number_of_concurrent_tasks");
2110 $sync =
$ilIliasIniFile->readVariable(
"background_tasks",
"concurrency");
2112 $n_of_tasks = $n_of_tasks ? $n_of_tasks : 5;
2113 $sync = $sync ? $sync :
'sync';
2115 $c[
"bt.task_factory"] =
function (
$c) {
2116 return new \ILIAS\BackgroundTasks\Implementation\Tasks\BasicTaskFactory(
$c[
"di.injector"]);
2119 $c[
"bt.persistence"] =
function (
$c) {
2120 return \ILIAS\BackgroundTasks\Implementation\Persistence\BasicPersistence::instance(
$c->database());
2123 $c[
"bt.injector"] =
function (
$c) {
2127 $c[
"bt.task_manager"] =
function (
$c) use ($sync) {
2128 if ($sync ==
'sync') {
2129 return new \ILIAS\BackgroundTasks\Implementation\TaskManager\SyncTaskManager(
$c[
"bt.persistence"]);
2130 } elseif ($sync ==
'async') {
2131 return new \ILIAS\BackgroundTasks\Implementation\TaskManager\AsyncTaskManager(
$c[
"bt.persistence"]);
2133 throw new ilException(
"The supported Background Task Managers are sync and async. $sync given.");
2141 $c[
"di.dependency_map"] =
function (
$c) {
2142 return new \ILIAS\BackgroundTasks\Dependencies\DependencyMap\BaseDependencyMap();
2145 $c[
"di.injector"] =
function (
$c) {
2146 return new \ILIAS\BackgroundTasks\Dependencies\Injector(
$c,
$c[
"di.dependency_map"]);
2152 $c[
"service.kiosk_mode"] =
function (
$c) {
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
const PEAR_ERROR_CALLBACK
static orderBy($orderBy, $orderDirection='ASC')
An exception for terminatinating execution or to throw for unit testing.
Customizing of pimple-DIC for ILIAS.
Builds a Color from either hex- or rgb values.
Class BlacklistExtensionPreProcessor PreProcessor which denies all blacklisted file extensions.
Class FilenameSanitizerPreProcessor.
Class InsecureFilenameSanitizerPreProcessor.
Class PreProcessorManagerImpl.
Class SVGBlacklistPreProcessor.
Class VirusScannerPreProcessor.
Class WhiteAndBlacklistedFileNamePolicy.
Class DBRepositoryPreloader.
Class ResourceDBRepository.
Class RevisionDBRepository.
Interface StakeholderDBRepository.
Class FileSystemStorageHandler.
Class StorageHandlerFactory.
Implementation of factory for cards.
Implementation of factory for tables.
Renderer that dispatches rendering of UI components to a Renderer found in the same namespace as the ...
Caches renderers loaded by another loader.
Wraps global ilTemplate to provide JavaScriptBinding.
Plumbing for ILIAS, tries to guess.
Factory for wrapped ilTemplates.
if(!isset($GLOBALS['ilGlobalStartTime'])||! $GLOBALS['ilGlobalStartTime']) global $DIC
Class ilAccessibilityCriterionTypeFactory.
Class ilAccessibilityLogicalAndDocumentCriteriaEvaluation.
Interface ilAccessibilitySequentialDocumentEvaluation.
static getInstance(\ilLogger $logger)
Get instance.
static isAuthenticationForced()
Check if authentication is should be forced.
static handleForcedAuthentication()
static usesTemplate()
Uses template engine.
static modifyHttpPath(string $httpPath)
static supportsRedirects()
Are redirects supported?
static hasUser()
Based on user authentication?
static supportsPersistentSessions()
Check if context supports persistent session handling.
static getType()
Get context type.
static hasHTML()
Has HTML output.
static usesHTTP()
Uses HTTP aka browser.
const CONTEXT_LTI_PROVIDER
static initClient()
Init client.
static getCountryCodes()
Get country codes (DIN EN 3166-1)
static getWrapper($a_type)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getExplicitlyBlockedFiles()
Class ilGSProviderFactory.
Class ilGlobalCacheSettings.
static setup(ilGlobalCacheSettings $ilGlobalCacheSettings)
Class ilGlobalPageTemplate.
static getInstance()
Get https instance.
ILIAS Initialisation Utility Class perform basic setup: init database handler, load configuration fil...
static setClientIdCookie()
static blockedAuthentication($a_current_script)
Block authentication based on current request.
static initDatabase()
initialise database object $ilDB
static initHTTPServices(\ILIAS\DI\Container $container)
static goToLogin()
go to login
static initILIAS()
ilias initialisation
static initLocale()
Init Locale.
static removeUnsafeCharacters()
Remove unsafe characters from GET.
static buildHTTPPath()
builds http path
static requireCommonIncludes()
get common include code files
static initClientIniFile()
This method provides a global instance of class ilIniFile for the client.ini.php file in variable $il...
static initSession()
Init auth session.
static initClient()
Init client-based objects (level 1)
static initCore()
Init core objects (level 0)
static recursivelyRemoveUnsafeCharacters($var)
static initUIFramework(\ILIAS\DI\Container $c)
init the ILIAS UI framework.
static includePhp5Compliance()
This is a hack for authentication.
static handleErrorReporting()
Set error reporting level.
static initFileUploadService(\ILIAS\DI\Container $dic)
Initializes the file upload service.
static determineClient()
This method determines the current client and sets the constant CLIENT_ID.
static translateMessage($a_message_id, array $a_message_static=null)
Translate message if possible.
static redirect($a_target, $a_message_id='', array $a_message_static=null)
Redirects to target url if context supports it.
static initHTML()
init HTML output (level 3)
static initLog()
Init log instance.
static initAvatar(\ILIAS\DI\Container $c)
static goToPublicSection()
go to public section
static resumeUserSession()
Resume an existing user session.
static setSessionHandler()
set session handler to db
static handleDevMode()
Prepare developer tools.
static setCookieConstants()
static initUser()
Init user / authentification (level 2)
static initKioskMode(\ILIAS\DI\Container $c)
static initGlobal($a_name, $a_class, $a_source_file=null)
Initialize global instance.
static initBackgroundTasks(\ILIAS\DI\Container $c)
static abortAndDie($a_message)
Exit.
static initInjector(\ILIAS\DI\Container $c)
static setSessionCookieParams()
set session cookie params
static initResourceStorage()
static initSettings()
initialise $ilSettings object and define constants
static initGlobalScreen(\ILIAS\DI\Container $c)
static initMail(\ILIAS\DI\Container $c)
static initTermsOfService(\ILIAS\DI\Container $c)
static initRefinery(\ILIAS\DI\Container $container)
static initAccessibilityControlConcept(\ILIAS\DI\Container $c)
static $already_initialized
static handleMaintenanceMode()
handle maintenance mode
static initAccessHandling()
$ilAccess and $rbac... initialisation
static initUserAccount()
Init user with current account id.
static initCustomObjectIcons(\ILIAS\DI\Container $c)
static initIliasIniFile()
This method provides a global instance of class ilIniFile for the ilias.ini.php file in variable $ilI...
static initStyle()
provide $styleDefinition object
Central entry point for users of the service.
static getFallbackInstance()
Builds a global default language instance.
static getGlobalInstance()
Builds the global language object.
static getRootLogger()
The unique root logger has a fixed error level.
static getLogger($a_component_id)
Get component logger.
Class ilMailTemplateRepository.
Handles display of the main menu.
Class ilObjTermsOfService.
static _isAnonymous($usr_id)
Class ilObjectCustomIconFactory.
Administration class for plugins.
static getPluginObject($a_ctype, $a_cname, $a_slot_id, $a_pname)
Get Plugin Object.
static getActivePlugins()
Get info for all active plugins.
static getInstance()
Get instance.
Database Session Handling.
static _exists($a_session_id)
Check whether session exists.
static set($a_var, $a_val)
Set a value.
static setClosingContext($a_context)
set closing context (for statistics)
const SESSION_CLOSE_LOGIN
static _destroy($a_session_id, $a_closing_context=null, $a_expired_at=null)
Destroy session.
const SESSION_CLOSE_PUBLIC
const SESSION_CLOSE_EXPIRE
Class ilTermsOfServiceCriterionTypeFactory.
Class ilTermsOfServiceDataGatewayFactory.
Class ilTermsOfServiceHelper.
Interface ilTermsOfServiceLogicalAndDocumentCriteriaEvaluation.
Interface ilTermsOfServiceSequentialDocumentEvaluation.
static initDefaultTimeZone(ilIniFile $ini)
Initialize default timezone from system settings.
Tree class data representation in hierachical trees using the Nested Set Model with Gaps by Joe Celco...
static appendUrlParameterString($a_url, $a_par, $xml_style=false)
append URL parameter string ("par1=value1&par2=value2...") to given URL string
static setCookie($a_cookie_name, $a_cookie_value='', $a_also_set_super_global=true, $a_set_cookie_invalid=false)
static redirect($a_script)
static getClientIdByString(string $clientId)
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static removeTrailingPathSeparators($path)
const ILIAS_VERSION_NUMERIC
Interface FilesystemFactory The filesystem factory produces different filesystem types.
This is what a factory for layouts looks like.
This is how the factory for UI elements looks.
Interface ilTermsOfServiceCriterionTypeFactoryInterface.
Interface ilTermsOfServiceDocumentEvaluation.
if($DIC->http() ->request() ->getMethod()=="GET" &&isset($DIC->http() ->request() ->getQueryParams()['tex'])) $tpl
static http()
Fetches the global http state from ILIAS.
Class ChatMainBarProvider \MainMenu\Provider.
Class ilAsqQuestionAuthoringFactory.