/** * Displays the ruleset(s) pages. */ public function display_wemahu_rulesets() { global $wpdb; $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : 'list'; switch ($action) { case 'list': include_once 'views/rulesets.php'; break; case 'edit': $rulsetId = (int) $_REQUEST['id']; $ModelRuleset = new ModelRuleset($wpdb); $rulesetData = $ModelRuleset->getRulesetData($rulsetId); include_once 'views/ruleset.php'; break; case 'save': $rulsetId = (int) $_POST['id']; check_admin_referer('save_ruleset_' . $rulsetId); $ModelRuleset = new ModelRuleset($wpdb); $saveResult = $ModelRuleset->saveRuleset($_POST['ruleset'], $rulsetId); if ($saveResult === false) { $message = array('type' => 'error', 'text' => 'Rule could not be saved to database.'); } else { $message = array('type' => 'updated', 'text' => 'Rule successfully saved.'); $rulsetId = $saveResult; } $rulesetData = $ModelRuleset->getRulesetData($rulsetId); include_once 'views/ruleset.php'; break; case 'add': $rulesetData = array('id' => 0, 'name' => '', 'filecheck' => 1, 'scandir' => '', 'regex_check' => 1, 'hash_check' => 1, 'filetypes' => 'php,jpg,png,gif,js,html,htm,xml,htaccess', 'filesize_max' => '500000'); include_once 'views/ruleset.php'; break; case 'delete': $deleteResult = false; if (!empty($_GET['id'])) { $rulsetId = (int) $_GET['id']; check_admin_referer('delete_' . $rulsetId); $ModelRuleset = new ModelRuleset($wpdb); $deleteResult = $ModelRuleset->deleteRuleset($rulsetId); } if (!empty($_GET['ruleset'])) { check_admin_referer('bulk-rulesets'); $rulesetIds = $_GET['ruleset']; $ModelRuleset = new ModelRuleset($wpdb); foreach ($rulesetIds as $rulsetId) { $deleteResult = $ModelRuleset->deleteRuleset($rulsetId); if ($deleteResult === false) { break; } } $deleteResult = true; } if ($deleteResult === false) { $message = array('type' => 'error', 'text' => 'Rule(s) could not be deleted database.'); } else { $message = array('type' => 'updated', 'text' => 'Rule(s) successfully deleted.'); } include_once 'views/rulesets.php'; break; } }