Ejemplo n.º 1
0
 /**
  * Intercepts values in the administrative interface to do various actions such as:
  * - Saving settings
  * - setting the action box type for new action boxes
  * @return void
  */
 function processSubmissions()
 {
     //process selection of Action Box type
     if (isset($_GET['action_box_set']) && $_GET['action_box_set'] == 1 && wp_verify_nonce($_GET['_wpnonce'], 'action_box_set')) {
         /**
          * TODO: do some security checks on the values
          */
         //$this->setActionBoxType( $_GET['post'], $_GET['action_box_type'] ); //removed v2.9.3
         do_action('mab_set_action_box_type', $_GET['post'], $_GET['action_box_type']);
         wp_redirect(get_edit_post_link($_GET['post'], 'raw'));
         exit;
     }
     //process duplicating an action box
     if (isset($_GET['mab-action']) && $_GET['mab-action'] == 'duplicate' && !empty($_GET['post']) && check_admin_referer('mab-duplicate_action_box_nonce')) {
         $result = $this->duplicateActionBox($_GET['post']);
         $dup_additional = '';
         if ($result) {
             $dup_additional = '&mab-duplicate-id=' . $result;
             //add_action('admin_notices', array( $this, 'notifyOfDuplicate' ) );
         }
         wp_redirect(admin_url('post.php?post=' . $_GET['post'] . '&action=edit'));
         exit;
     }
     //process saving of main settings
     if (isset($_POST['save-mab-settings']) && wp_verify_nonce($_POST['save-mab-settings-nonce'], 'save-mab-settings')) {
         $this->processMabSettings();
         wp_redirect(admin_url('admin.php?page=' . $_GET['page'] . '&updated=true&mab-settings-updated=true'));
         exit;
     } elseif (isset($_GET['page']) && isset($_GET['mab-clear-cache']) && 'mab-main' == $_GET['page'] && 'true' == $_GET['mab-clear-cache'] && check_admin_referer('mab-clear-cache')) {
         ProsulumMabCommon::clearCacheDir();
         //set transient. This is to temporarily store messages so that they can be shown
         set_transient($this->_option_SettingsTransient, array('updates' => array(__('Cache cleared.', 'mab'))), 10);
         wp_redirect(admin_url('admin.php?page=mab-main&clear-cache=true'));
         exit;
     }
     //process fonts
     if (isset($_POST['mab-save-fonts']) && wp_verify_nonce($_POST['save-mab-fonts-nonce'], 'save-mab-fonts-nonce')) {
         $fontResult = $this->processFontSettings();
         wp_redirect(admin_url('admin.php?page=mab-design&mab-fonts-updated=true'));
         exit;
     }
     //process buttons
     if ((isset($_POST['save-button-settings']) || isset($_POST['button-settings']['reset'])) && wp_verify_nonce($_POST['save-mab-button-settings-nonce'], 'save-mab-button-settings-nonce')) {
         $buttonMessage = $this->processButtonSettings();
         wp_redirect(admin_url('admin.php?page=' . $_GET['page'] . '&' . $buttonMessage));
         exit;
     } elseif (isset($_GET['mab-button-id']) && isset($_GET['mab-button-action'])) {
         $button_action = $_GET['mab-button-action'];
         $button_id = $_GET['mab-button-id'];
         //check button key if valid
         if (!$this->isValidButtonKey($button_id)) {
             //button id/key is NOT valid
             wp_redirect(admin_url('admin.php?page=mab-design&mab-invalid-button-id=true'));
             exit;
         }
         if ('duplicate' == $button_action && check_admin_referer('mab-duplicate-button')) {
             $duplicate_button_id = $this->duplicateButton($button_id);
             wp_redirect(admin_url('admin.php?page=mab-design&mab-button-duplicated=' . $duplicate_button_id));
             exit;
         } elseif ('delete' == $button_action && check_admin_referer('mab-delete-button')) {
             $this->deleteConfiguredButton($_GET['mab-button-id']);
             wp_redirect(admin_url('admin.php?page=mab-design&deleted=true'));
             exit;
         }
     } elseif (isset($_GET['mab-create-preconfigured']) && $_GET['mab-create-preconfigured'] == 'true' && check_admin_referer('mab-create-preconfigured')) {
         $this->createPreconfiguredButtons();
         wp_redirect(admin_url('admin.php?page=mab-design&mab-preconfigured-buttons=true'));
         exit;
     }
     //process styles
     if (isset($_POST['save-style-settings']) && wp_verify_nonce($_POST['save-mab-style-settings-nonce'], 'save-mab-style-settings-nonce')) {
         // save/update style
         $styleKey = $this->processStyleSettings();
         wp_redirect(add_query_arg(array('page' => 'mab-style-settings', 'updated' => 'true', 'mab-style-key' => $styleKey), admin_url('admin.php')));
         exit;
     } elseif (isset($_GET['mab-style-key']) && isset($_GET['mab-delete-style']) && $_GET['mab-delete-style'] == 'true' && check_admin_referer('mab-delete-style')) {
         $this->deleteConfiguredStyle($_GET['mab-style-key']);
         wp_redirect(admin_url('admin.php?page=mab-design&deleted=true'));
         exit;
     } elseif (isset($_GET['mab-duplicate-style']) && $_GET['mab-duplicate-style'] == 'true' && $this->isValidStyleKey($_GET['mab-style-key']) && check_admin_referer('mab-duplicate-style')) {
         $style = $this->getConfiguredStyle($_GET['mab-style-key']);
         $style['title'] .= ' - ' . __('Copy', 'mab');
         $style['timesaved'] = current_time('timestamp');
         $this->saveConfiguredStyle($style, null);
         wp_redirect(admin_url('admin.php?page=mab-design&duplicated=true'));
         exit;
     }
 }