aboutsummaryrefslogtreecommitdiff
path: root/public/install.php
blob: 9922f841f0afe077740652d5f5d6da35d103776e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php
/**
 * @author  Jan-Hendrik Willms <tleilax+studip@gmail.com>
 * @license GPL2 or any later version
 */
session_start();

$GLOBALS['STUDIP_BASE_PATH'] = realpath(__DIR__ . '/..');

if (file_exists($GLOBALS['STUDIP_BASE_PATH'] . '/config/config_local.inc.php')
    && !isset($_SESSION['STUDIP_INSTALLATION'])
) {
    throw new Exception(_('Diese Installation ist bereits konfiguriert'));
}

set_include_path($GLOBALS['STUDIP_BASE_PATH']);

require 'composer/autoload.php';
require 'lib/visual.inc.php';
require 'lib/functions.php';
require 'lib/classes/URLHelper.php';
require 'lib/classes/LayoutMessage.php';
require 'lib/classes/MessageBox.php';
require 'lib/classes/Request.php';
require 'lib/classes/Interactable.php';
require 'lib/classes/Button.php';
require 'lib/classes/LinkButton.php';
require 'lib/classes/StudipInstaller.php';
require 'lib/classes/SystemChecker.php';
require 'lib/classes/Markup.php';
require 'lib/exceptions/AccessDeniedException.php';
require 'lib/flexi/Factory.php';
require 'lib/flexi/Template.php';
require 'lib/flexi/PhpTemplate.php';
require 'lib/flexi/TemplateNotFoundException.php';
require 'lib/trails/Controller.php';
require 'lib/trails/Dispatcher.php';
require 'lib/trails/Exception.php';
require 'lib/trails/Flash.php';
require 'lib/trails/Inflector.php';
require 'lib/trails/Response.php';
require 'lib/trails/Exceptions/DoubleRenderError.php';
require 'lib/trails/Exceptions/MissingFile.php';
require 'lib/trails/Exceptions/RoutingError.php';
require 'lib/trails/Exceptions/SessionRequiredException.php';
require 'lib/trails/Exceptions/UnknownAction.php';
require 'lib/trails/Exceptions/UnknownController.php';
require 'vendor/phpass/PasswordHash.php';

// Mock gettext functions if extension is not available
if (!function_exists('_')) {
    function _($what) {
        return $what;
    }
} else {
    require_once 'lib/language.inc.php';

    foreach (explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE'] ?? '') as $lang) {
        [$lang, ] = explode(';', $lang);
        $lang = substr($lang, 0, 2);

        if (!in_array($lang, ['de', 'en'])) {
            continue;
        }

        setLocaleEnv($lang, 'studip');
        break;
    }
}

$GLOBALS['template_factory'] = new Flexi\Factory('../templates/');

# get plugin class from request
$dispatch_to = ltrim(Request::pathInfo(), '/');

$dispatcher = new Trails\Dispatcher( '../app', $_SERVER['SCRIPT_NAME'], 'admin/install');
$dispatcher->dispatch("admin/install/{$dispatch_to}");