wp/wp-content/plugins/option-tree/includes/class-ot-meta-box.php
author ymh <ymh.work@gmail.com>
Tue, 27 Sep 2022 16:37:53 +0200
changeset 19 3d72ae0968f4
parent 11 bf1778c34b9a
permissions -rw-r--r--
upgrade wordpress to 6.0.2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<?php
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
/**
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
 * OptionTree Meta Box.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
 *
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
 * @package OptionTree
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
 */
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
if ( ! defined( 'OT_VERSION' ) ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
	exit( 'No direct script access allowed' );
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
if ( ! class_exists( 'OT_Meta_Box' ) ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
	/**
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
	 * OptionTree Meta Box class.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
	 *
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
	 * This class loads all the methods and helpers specific to build a meta box.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
	 */
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
	class OT_Meta_Box {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
		/**
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
		 * Stores the meta box config array.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
		 *
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
		 * @var string
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
		 */
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
		private $meta_box;
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
		/**
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
		 * Class constructor.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
		 *
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
		 * This method adds other methods of the class to specific hooks within WordPress.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
		 *
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
		 * @uses add_action()
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
		 *
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
		 * @access public
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
		 * @since  1.0
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
		 *
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
		 * @param array $meta_box Meta box config array.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
		 */
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
		public function __construct( $meta_box ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
			if ( ! is_admin() ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
				return;
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
			}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
			global $ot_meta_boxes;
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
			if ( ! isset( $ot_meta_boxes ) ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
				$ot_meta_boxes = array();
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
			}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
			$ot_meta_boxes[] = $meta_box;
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
			$this->meta_box = $meta_box;
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
			add_action( 'add_meta_boxes', array( $this, 'add_meta_boxes' ) );
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
			add_action( 'save_post', array( $this, 'save_meta_box' ), 1, 2 );
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
		}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
		/**
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
		 * Adds meta box to any post type
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
		 *
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
		 * @uses add_meta_box()
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
		 *
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
		 * @access public
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
		 * @since  1.0
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
		 */
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
		public function add_meta_boxes() {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
			global $wp_version;
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
			$is_wp_5 = version_compare( $wp_version, '5.0', '>=' );
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
			foreach ( (array) $this->meta_box['pages'] as $page ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
				add_meta_box( $this->meta_box['id'], $this->meta_box['title'], array( $this, 'build_meta_box' ), $page, $this->meta_box['context'], $this->meta_box['priority'], $this->meta_box['fields'] );
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
				if ( $is_wp_5 ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
					add_filter(
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
						'postbox_classes_' . $page . '_' . $this->meta_box['id'],
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
						function( $classes ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
							array_push( $classes, 'ot-meta-box' );
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
							return $classes;
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
						}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
					);
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
				}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
			}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
		}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
		/**
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
		 * Meta box view.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
		 *
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
		 * @access public
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
		 * @since  1.0
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
		 *
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
		 * @param object $post   The WP_Post object.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
		 * @param array  $fields The meta box fields.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
		 */
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
		public function build_meta_box( $post, $fields ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
			unset( $fields ); // @todo Check if the loop can use this param.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
			echo '<div class="ot-metabox-wrapper">';
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
			// Use nonce for verification.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
			echo '<input type="hidden" name="' . esc_attr( $this->meta_box['id'] ) . '_nonce" value="' . esc_attr( wp_create_nonce( $this->meta_box['id'] ) ) . '" />';
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
			// Meta box description.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
			echo isset( $this->meta_box['desc'] ) && ! empty( $this->meta_box['desc'] ) ? '<div class="description" style="padding-top:10px;">' . htmlspecialchars_decode( $this->meta_box['desc'] ) . '</div>' : ''; // phpcs:ignore
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
			// Loop through meta box fields.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
			foreach ( $this->meta_box['fields'] as $field ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
				// Get current post meta data.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
				$field_value = get_post_meta( $post->ID, $field['id'], true );
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
				// Set standard value.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
				if ( isset( $field['std'] ) ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
					$field_value = ot_filter_std_value( $field_value, $field['std'] );
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
				}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
				// Build the arguments array.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
				$_args = array(
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
					'type'               => $field['type'],
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
					'field_id'           => $field['id'],
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
					'field_name'         => $field['id'],
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   124
					'field_value'        => $field_value,
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   125
					'field_desc'         => isset( $field['desc'] ) ? $field['desc'] : '',
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
					'field_std'          => isset( $field['std'] ) ? $field['std'] : '',
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
					'field_rows'         => isset( $field['rows'] ) && ! empty( $field['rows'] ) ? $field['rows'] : 10,
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
					'field_post_type'    => isset( $field['post_type'] ) && ! empty( $field['post_type'] ) ? $field['post_type'] : 'post',
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
					'field_taxonomy'     => isset( $field['taxonomy'] ) && ! empty( $field['taxonomy'] ) ? $field['taxonomy'] : 'category',
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
					'field_min_max_step' => isset( $field['min_max_step'] ) && ! empty( $field['min_max_step'] ) ? $field['min_max_step'] : '0,100,1',
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
					'field_class'        => isset( $field['class'] ) ? $field['class'] : '',
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
					'field_condition'    => isset( $field['condition'] ) ? $field['condition'] : '',
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
					'field_operator'     => isset( $field['operator'] ) ? $field['operator'] : 'and',
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
					'field_choices'      => isset( $field['choices'] ) ? $field['choices'] : array(),
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
					'field_settings'     => isset( $field['settings'] ) && ! empty( $field['settings'] ) ? $field['settings'] : array(),
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
					'post_id'            => $post->ID,
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
					'meta'               => true,
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
				);
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
				$conditions = '';
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
				// Setup the conditions.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
				if ( isset( $field['condition'] ) && ! empty( $field['condition'] ) ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
					$conditions  = ' data-condition="' . esc_attr( $field['condition'] ) . '"';
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
					$conditions .= isset( $field['operator'] ) && in_array( $field['operator'], array( 'and', 'AND', 'or', 'OR' ), true ) ? ' data-operator="' . esc_attr( $field['operator'] ) . '"' : '';
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
				}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
				// Only allow simple textarea due to DOM issues with wp_editor().
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
				if ( false === apply_filters( 'ot_override_forced_textarea_simple', false, $field['id'] ) && 'textarea' === $_args['type'] ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
					$_args['type'] = 'textarea-simple';
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
				}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
				// Build the setting CSS class.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
				if ( ! empty( $_args['field_class'] ) ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
					$classes = explode( ' ', $_args['field_class'] );
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
					foreach ( $classes as $key => $value ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
						$classes[ $key ] = $value . '-wrap';
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
					}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
					$class = 'format-settings ' . implode( ' ', $classes );
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   165
				} else {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
					$class = 'format-settings';
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
				}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
				// Option label.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
				echo '<div id="setting_' . esc_attr( $field['id'] ) . '" class="' . esc_attr( $class ) . '"' . $conditions . '>'; // phpcs:ignore
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
				echo '<div class="format-setting-wrap">';
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
				// Don't show title with textblocks.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
				if ( 'textblock' !== $_args['type'] && ! empty( $field['label'] ) ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   177
					echo '<div class="format-setting-label">';
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   178
					echo '<label for="' . esc_attr( $field['id'] ) . '" class="label">' . esc_html( $field['label'] ) . '</label>';
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   179
					echo '</div>';
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   180
				}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   181
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   182
				// Get the option HTML.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   183
				echo ot_display_by_type( $_args ); // phpcs:ignore
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   184
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   185
				echo '</div>';
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   186
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   187
				echo '</div>';
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   188
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   189
			}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   190
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   191
			echo '<div class="clear"></div>';
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   192
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   193
			echo '</div>';
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   194
		}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   195
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   196
		/**
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   197
		 * Saves the meta box values
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   198
		 *
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   199
		 * @access public
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   200
		 * @since  1.0
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   201
		 *
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   202
		 * @param  int    $post_id The post ID.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   203
		 * @param  object $post_object The WP_Post object.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   204
		 * @return int|void
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   205
		 */
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   206
		public function save_meta_box( $post_id, $post_object ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   207
			global $pagenow;
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   208
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   209
			// Verify nonce.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   210
			if ( isset( $_POST[ $this->meta_box['id'] . '_nonce' ] ) && ! wp_verify_nonce( $_POST[ $this->meta_box['id'] . '_nonce' ], $this->meta_box['id'] ) ) { // phpcs:ignore
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   211
				return $post_id;
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   212
			}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   213
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   214
			// Store the post global for use later.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   215
			$post_global = $_POST;
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   216
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   217
			// Don't save if $_POST is empty.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   218
			if ( empty( $post_global ) || ( isset( $post_global['vc_inline'] ) && true === $post_global['vc_inline'] ) ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   219
				return $post_id;
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   220
			}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   221
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   222
			// Don't save during quick edit.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   223
			if ( 'admin-ajax.php' === $pagenow ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   224
				return $post_id;
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   225
			}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   226
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   227
			// Don't save during autosave.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   228
			if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   229
				return $post_id;
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   230
			}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   231
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   232
			// Don't save if viewing a revision.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   233
			if ( 'revision' === $post_object->post_type || 'revision.php' === $pagenow ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   234
				return $post_id;
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   235
			}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   236
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   237
			// Check permissions.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   238
			if ( isset( $post_global['post_type'] ) && 'page' === $post_global['post_type'] ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   239
				if ( ! current_user_can( 'edit_page', $post_id ) ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   240
					return $post_id;
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   241
				}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   242
			} else {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   243
				if ( ! current_user_can( 'edit_post', $post_id ) ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   244
					return $post_id;
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   245
				}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   246
			}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   247
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   248
			foreach ( $this->meta_box['fields'] as $field ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   249
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   250
				$old = get_post_meta( $post_id, $field['id'], true );
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   251
				$new = '';
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   252
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   253
				// There is data to validate.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   254
				if ( isset( $post_global[ $field['id'] ] ) ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   255
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   256
					// Slider and list item.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   257
					if ( in_array( $field['type'], array( 'list-item', 'slider' ), true ) ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   258
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   259
						// Required title setting.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   260
						$required_setting = array(
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   261
							array(
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   262
								'id'        => 'title',
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   263
								'label'     => __( 'Title', 'option-tree' ),
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   264
								'desc'      => '',
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   265
								'std'       => '',
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   266
								'type'      => 'text',
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   267
								'rows'      => '',
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   268
								'class'     => 'option-tree-setting-title',
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   269
								'post_type' => '',
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   270
								'choices'   => array(),
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   271
							),
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   272
						);
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   273
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   274
						// Convert the settings to an array.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   275
						$settings = isset( $post_global[ $field['id'] . '_settings_array' ] ) ? ot_decode( $post_global[ $field['id'] . '_settings_array' ] ) : array();
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   276
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   277
						// Settings are empty for some odd reason get the defaults.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   278
						if ( empty( $settings ) ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   279
							$settings = ( 'slider' === $field['type'] ) ? ot_slider_settings( $field['id'] ) : ot_list_item_settings( $field['id'] );
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   280
						}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   281
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   282
						// Merge the two settings array.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   283
						$settings = array_merge( $required_setting, $settings );
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   284
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   285
						foreach ( $post_global[ $field['id'] ] as $k => $setting_array ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   286
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   287
							foreach ( $settings as $sub_setting ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   288
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   289
								// Verify sub setting has a type & value.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   290
								if ( isset( $sub_setting['type'] ) && isset( $post_global[ $field['id'] ][ $k ][ $sub_setting['id'] ] ) ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   291
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   292
									$post_global[ $field['id'] ][ $k ][ $sub_setting['id'] ] = ot_validate_setting( $post_global[ $field['id'] ][ $k ][ $sub_setting['id'] ], $sub_setting['type'], $sub_setting['id'] );
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   293
								}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   294
							}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   295
						}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   296
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   297
						// Set up new data with validated data.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   298
						$new = $post_global[ $field['id'] ];
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   299
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   300
					} elseif ( 'social-links' === $field['type'] ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   301
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   302
						// Convert the settings to an array.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   303
						$settings = isset( $post_global[ $field['id'] . '_settings_array' ] ) ? ot_decode( $post_global[ $field['id'] . '_settings_array' ] ) : array();
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   304
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   305
						// Settings are empty get the defaults.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   306
						if ( empty( $settings ) ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   307
							$settings = ot_social_links_settings( $field['id'] );
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   308
						}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   309
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   310
						foreach ( $post_global[ $field['id'] ] as $k => $setting_array ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   311
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   312
							foreach ( $settings as $sub_setting ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   313
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   314
								// Verify sub setting has a type & value.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   315
								if ( isset( $sub_setting['type'] ) && isset( $post_global[ $field['id'] ][ $k ][ $sub_setting['id'] ] ) ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   316
									$post_global[ $field['id'] ][ $k ][ $sub_setting['id'] ] = ot_validate_setting( $post_global[ $field['id'] ][ $k ][ $sub_setting['id'] ], $sub_setting['type'], $sub_setting['id'] );
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   317
								}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   318
							}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   319
						}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   320
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   321
						// Set up new data with validated data.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   322
						$new = $post_global[ $field['id'] ];
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   323
					} else {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   324
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   325
						// Run through validation.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   326
						$new = ot_validate_setting( $post_global[ $field['id'] ], $field['type'], $field['id'] );
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   327
					}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   328
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   329
					// Insert CSS.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   330
					if ( 'css' === $field['type'] ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   331
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   332
						if ( '' !== $new ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   333
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   334
							// insert CSS into dynamic.css.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   335
							ot_insert_css_with_markers( $field['id'], $new, true );
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   336
						} else {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   337
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   338
							// Remove old CSS from dynamic.css.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   339
							ot_remove_old_css( $field['id'] );
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   340
						}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   341
					}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   342
				}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   343
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   344
				if ( isset( $new ) && $new !== $old ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   345
					update_post_meta( $post_id, $field['id'], $new );
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   346
				} elseif ( '' === $new && $old ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   347
					delete_post_meta( $post_id, $field['id'], $old );
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   348
				}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   349
			}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   350
		}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   351
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   352
	}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   353
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   354
}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   355
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   356
if ( ! function_exists( 'ot_register_meta_box' ) ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   357
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   358
	/**
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   359
	 * This method instantiates the meta box class & builds the UI.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   360
	 *
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   361
	 * @uses OT_Meta_Box()
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   362
	 *
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   363
	 * @param array $args Meta box arguments.
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   364
	 *
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   365
	 * @access public
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   366
	 * @since  2.0
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   367
	 */
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   368
	function ot_register_meta_box( $args ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   369
		if ( ! $args ) {
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   370
			return;
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   371
		}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   372
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   373
		new OT_Meta_Box( $args );
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   374
	}
bf1778c34b9a upgrade optiontree
ymh <ymh.work@gmail.com>
parents:
diff changeset
   375
}