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.