/**
  * AJAX submission for updating the stats optin from the modal form
  */
 function update_stats_optin()
 {
     $data = slidedeck2_sanitize($_REQUEST['data']);
     $options = get_option($this->option_name, false);
     $options['anonymous_stats_optin'] = isset($data['anonymous_stats_optin']) && !empty($data['anonymous_stats_optin']) ? true : false;
     $options['anonymous_stats_has_opted'] = true;
     update_option($this->option_name, $options);
     if ($options['anonymous_stats_optin'] == true || self::partner_override()) {
         slidedeck2_km("SlideDeck Installed", array('license' => self::$license, 'version' => self::$version));
     }
 }
 function slidedeck2_sanitize($str = "")
 {
     if (!function_exists('wp_kses')) {
         require_once ABSPATH . 'wp-includes/kses.php';
     }
     global $allowedposttags;
     global $allowedprotocols;
     if (is_string($str)) {
         $str = wp_kses($str, $allowedposttags, $allowedprotocols);
     } elseif (is_array($str)) {
         $arr = array();
         foreach ((array) $str as $key => $val) {
             $arr[$key] = slidedeck2_sanitize($val);
         }
         $str = $arr;
     }
     return $str;
 }
 /**
  * Processor to save SlideDeck data
  * 
  * @param object $id The ID of the SlideDeck to save
  * @param object $params The SlideDeck parameters to save, if none are passed, returns false
  * 
  * @uses wp_verify_nonce()
  * @uses SlideDeckPlugin::sanitize()
  * @uses wp_insert_post()
  * @uses SlideDeckPlugin::load()
  * @uses SlideDeckPlugin::load_slides()
  * @uses update_post_meta()
  * 
  * @return object $slidedeck Updated SlideDeck object
  */
 public final function save($id = null, $params = array())
 {
     global $SlideDeckPlugin;
     // Fail silently if not parameters were passed in
     if (!isset($id) || empty($params)) {
         return false;
     }
     if ($SlideDeckPlugin->get_option('flush_wp_object_cache')) {
         wp_cache_flush();
     }
     // Clean the data for safe storage
     $data = slidedeck2_sanitize($params);
     // What type of SlideDeck is this
     $source = $data['source'];
     // What lens is this SlideDeck using
     $lens = $data['lens'];
     // Third variable referred to the deprecated $type value, removed in 2.1
     do_action("{$this->namespace}_before_save", $id, $data, "", $source);
     $options_model = apply_filters("{$this->namespace}_options_model", $this->options_model, $data);
     // Loop through boolean options and set as false if the value was not passed in
     foreach ($options_model as $options_group => $options) {
         foreach ($options as $key => $properties) {
             if (!isset($properties['data'])) {
                 $properties['data'] = "string";
             }
             if (!isset($data['options'][$key]) && $properties['data'] == "boolean") {
                 $data['options'][$key] = false;
             }
         }
     }
     // Properly store the data as the expected option type
     foreach ($data['options'] as $key => &$val) {
         foreach ($options_model as $options_group => $options) {
             if (in_array($key, array_keys($options))) {
                 // Make sure that the response is of the appropriate object type
                 if (is_string($val)) {
                     $data_type = isset($options[$key]['data']) ? $options[$key]['data'] : "string";
                     $val = $this->_type_fix($val, $data_type);
                 } elseif (is_array($val)) {
                     foreach ($val as $_key => &$_val) {
                         $data_type = isset($options[$key][$_key]['data']) ? $options[$key][$_key]['data'] : "string";
                         $_val = $this->_type_fix($_val, $data_type);
                     }
                 }
             }
         }
     }
     // Allow filter hook-in to override values based on Deck type
     // Third variable ($type) passed to filter deprecated since 2.1
     $data['options'] = apply_filters("{$this->namespace}_options", $data['options'], "", $source);
     $post_args = array('ID' => $id, 'post_status' => "publish", 'post_content' => "", 'post_title' => $data['title']);
     if (isset($data['post_status']) && !empty($data['post_status'])) {
         $post_args['post_status'] = $data['post_status'];
     }
     if (isset($data['post_parent']) && !empty($data['post_parent'])) {
         $post_args['post_parent'] = $data['post_parent'];
     }
     // Save the primary SlideDeck post
     wp_update_post($post_args);
     // Save the content source of the SlideDeck
     $sources = $this->get_sources($id);
     foreach ($data['source'] as $source) {
         if (!in_array($source, $sources)) {
             add_post_meta($id, "{$this->namespace}_source", $source);
         }
     }
     // Save the lens used by this SlideDeck
     update_post_meta($id, "{$this->namespace}_lens", $data['lens']);
     // Save the options for this SlideDeck
     update_post_meta($id, "{$this->namespace}_options", $data['options']);
     // Third variable ($type) deprecated since 2.1
     do_action("{$this->namespace}_after_save", $id, $data, "", $sources);
     // Return the newly saved SlideDeck
     $slidedeck = $this->get($id);
     return $slidedeck;
 }
 /**
  * AJAX response for image properties modal
  */
 function ajax_medialibrary_image_properties()
 {
     if (!wp_verify_nonce($_REQUEST['_wpnonce'], 'slidedeck-medialibrary-image-properties')) {
         wp_die(__("You do not have permission to do this!"), 'slidedeck');
     }
     $media_id = intval($_REQUEST['id']);
     $media = $this->get_media_meta($media_id);
     // Save submission
     if (!empty($_POST)) {
         $data = slidedeck2_sanitize($_POST);
         wp_update_post(array('ID' => $data['ID'], 'post_title' => $data['title'], 'post_excerpt' => $data['caption']));
         update_post_meta($data['ID'], "{$this->namespace}_media_link", $data['media_link']);
         die('Saved!');
     }
     include dirname(__FILE__) . '/views/medialibrary-image-properties.php';
     exit;
 }
 /**
  * Save SlideDeck Cover data
  * 
  * @uses slidedeck2_sanitize()
  * @uses SlideDeckCovers::save()
  */
 function update_cover()
 {
     $data = slidedeck2_sanitize($_REQUEST);
     $this->Cover->save($data['slidedeck'], $data);
     die("Saved!");
 }
Exemple #6
0
 /**
  * Update slide AJAX response
  * 
  * @global $SlideDeckPlugin
  * 
  * @uses do_action()
  * @uses SlideDeck::get()
  * @uses SlideDeckSource::get()
  * @uses SlideDeckSource_Custom::slidedecK_content_control()
  * @uses wp_die()
  * @uses wp_verify_nonce()
  */
 function ajax_update_slide()
 {
     global $SlideDeckPlugin;
     if (!wp_verify_nonce($_REQUEST['_wpnonce'], "{$this->namespace}-custom-slide-editor-form")) {
         wp_die('<h3>' . __("You are not authorized to access this page", $this->namespace) . '</h3><p>' . __("The page you are attempting to access requires higher permission privileges than you currently have. Please make sure you typed in the correct URL or ask your administrator to elevate your privileges.", $this->namespace) . '</p>');
     }
     $slide_id = intval($_REQUEST['slide_id']);
     $slide = $this->Slide->get($slide_id);
     $slidedeck_id = $slide->post_parent;
     $slidedeck = $SlideDeckPlugin->SlideDeck->get($slidedeck_id);
     $data = slidedeck2_sanitize($_POST);
     do_action("{$this->namespace}_update_slide", $slide, $data);
     $this->slidedeck_content_control($slidedeck);
     exit;
 }