/** * Saves the meta box values * * @return void * * @access public * @since 1.0 */ function save_meta_box($post_id, $post_object) { global $pagenow; /* don't save during quick edit */ if ($pagenow == 'admin-ajax.php') { return $post_id; } /* don't save during autosave */ if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { return $post_id; } /* don't save if viewing a revision */ if ($post_object->post_type == 'revision') { return $post_id; } /* verify nonce */ if (isset($_POST[$this->meta_box['id'] . '_nonce']) && !wp_verify_nonce($_POST[$this->meta_box['id'] . '_nonce'], $this->meta_box['id'])) { return $post_id; } /* check permissions */ if (isset($_POST['post_type']) && 'page' == $_POST['post_type']) { if (!current_user_can('edit_page', $post_id)) { return $post_id; } } else { if (!current_user_can('edit_post', $post_id)) { return $post_id; } } foreach ($this->meta_box['fields'] as $field) { $old = get_post_meta($post_id, $field['id'], true); $new = ''; /* there is data to validate */ if (isset($_POST[$field['id']])) { /* slider and list item */ if (in_array($field['type'], array('list-item', 'slider'))) { /* required title setting */ $required_setting = array(array('id' => 'title', 'label' => __('Title', 'option-tree'), 'desc' => '', 'std' => '', 'type' => 'text', 'rows' => '', 'class' => 'option-tree-setting-title', 'post_type' => '', 'choices' => array())); /* get the settings array */ $settings = isset($_POST[$field['id'] . '_settings_array']) ? unserialize(ot_decode($_POST[$field['id'] . '_settings_array'])) : array(); /* settings are empty for some odd ass reason get the defaults */ if (empty($settings)) { $settings = 'slider' == $field['type'] ? ot_slider_settings($field['id']) : ot_list_item_settings($field['id']); } /* merge the two settings array */ $settings = array_merge($required_setting, $settings); foreach ($_POST[$field['id']] as $k => $setting_array) { foreach ($settings as $sub_setting) { /* verify sub setting has a type & value */ if (isset($sub_setting['type']) && isset($_POST[$field['id']][$k][$sub_setting['id']])) { $_POST[$field['id']][$k][$sub_setting['id']] = ot_validate_setting($_POST[$field['id']][$k][$sub_setting['id']], $sub_setting['type'], $sub_setting['id']); } } } /* set up new data with validated data */ $new = $_POST[$field['id']]; } else { /* run through validattion */ $new = ot_validate_setting($_POST[$field['id']], $field['type'], $field['id']); } /* insert CSS */ if ($field['type'] == 'css') { /* insert CSS into dynamic.css */ if ('' !== $new) { ot_insert_css_with_markers($field['id'], $new, true); /* remove old CSS from dynamic.css */ } else { ot_remove_old_css($field['id']); } } } if ($new && $new !== $old) { update_post_meta($post_id, $field['id'], $new); } else { if ('' == $new && $old) { delete_post_meta($post_id, $field['id'], $old); } } } }
function ot_save_css($options) { /* grab a copy of the settings */ $settings = get_option(ot_settings_id()); /* has settings */ if (isset($settings['settings'])) { /* loop through sections and insert CSS when needed */ foreach ($settings['settings'] as $k => $setting) { /* is the CSS option type */ if (isset($setting['type']) && 'css' == $setting['type']) { /* insert CSS into dynamic.css */ if (isset($options[$setting['id']]) && '' !== $options[$setting['id']]) { ot_insert_css_with_markers($setting['id'], $options[$setting['id']]); /* remove old CSS from dynamic.css */ } else { ot_remove_old_css($setting['id']); } } } } }