public static function route() { $action = isset($_REQUEST['frm_action']) ? 'frm_action' : 'action'; $vars = false; if (isset($_POST['frm_compact_fields'])) { if (!current_user_can('frm_edit_forms') && !current_user_can('administrator')) { global $frm_settings; wp_die($frm_settings->admin_permission); } $json_vars = htmlspecialchars_decode(nl2br(stripslashes(str_replace('"', '\\\\"', $_POST['frm_compact_fields'])))); $json_vars = json_decode($json_vars, true); if (empty($json_vars)) { // json decoding failed so we should return an error message $action = FrmAppHelper::get_param($action); if ('edit' == $action) { $action = 'update'; } add_filter('frm_validate_form', array(__CLASS__, 'json_error')); } else { $vars = FrmAppHelper::json_to_array($json_vars); $action = $vars[$action]; } } else { $action = FrmAppHelper::get_param($action); } if ($action == 'new' or $action == 'new-selection') { return self::new_form($vars); } else { if ($action == 'create') { return self::create($vars); } else { if ($action == 'edit') { return self::edit($vars); } else { if ($action == 'update') { return self::update($vars); } else { if ($action == 'duplicate') { return self::duplicate(); } else { if ($action == 'destroy') { return self::destroy(); } else { if ($action == 'list-form') { return self::list_form(); } else { if ($action == 'settings') { return self::settings(); } else { if ($action == 'update_settings') { return self::update_settings(); } else { do_action('frm_form_action_' . $action); if (apply_filters('frm_form_stop_action_' . $action, false)) { return; } $action = FrmAppHelper::get_param('action'); if ($action == -1) { $action = FrmAppHelper::get_param('action2'); } if (strpos($action, 'bulk_') === 0) { if (isset($_GET) and isset($_GET['action'])) { $_SERVER['REQUEST_URI'] = str_replace('&action=' . $_GET['action'], '', $_SERVER['REQUEST_URI']); } if (isset($_GET) and isset($_GET['action2'])) { $_SERVER['REQUEST_URI'] = str_replace('&action=' . $_GET['action2'], '', $_SERVER['REQUEST_URI']); } return self::list_form(); } else { return self::display_forms_list(); } } } } } } } } } } }
public static function route() { $action = isset($_REQUEST['frm_action']) ? 'frm_action' : 'action'; $vars = array(); if (isset($_POST['frm_compact_fields'])) { FrmAppHelper::permission_check('frm_edit_forms'); $json_vars = htmlspecialchars_decode(nl2br(stripslashes(str_replace('"', '\\\\"', $_POST['frm_compact_fields'])))); $json_vars = json_decode($json_vars, true); if (empty($json_vars)) { // json decoding failed so we should return an error message $action = FrmAppHelper::get_param($action, '', 'get', 'sanitize_title'); if ('edit' == $action) { $action = 'update'; } add_filter('frm_validate_form', 'FrmFormsController::json_error'); } else { $vars = FrmAppHelper::json_to_array($json_vars); $action = $vars[$action]; unset($_REQUEST['frm_compact_fields'], $_POST['frm_compact_fields']); $_REQUEST = array_merge($_REQUEST, $vars); $_POST = array_merge($_POST, $_REQUEST); } } else { $action = FrmAppHelper::get_param($action, '', 'get', 'sanitize_title'); if (isset($_REQUEST['delete_all'])) { // override the action for this page $action = 'delete_all'; } } add_action('frm_load_form_hooks', 'FrmHooksController::trigger_load_form_hooks'); FrmAppHelper::trigger_hook_load('form'); switch ($action) { case 'new': return self::new_form($vars); case 'create': case 'edit': case 'update': case 'duplicate': case 'trash': case 'untrash': case 'destroy': case 'delete_all': case 'settings': case 'update_settings': return self::$action($vars); default: do_action('frm_form_action_' . $action); if (apply_filters('frm_form_stop_action_' . $action, false)) { return; } $action = FrmAppHelper::get_param('action', '', 'get', 'sanitize_text_field'); if ($action == -1) { $action = FrmAppHelper::get_param('action2', '', 'get', 'sanitize_title'); } if (strpos($action, 'bulk_') === 0) { FrmAppHelper::remove_get_action(); return self::list_form(); } return self::display_forms_list(); } }