aboutsummaryrefslogtreecommitdiffhomepage
path: root/routes/admin.php
blob: 9915fde81f5a52bd0c1164254a5e9a0c2a54d58c (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
<?php

use Digitigrade\GlobalSettings;
use Digitigrade\Model\UserAccount;
use Digitigrade\Router;

Router::getInstance()->mount('/admin/settings/:prefix', function (array $args) {
    UserAccount::requireByCurrentSession()->requireAdmin();
    render_template('global_settings_page', ['prefix' => $args['prefix']]);
});

Router::getInstance()->mount('/fragment/admin/settings/:prefix', function (array $args) {
    UserAccount::requireByCurrentSession()->requireAdmin();
    $saved = false;
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        // update all the settings from the page
        $settings = GlobalSettings::getInstance();
        foreach ($_POST as $key => $value) {
            // same workaround as in settings_field
            $key = str_replace('<DOT>', '.', $key);
            error_log("setting '$key' to '$value'");
            $settings->set($key, $value);
        }
        $saved = true;
    }
    render_template('settings_editor', ['prefix' => $args['prefix'], 'saved' => $saved]);
});