. try { // Do some standard HashOver setup work require (realpath ('../../backend/standard-setup.php')); // View setup require (realpath ('../view-setup.php')); // Default blocklist array $blocklist = array (); // Blocklist JSON file location $blocklist_file = $hashover->setup->getAbsolutePath ('config/blocklist.json'); // Check if the form has been submitted if (!empty ($_POST['addresses']) and is_array ($_POST['addresses'])) { // If so, run through submitted addresses foreach ($_POST['addresses'] as $address) { // Add each non-empty address value to the blocklist array if (!empty ($address)) { $blocklist[] = $address; } } // Check if the user login is admin if ($hashover->login->verifyAdmin () === true) { // If so, attempt to save the JSON data $saved = $data_files->saveJSON ($blocklist_file, $blocklist); // If saved successfully, redirect with success indicator if ($saved === true) { redirect ('./?status=success'); } } // Otherwise, redirect with failure indicator redirect ('./?status=failure'); } // Otherwise, load and parse blocklist file $json = $data_files->readJSON ($blocklist_file); // Check for JSON parse error if (is_array ($json)) { $blocklist = $json; } // IP Address inputs $inputs = new HTMLTag ('span'); // Create IP address inputs for ($i = 0, $il = max (3, count ($blocklist)); $i < $il; $i++) { // Create input tag $input = new HTMLTag ('input', array ( 'class' => 'addresses', 'type' => 'text', 'name' => 'addresses[]', 'value' => Misc::getArrayItem ($blocklist, $i) ?: '', 'size' => '15', 'maxlength' => '15', 'placeholder' => '127.0.0.1', 'title' => $hashover->locale->text['blocklist-ip-tip'] ), false, true); // Add input to inputs container $inputs->appendChild ($input); } // Template data $template = array ( 'title' => $hashover->locale->text['blocklist-title'], 'sub-title' => $hashover->locale->text['blocklist-sub'], 'inputs' => $inputs->getInnerHTML ("\t\t"), 'save-button' => $hashover->locale->text['save'] ); // Load and parse HTML template echo parse_templates ('admin', 'blocklist.html', $template, $hashover); } catch (\Exception $error) { echo Misc::displayException ($error); }