Portions created by the Initial Developer are Copyright (C) 2008-2024 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane James Rose */ //includes files require_once dirname(__DIR__, 2) . "/resources/require.php"; require_once "resources/check_auth.php"; //check permissions if (permission_exists('edit_view')) { //access granted } else { echo "access denied"; exit; } //add multi-lingual support $language = new text; $text = $language->get(); //create the settings object if (!$settings) { $settings = new settings(); } //set the directory title and mode switch ($_GET["dir"]) { case 'xml': $title = 'XML'; $mode = 'xml'; $dir = 'xml'; break; case 'provision': $title = 'Provision'; $mode = 'xml'; $dir = 'provision'; break; case 'php': $title = 'PHP'; $mode = 'php'; $dir = 'php'; break; case 'scripts': $title = 'Scripts'; $mode = 'lua'; $dir = 'scripts'; break; case 'grammar': $title = 'Grammar'; $mode = 'xml'; $dir = 'grammar'; break; default: $mode = 'text'; $dir = ''; } //save the sanitized value $_SESSION['app']['edit']['dir'] = $dir; //ensure we have a settings object for older installs if (empty($settings) || !($settings instanceof settings)) { $settings = new settings(['database' => database::new(), 'domain_uuid' => $domain_uuid ?? $_SESSION['domain_uuid'] ?? '', 'user_uuid' => $user_uuid ?? $_SESSION['user_uuid'] ?? '']); } //load editor preferences/defaults $setting_size = $settings->get('editor', 'font_size', '12px'); $setting_theme = $settings->get('editor', 'theme', 'cobalt'); $setting_invisibles = $settings->get('editor', 'invisibles','false'); $setting_indenting = $settings->get('editor', 'indent_guides','false'); $setting_numbering = $settings->get('editor', 'line_numbers','true'); //get and then set the favicon $favicon = $settings->get('theme', 'favicon', PROJECT_ROOT .'/themes/default/favicon.ico'); //create a token $key_name = '/app/edit/'.$mode; $_SESSION['keys'][$key_name] = bin2hex(random_bytes(32)); $_SESSION['token'] = hash_hmac('sha256', $key_name, $_SESSION['keys'][$key_name]); //The buffer must be empty while(ob_get_level() > 0) ob_get_clean(); ?> <?php echo $title; ?>