Пример #1
0
 /**
  * themeple_metabox::save_post()
  * 
  * @return
  */
 function save_post()
 {
     if (isset($_POST['post_ID'])) {
         $must_check = false;
         if (!is_array($this->default_boxes) || !isset($_POST['post_ID']) || !isset($_POST['post_type']) || $this->saved) {
             return;
         }
         foreach ($this->default_boxes as $default_box) {
             if (in_array($_POST['post_type'], $default_box['page'])) {
                 $must_check = true;
             }
         }
         if (!$must_check) {
             return;
         }
         if (function_exists('check_ajax_referer')) {
             check_ajax_referer('themeple_admin_save_metabox', 'themeple_nonce');
         }
         $post_id = $_POST['post_ID'];
         $capability = "edit_post";
         if ('page' == $_POST['post_type']) {
             $capability = "edit_page";
         }
         if (!current_user_can($capability, $post_id)) {
             return $post_id;
         }
         $this->saved = true;
         $meta_array = array();
         foreach ($this->box_elements as $box) {
             foreach ($_POST as $key => $value) {
                 if (strpos($key, $box['id']) !== false) {
                     if (strpos($key, 'on_save_') !== false) {
                         $function = str_replace('on_save_', "", $key);
                     }
                     $meta_array[$key] = $value;
                 }
             }
         }
         $result = themeple_ajax_save_options_create_array($meta_array, true);
         update_post_meta($post_id, '_themeple_elements_' . $this->controller->db_options_prefix, $result);
         do_action('themeple_metabox_save', $post_id, $result);
     }
 }
Пример #2
0
 /**
  * themeple_admin_save_data()
  * 
  * @return
  */
 function themeple_admin_save_data()
 {
     if (function_exists('check_ajax_referer')) {
         check_ajax_referer('themeple_admin_save_data');
     }
     if (!isset($_POST['data']) || !isset($_POST['prefix']) || !isset($_POST['slug'])) {
         die;
     }
     $optionkey = $_POST['prefix'];
     $data_sets = explode("&", $_POST['data']);
     $store_me = themeple_ajax_save_options_create_array($data_sets);
     $current_options = get_option($optionkey);
     foreach ($store_me as $key => $value) {
         $current_options[$_POST['slug']][$key] = $value;
     }
     if (isset($_POST['dynamicOrder']) && $_POST['dynamicOrder'] != "") {
         global $controller;
         $current_elments = array();
         $options = get_option($optionkey . '_dynamic_elements');
         foreach ($options as $key => $element) {
             if (in_array($element['slug'], $controller->subs[$_POST['slug']])) {
                 $current_elments[$key] = $element;
                 unset($options[$key]);
             }
         }
         $sortedOptions = array();
         $neworder = explode('-__-', $_POST['dynamicOrder']);
         $updated_pages = array();
         $updated_elements = array();
         foreach ($neworder as $key) {
             if ($key != "" && array_key_exists($key, $current_elments)) {
                 if (!in_array($current_elments[$key]['slug'], $updated_pages)) {
                     $updated_pages[] = $current_elments[$key]['slug'];
                 }
                 $keyy = $current_elments[$key]['slug'];
                 $updated_elements[$keyy][] = $key;
             }
         }
         foreach ($current_elments as $key => $element) {
             if ($key != "") {
                 if (in_array($element['slug'], $updated_pages)) {
                     if (is_array($updated_elements[$element['slug']])) {
                         foreach ($updated_elements[$element['slug']] as $el) {
                             $sortedOptions[$el] = $current_elments[$el];
                         }
                         foreach ($current_elments as $key => $del) {
                             if ($del['slug'] == $element['slug']) {
                                 unset($current_elements[$key]);
                             }
                         }
                     }
                 } else {
                     $sortedOptions[$key] = $element;
                 }
             }
         }
         $options = array_merge($options, $sortedOptions);
         update_option($optionkey . '_dynamic_elements', $options);
     }
     update_option($optionkey, $current_options);
     die('themeple_save');
 }