From 66bdcf04f431d615b5fac93e7677e7304888e90c Mon Sep 17 00:00:00 2001 From: winter Date: Sat, 18 Jan 2025 20:02:39 +0000 Subject: implement settings editor page --- routes/admin.php | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 routes/admin.php (limited to 'routes') diff --git a/routes/admin.php b/routes/admin.php new file mode 100644 index 0000000..9915fde --- /dev/null +++ b/routes/admin.php @@ -0,0 +1,27 @@ +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('', '.', $key); + error_log("setting '$key' to '$value'"); + $settings->set($key, $value); + } + $saved = true; + } + render_template('settings_editor', ['prefix' => $args['prefix'], 'saved' => $saved]); +}); \ No newline at end of file -- cgit v1.3