/** * 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); } }
/** * 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'); }