. // Setup class autoloader setup_autoloader (); // Instantiate HashOver class $hashover = new \HashOver (); // Instantiate Locale class $hashover->locale = new Locale ($hashover->setup); // Instantiate FileWriter class $data_files = new DataFiles ($hashover->setup); // Redirects the user back to where they came from function redirect ($url = '') { // Check if we're redirecting to a specific URL if (!empty ($url)) { // If so, use it header ('Location: ' . $url); } else { // If not, check if there is a redirect specified if (!empty ($_GET['redirect'])) { // If so, use it header ('Location: ' . $_GET['redirect']); } else { // If not, redirect to moderation header ('Location: ../moderation/'); } } // Exit after redirect exit; } // Parse and return template files function parse_templates ($template, $fragment, array $data, \HashOver $hashover) { // Parse page fragment template file $page = $hashover->templater->parseTemplate ($fragment, $data); // Indent page fragment by two tabs $page = str_replace (PHP_EOL, PHP_EOL . "\t\t", $page); // Get configured language in en-us format $language = str_replace ('_', '-', strtolower ($hashover->setup->language)); // Fallback to English if documentation does not exist for configured language $language = file_exists ('/docs/' . $language) ? $language : 'en-us'; // Get website from URL $website = $hashover->setup->getRequest ('website'); // Merge some default informatin into template data $data = array_merge ($data, array ( // HTTP root directory 'root' => rtrim ($hashover->setup->httpRoot, '/'), // HTTP admin root directory 'admin' => $hashover->setup->getHttpPath ('admin'), // Get website query from URL 'website-query' => $website ? '?website=' . $website : '', // Navigation locale strings 'moderation' => $hashover->locale->text['moderation'], 'threads' => $hashover->locale->text['threads'], 'ip-blocking' => $hashover->locale->text['block-ip-addresses'], 'url-filtering' => $hashover->locale->text['filter-url-queries'], 'settings' => $hashover->locale->text['settings'], 'updates' => $hashover->locale->text['check-for-updates'], 'docs' => $hashover->locale->text['documentation'], 'logout' => $hashover->locale->text['logout'], // Configured language in en-us format 'language' => $language, // Parsed page template 'content' => $page )); // Check if form has been submitted if (!empty ($_GET['status'])) { // If so, check if form submission was successful if ($_GET['status'] === 'success') { // If so, add success message locale to template data $data['message'] = $hashover->locale->text['successful-save']; // And add message status to template data $data['message-status'] = 'success'; } else { // If so, add error message locale to template data $data['message'] = $hashover->locale->text['failed-to-save']; // Add file permissions explanation to template data $data['error'] = $hashover->locale->permissionsInfo ('config'); // And add message status to template data $data['message-status'] = 'error'; } } // Load and parse admin template $admin = $hashover->templater->parseTemplate ('../' . $template . '.html', $data); // Return parsed admin template return $admin; } // Exit if the user isn't logged in as admin if ($hashover->login->userIsAdmin !== true) { $uri = $_SERVER['REQUEST_URI']; $uri_parts = explode ('?', $uri); if (basename ($uri_parts[0]) !== 'login') { redirect ('../login/?redirect=' . urlencode ($uri)); } }