wp/wp-content/plugins/option-tree/includes/ot-settings-api.php
author ymh <ymh.work@gmail.com>
Mon, 14 Oct 2019 17:39:30 +0200
changeset 7 cf61fcea0001
parent 5 5e2f62d02dcd
permissions -rwxr-xr-x
resynchronize code repo with production
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<?php if ( ! defined( 'OT_VERSION') ) exit( 'No direct script access allowed' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
 * OptionTree Settings API
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
 * This class loads all the methods and helpers specific to a Settings page.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
 * @package   OptionTree
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
 * @author    Derek Herman <derek@valendesigns.com>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
 * @copyright Copyright (c) 2013, Derek Herman
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
if ( ! class_exists( 'OT_Settings' ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
  class OT_Settings {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
    /* the options array */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
    private $options;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
    /* hooks for targeting admin pages */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
    private $page_hook;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
     * Constructor
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
     * @param     array     An array of options
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
     * @return    void
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
    public function __construct( $args ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
      $this->options = $args;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
      /* return early if not viewing an admin page or no options */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
      if ( ! is_admin() || ! is_array( $this->options ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
        return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
      /* load everything */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
      $this->hooks();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
     * Execute the WordPress Hooks
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
     * @return    void
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
    public function hooks() {
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    52
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    53
      /**
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    54
       * Filter the `admin_menu` action hook priority.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    55
       *
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    56
       * @since 2.5.0
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    57
       *
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    58
       * @param int $priority The priority. Default '10'.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    59
       */
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    60
      $priority = apply_filters( 'ot_admin_menu_priority', 10 );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    61
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
      /* add pages & menu items */
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    63
      add_action( 'admin_menu', array( $this, 'add_page' ), $priority );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
      /* register sections */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
      add_action( 'admin_init', array( $this, 'add_sections' ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
      /* register settings */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
      add_action( 'admin_init', array( $this, 'add_settings' ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
      /* reset options */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
      add_action( 'admin_init', array( $this, 'reset_options' ), 10 );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
      /* initialize settings */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
      add_action( 'admin_init', array( $this, 'initialize_settings' ), 11 );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
     * Loads each admin page
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
     * @return    void
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
    public function add_page() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
      /* loop through options */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
      foreach( (array) $this->options as $option ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
         
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
        /* loop through pages */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
        foreach( (array) $this->get_pages( $option ) as $page ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
          /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
           * Theme Check... stop nagging me about this kind of stuff.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
           * The damn admin pages are required for OT to function, duh!
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
           */
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
    99
          $theme_check_bs   = 'add_menu_' . 'page';
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   100
          $theme_check_bs2  = 'add_submenu_' . 'page';
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
          /* load page in WP top level menu */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
          if ( ! isset( $page['parent_slug'] ) || empty( $page['parent_slug'] ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
            $page_hook = $theme_check_bs( 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
              $page['page_title'], 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
              $page['menu_title'], 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
              $page['capability'], 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
              $page['menu_slug'], 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
              array( $this, 'display_page' ), 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
              $page['icon_url'],
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
              $page['position'] 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
            );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
          /* load page in WP sub menu */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
          } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
            $page_hook = $theme_check_bs2( 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
              $page['parent_slug'], 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
              $page['page_title'], 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
              $page['menu_title'], 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
              $page['capability'], 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
              $page['menu_slug'], 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
              array( $this, 'display_page' ) 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
            );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
          }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   124
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   125
          /* only load if not a hidden page */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
          if ( ! isset( $page['hidden_page'] ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
            /* associate $page_hook with page id */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
            $this->page_hook[$page['id']] = $page_hook;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
            /* add scripts */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
            add_action( 'admin_print_scripts-' . $page_hook, array( $this, 'scripts' ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
            /* add styles */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
            add_action( 'admin_print_styles-' . $page_hook, array( $this, 'styles' ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
            /* add contextual help */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
            add_action( 'load-' . $page_hook, array( $this, 'help' ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
          }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
      return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
     * Loads the scripts
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
     * @return    void
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
    public function scripts() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
      ot_admin_scripts();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
     * Loads the styles
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
     * @return    void
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   165
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
    public function styles() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
      ot_admin_styles();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
     * Loads the contextual help for each page
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
     * @return    void
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   177
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   178
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   179
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   180
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   181
    public function help() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   182
      $screen = get_current_screen();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   183
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   184
      /* loop through options */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   185
      foreach( (array) $this->options as $option ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   186
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   187
        /* loop through pages */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   188
        foreach( (array) $this->get_pages( $option ) as $page ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   189
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   190
          /* verify page */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   191
          if ( ! isset( $page['hidden_page'] ) && $screen->id == $this->page_hook[$page['id']] ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   192
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   193
            /* set up the help tabs */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   194
            if ( ! empty( $page['contextual_help']['content'] ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   195
              foreach( $page['contextual_help']['content'] as $contextual_help ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   196
                $screen->add_help_tab( 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   197
                  array(
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   198
                    'id'      => esc_attr( $contextual_help['id'] ),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   199
                    'title'   => esc_attr( $contextual_help['title'] ),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   200
                    'content' => htmlspecialchars_decode( $contextual_help['content'] ),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   201
                  )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   202
                );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   203
              }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   204
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   205
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   206
            /* set up the help sidebar */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   207
            if ( ! empty( $page['contextual_help']['sidebar'] ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   208
              $screen->set_help_sidebar( htmlspecialchars_decode( $page['contextual_help']['sidebar'] ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   209
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   210
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   211
          }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   212
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   213
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   214
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   215
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   216
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   217
      return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   218
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   219
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   220
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   221
     * Loads the content for each page
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   222
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   223
     * @return    string
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   224
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   225
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   226
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   227
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   228
    public function display_page() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   229
      $screen = get_current_screen();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   230
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   231
      /* loop through settings */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   232
      foreach( (array) $this->options as $option ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   233
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   234
        /* loop through pages */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   235
        foreach( (array) $this->get_pages( $option ) as $page ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   236
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   237
          /* verify page */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   238
          if ( ! isset( $page['hidden_page'] ) && $screen->id == $this->page_hook[$page['id']] ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   239
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   240
            $show_buttons = isset( $page['show_buttons'] ) && $page['show_buttons'] == false ? false : true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   241
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   242
            /* update active layout content */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   243
            if ( isset( $_REQUEST['settings-updated'] ) && $_REQUEST['settings-updated'] == 'true' ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   244
  
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   245
              $layouts = get_option( ot_layouts_id() );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   246
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   247
              /* has active layout */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   248
              if ( isset( $layouts['active_layout'] ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   249
                $option_tree = get_option( $option['id'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   250
                $layouts[$layouts['active_layout']] = ot_encode( serialize( $option_tree ) );
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   251
                update_option( ot_layouts_id(), $layouts );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   252
              }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   253
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   254
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   255
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   256
            echo '<div class="wrap settings-wrap" id ="page-' . $page['id'] . '">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   257
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   258
              echo '<h2>' . $page['page_title'] . '</h2>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   259
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   260
              echo ot_alert_message( $page );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   261
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   262
              settings_errors( 'option-tree' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   263
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   264
              /* Header */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   265
              echo '<div id="option-tree-header-wrap">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   266
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   267
                echo '<ul id="option-tree-header">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   268
                  
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   269
                  echo '<li id="option-tree-logo">' . apply_filters( 'ot_header_logo_link', '<a href="http://wordpress.org/extend/plugins/option-tree/" target="_blank">OptionTree</a>', $page['id'] ) . '</li>';
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   270
                  
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   271
                  echo '<li id="option-tree-version"><span>' . apply_filters( 'ot_header_version_text', 'OptionTree ' . OT_VERSION, $page['id'] ) . '</span></li>';
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   272
                  
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   273
                  // Add additional theme specific links here.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   274
                  do_action( 'ot_header_list', $page['id'] );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   275
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   276
                echo '</ul>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   277
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   278
                /* layouts form */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   279
                if ( $page['id'] == 'ot_theme_options' && OT_SHOW_NEW_LAYOUT == true )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   280
                  ot_theme_options_layouts_form();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   281
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   282
              echo '</div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   283
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   284
            /* remove forms on the custom settings pages */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   285
            if ( $show_buttons ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   286
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   287
              echo '<form action="options.php" method="post" id="option-tree-settings-api">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   288
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   289
                settings_fields( $option['id'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   290
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   291
            } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   292
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   293
              echo '<div id="option-tree-settings-api">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   294
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   295
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   296
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   297
                /* Sub Header */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   298
                echo '<div id="option-tree-sub-header">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   299
                  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   300
                if ( $show_buttons )
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   301
                  echo '<button class="option-tree-ui-button button button-primary right">' . $page['button_text'] . '</button>';
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   302
                  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   303
                echo '</div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   304
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   305
                /* Navigation */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   306
                echo '<div class="ui-tabs">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   307
                  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   308
                /* check for sections */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   309
                if ( isset( $page['sections'] ) && count( $page['sections'] ) > 0 ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   310
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   311
                  echo '<ul class="ui-tabs-nav">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   312
                  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   313
                  /* loop through page sections */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   314
                  foreach( (array) $page['sections'] as $section ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   315
                    echo '<li id="tab_' . $section['id'] . '"><a href="#section_' . $section['id'] . '">' . $section['title'] . '</a></li>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   316
                  }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   317
                  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   318
                  echo '</ul>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   319
                  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   320
                }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   321
                  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   322
                  /* sections */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   323
                  echo '<div id="poststuff" class="metabox-holder">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   324
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   325
                    echo '<div id="post-body">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   326
                    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   327
                      echo '<div id="post-body-content">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   328
                        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   329
                        $this->do_settings_sections( $_GET['page'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   330
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   331
                      echo '</div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   332
                    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   333
                    echo '</div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   334
                  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   335
                  echo '</div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   336
                  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   337
                  echo '<div class="clear"></div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   338
                  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   339
                echo '</div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   340
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   341
              /* buttons */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   342
              if ( $show_buttons ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   343
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   344
                echo '<div class="option-tree-ui-buttons">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   345
                
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   346
                  echo '<button class="option-tree-ui-button button button-primary right">' . $page['button_text'] . '</button>';
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   347
                  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   348
                echo '</div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   349
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   350
              }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   351
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   352
              echo $show_buttons ? '</form>' : '</div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   353
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   354
              /* reset button */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   355
              if ( $show_buttons ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   356
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   357
                echo '<form method="post" action="' . str_replace( '&settings-updated=true', '', $_SERVER["REQUEST_URI"] ) . '">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   358
                  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   359
                  /* form nonce */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   360
                  wp_nonce_field( 'option_tree_reset_form', 'option_tree_reset_nonce' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   361
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   362
                  echo '<input type="hidden" name="action" value="reset" />';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   363
                  
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   364
                  echo '<button type="submit" class="option-tree-ui-button button button-secondary left reset-settings" title="' . __( 'Reset Options', 'option-tree' ) . '">' . __( 'Reset Options', 'option-tree' ) . '</button>';
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   365
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   366
                echo '</form>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   367
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   368
              }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   369
                          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   370
            echo '</div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   371
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   372
          }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   373
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   374
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   375
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   376
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   377
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   378
      return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   379
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   380
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   381
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   382
     * Adds sections to the page
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   383
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   384
     * @return    void
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   385
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   386
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   387
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   388
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   389
    public function add_sections() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   390
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   391
      /* loop through options */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   392
      foreach( (array) $this->options as $option ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   393
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   394
        /* loop through pages */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   395
        foreach( (array) $this->get_pages( $option ) as $page ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   396
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   397
          /* loop through page sections */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   398
          foreach( (array) $this->get_sections( $page ) as $section ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   399
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   400
            /* add each section */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   401
            add_settings_section( 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   402
              $section['id'], 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   403
              $section['title'], 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   404
              array( $this, 'display_section' ), 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   405
              $page['menu_slug'] 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   406
            );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   407
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   408
          }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   409
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   410
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   411
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   412
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   413
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   414
      return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   415
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   416
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   417
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   418
     * Callback for add_settings_section()
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   419
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   420
     * @return    string
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   421
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   422
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   423
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   424
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   425
    public function display_section() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   426
      /* currently pointless */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   427
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   428
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   429
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   430
     * Add settings the the page
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   431
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   432
     * @return    void
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   433
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   434
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   435
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   436
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   437
    public function add_settings() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   438
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   439
      /* loop through options */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   440
      foreach( (array) $this->options as $option ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   441
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   442
        register_setting( $option['id'], $option['id'], array ( $this, 'sanitize_callback' ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   443
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   444
        /* loop through pages */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   445
        foreach( (array) $this->get_pages( $option ) as $page ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   446
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   447
          /* loop through page settings */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   448
          foreach( (array) $this->get_the_settings( $page ) as $setting ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   449
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   450
            /* skip if no setting ID */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   451
            if ( ! isset( $setting['id'] ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   452
              continue;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   453
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   454
            /* add get_option param to the array */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   455
            $setting['get_option']  = $option['id'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   456
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   457
            /* add each setting */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   458
            add_settings_field( 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   459
              $setting['id'], 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   460
              $setting['label'], 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   461
              array( $this, 'display_setting' ), 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   462
              $page['menu_slug'],
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   463
              $setting['section'],
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   464
              $setting
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   465
            );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   466
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   467
          }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   468
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   469
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   470
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   471
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   472
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   473
      return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   474
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   475
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   476
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   477
     * Callback for add_settings_field() to build each setting by type
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   478
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   479
     * @param     array     Setting object array
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   480
     * @return    string
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   481
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   482
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   483
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   484
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   485
    public function display_setting( $args = array() ) {
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   486
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   487
      extract( $args );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   488
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   489
      /* get current saved data */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   490
      $options = get_option( $get_option, false );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   491
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   492
      // Set field value
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   493
      $field_value = isset( $options[$id] ) ? $options[$id] : '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   494
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   495
      /* set standard value */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   496
      if ( isset( $std ) ) {  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   497
        $field_value = ot_filter_std_value( $field_value, $std );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   498
      }
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   499
      
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   500
      // Allow the descriptions to be filtered before being displayed
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   501
      $desc = apply_filters( 'ot_filter_description', ( isset( $desc ) ? $desc : '' ), $id );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   502
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   503
      /* build the arguments array */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   504
      $_args = array(
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   505
        'type'              => $type,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   506
        'field_id'          => $id,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   507
        'field_name'        => $get_option . '[' . $id . ']',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   508
        'field_value'       => $field_value,
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   509
        'field_desc'        => $desc,
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   510
        'field_std'         => isset( $std ) ? $std : '',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   511
        'field_rows'        => isset( $rows ) && ! empty( $rows ) ? $rows : 15,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   512
        'field_post_type'   => isset( $post_type ) && ! empty( $post_type ) ? $post_type : 'post',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   513
        'field_taxonomy'    => isset( $taxonomy ) && ! empty( $taxonomy ) ? $taxonomy : 'category',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   514
        'field_min_max_step'=> isset( $min_max_step ) && ! empty( $min_max_step ) ? $min_max_step : '0,100,1',
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   515
        'field_condition'   => isset( $condition ) && ! empty( $condition ) ? $condition : '',
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   516
        'field_operator'    => isset( $operator ) && ! empty( $operator ) ? $operator : 'and',
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   517
        'field_class'       => isset( $class ) ? $class : '',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   518
        'field_choices'     => isset( $choices ) && ! empty( $choices ) ? $choices : array(),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   519
        'field_settings'    => isset( $settings ) && ! empty( $settings ) ? $settings : array(),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   520
        'post_id'           => ot_get_media_post_ID(),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   521
        'get_option'        => $get_option,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   522
      );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   523
      
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   524
      // Limit DB queries for Google Fonts.
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   525
      if ( $type == 'google-fonts' ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   526
        ot_fetch_google_fonts();
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   527
        ot_set_google_fonts( $id, $field_value );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   528
      }
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   529
      
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   530
      /* get the option HTML */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   531
      echo ot_display_by_type( $_args );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   532
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   533
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   534
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   535
     * Sets the option standards if nothing yet exists.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   536
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   537
     * @return    void
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   538
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   539
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   540
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   541
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   542
    public function initialize_settings() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   543
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   544
      /* loop through options */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   545
      foreach( (array) $this->options as $option ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   546
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   547
        /* skip if option is already set */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   548
        if ( isset( $option['id'] ) && get_option( $option['id'], false ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   549
          return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   550
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   551
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   552
        $defaults = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   553
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   554
        /* loop through pages */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   555
        foreach( (array) $this->get_pages( $option ) as $page ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   556
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   557
          /* loop through page settings */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   558
          foreach( (array) $this->get_the_settings( $page ) as $setting ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   559
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   560
            if ( isset( $setting['std'] ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   561
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   562
              $defaults[$setting['id']] = ot_validate_setting( $setting['std'], $setting['type'], $setting['id'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   563
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   564
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   565
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   566
          }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   567
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   568
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   569
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   570
        update_option( $option['id'], $defaults );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   571
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   572
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   573
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   574
      return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   575
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   576
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   577
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   578
     * Sanitize callback for register_setting()
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   579
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   580
     * @return    string
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   581
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   582
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   583
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   584
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   585
    public function sanitize_callback( $input ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   586
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   587
      /* loop through options */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   588
      foreach( (array) $this->options as $option ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   589
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   590
        /* loop through pages */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   591
        foreach( (array) $this->get_pages( $option ) as $page ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   592
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   593
          /* loop through page settings */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   594
          foreach( (array) $this->get_the_settings( $page ) as $setting ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   595
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   596
            /* verify setting has a type & value */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   597
            if ( isset( $setting['type'] ) && isset( $input[$setting['id']] ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   598
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   599
              /* get the defaults */
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   600
              $current_settings = get_option( ot_settings_id() );
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   601
              $current_options = get_option( $option['id'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   602
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   603
              /* validate setting */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   604
              if ( is_array( $input[$setting['id']] ) && in_array( $setting['type'], array( 'list-item', 'slider' ) ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   605
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   606
                /* required title setting */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   607
                $required_setting = array(
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   608
                  array(
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   609
                    'id'        => 'title',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   610
                    'label'     => __( 'Title', 'option-tree' ),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   611
                    'desc'      => '',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   612
                    'std'       => '',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   613
                    'type'      => 'text',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   614
                    'rows'      => '',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   615
                    'class'     => 'option-tree-setting-title',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   616
                    'post_type' => '',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   617
                    'choices'   => array()
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   618
                  )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   619
                );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   620
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   621
                /* get the settings array */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   622
                $settings = isset( $_POST[$setting['id'] . '_settings_array'] ) ? unserialize( ot_decode( $_POST[$setting['id'] . '_settings_array'] ) ) : array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   623
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   624
                /* settings are empty for some odd ass reason get the defaults */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   625
                if ( empty( $settings ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   626
                  $settings = 'slider' == $setting['type'] ? 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   627
                  ot_slider_settings( $setting['id'] ) : 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   628
                  ot_list_item_settings( $setting['id'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   629
                }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   630
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   631
                /* merge the two settings array */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   632
                $settings = array_merge( $required_setting, $settings );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   633
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   634
                /* create an empty WPML id array */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   635
                $wpml_ids = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   636
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   637
                foreach( $input[$setting['id']] as $k => $setting_array ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   638
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   639
                  foreach( $settings as $sub_setting ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   640
                    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   641
                    /* setup the WPML ID */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   642
                    $wpml_id = $setting['id'] . '_' . $sub_setting['id'] . '_' . $k;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   643
                    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   644
                    /* add id to array */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   645
                    $wpml_ids[] = $wpml_id;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   646
                      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   647
                    /* verify sub setting has a type & value */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   648
                    if ( isset( $sub_setting['type'] ) && isset( $input[$setting['id']][$k][$sub_setting['id']] ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   649
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   650
                      /* validate setting */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   651
                      $input[$setting['id']][$k][$sub_setting['id']] = ot_validate_setting( $input[$setting['id']][$k][$sub_setting['id']], $sub_setting['type'], $sub_setting['id'], $wpml_id );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   652
                      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   653
                    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   654
                    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   655
                  }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   656
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   657
                }
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   658
              
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   659
              } else if ( is_array( $input[$setting['id']] ) && $setting['type'] == 'social-links' ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   660
                
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   661
                /* get the settings array */
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   662
                $settings = isset( $_POST[$setting['id'] . '_settings_array'] ) ? unserialize( ot_decode( $_POST[$setting['id'] . '_settings_array'] ) ) : array();
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   663
                
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   664
                /* settings are empty get the defaults */
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   665
                if ( empty( $settings ) ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   666
                  $settings = ot_social_links_settings( $setting['id'] );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   667
                }
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   668
                
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   669
                /* create an empty WPML id array */
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   670
                $wpml_ids = array();
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   671
                
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   672
                foreach( $input[$setting['id']] as $k => $setting_array ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   673
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   674
                  foreach( $settings as $sub_setting ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   675
                    
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   676
                    /* setup the WPML ID */
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   677
                    $wpml_id = $setting['id'] . '_' . $sub_setting['id'] . '_' . $k;
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   678
                    
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   679
                    /* add id to array */
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   680
                    $wpml_ids[] = $wpml_id;
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   681
                      
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   682
                    /* verify sub setting has a type & value */
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   683
                    if ( isset( $sub_setting['type'] ) && isset( $input[$setting['id']][$k][$sub_setting['id']] ) ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   684
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   685
                      /* validate setting */
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   686
                      $input[$setting['id']][$k][$sub_setting['id']] = ot_validate_setting( $input[$setting['id']][$k][$sub_setting['id']], $sub_setting['type'], $sub_setting['id'], $wpml_id );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   687
                      
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   688
                    }
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   689
                    
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   690
                  }
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   691
                
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   692
                }
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   693
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   694
              } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   695
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   696
                $input[$setting['id']] = ot_validate_setting( $input[$setting['id']], $setting['type'], $setting['id'], $setting['id'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   697
                 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   698
              }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   699
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   700
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   701
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   702
            /* unregister WPML strings that were deleted from lists and sliders */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   703
            if ( isset( $current_settings['settings'] ) && isset( $setting['type'] ) && in_array( $setting['type'], array( 'list-item', 'slider' ) ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   704
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   705
              if ( ! isset( $wpml_ids ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   706
                $wpml_ids = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   707
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   708
              foreach( $current_settings['settings'] as $check_setting ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   709
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   710
                if ( $setting['id'] == $check_setting['id'] && ! empty( $current_options[$setting['id']] ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   711
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   712
                  foreach( $current_options[$setting['id']] as $key => $value ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   713
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   714
                    foreach( $value as $ckey => $cvalue ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   715
                      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   716
                      $id = $setting['id'] . '_' . $ckey . '_' . $key;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   717
                      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   718
                      if ( ! in_array( $id, $wpml_ids ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   719
                      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   720
                        ot_wpml_unregister_string( $id );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   721
                        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   722
                      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   723
                      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   724
                    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   725
                  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   726
                  }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   727
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   728
                }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   729
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   730
              }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   731
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   732
            }
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   733
            
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   734
            /* unregister WPML strings that were deleted from social links */
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   735
            if ( isset( $current_settings['settings'] ) && isset( $setting['type'] ) && $setting['type'] == 'social-links' ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   736
              
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   737
              if ( ! isset( $wpml_ids ) )
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   738
                $wpml_ids = array();
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   739
                
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   740
              foreach( $current_settings['settings'] as $check_setting ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   741
              
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   742
                if ( $setting['id'] == $check_setting['id'] && ! empty( $current_options[$setting['id']] ) ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   743
                
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   744
                  foreach( $current_options[$setting['id']] as $key => $value ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   745
                
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   746
                    foreach( $value as $ckey => $cvalue ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   747
                      
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   748
                      $id = $setting['id'] . '_' . $ckey . '_' . $key;
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   749
                      
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   750
                      if ( ! in_array( $id, $wpml_ids ) ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   751
                      
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   752
                        ot_wpml_unregister_string( $id );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   753
                        
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   754
                      }
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   755
                      
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   756
                    }
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   757
                  
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   758
                  }
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   759
                
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   760
                }
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   761
                
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   762
              }
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   763
              
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   764
            }
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   765
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   766
          }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   767
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   768
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   769
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   770
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   771
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   772
      return $input;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   773
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   774
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   775
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   776
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   777
     * Helper function to get the pages array for an option
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   778
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   779
     * @param     array     Option array
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   780
     * @return    mixed
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   781
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   782
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   783
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   784
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   785
    public function get_pages( $option = array() ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   786
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   787
      if ( empty( $option ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   788
        return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   789
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   790
      /* check for pages */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   791
      if ( isset( $option['pages'] ) && ! empty( $option['pages'] ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   792
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   793
        /* return pages array */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   794
        return $option['pages'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   795
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   796
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   797
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   798
      return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   799
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   800
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   801
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   802
     * Helper function to get the sections array for a page
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   803
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   804
     * @param     array     Page array
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   805
     * @return    mixed
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   806
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   807
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   808
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   809
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   810
    public function get_sections( $page = array() ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   811
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   812
      if ( empty( $page ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   813
        return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   814
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   815
      /* check for sections */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   816
      if ( isset( $page['sections'] ) && ! empty( $page['sections'] ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   817
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   818
        /* return sections array */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   819
        return $page['sections'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   820
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   821
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   822
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   823
      return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   824
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   825
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   826
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   827
     * Helper function to get the settings array for a page
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   828
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   829
     * @param     array     Page array
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   830
     * @return    mixed
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   831
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   832
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   833
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   834
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   835
    public function get_the_settings( $page = array() ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   836
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   837
      if ( empty( $page ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   838
        return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   839
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   840
      /* check for settings */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   841
      if ( isset( $page['settings'] ) && ! empty( $page['settings'] ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   842
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   843
        /* return settings array */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   844
        return $page['settings'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   845
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   846
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   847
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   848
      return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   849
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   850
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   851
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   852
     * Prints out all settings sections added to a particular settings page
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   853
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   854
     * @global    $wp_settings_sections   Storage array of all settings sections added to admin pages
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   855
     * @global    $wp_settings_fields     Storage array of settings fields and info about their pages/sections
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   856
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   857
     * @param     string    The slug name of the page whos settings sections you want to output
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   858
     * @return    string
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   859
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   860
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   861
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   862
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   863
    public function do_settings_sections( $page ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   864
      global $wp_settings_sections, $wp_settings_fields;
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   865
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   866
      if ( ! isset( $wp_settings_sections ) || ! isset( $wp_settings_sections[$page] ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   867
        return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   868
      }
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   869
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   870
      foreach ( (array) $wp_settings_sections[$page] as $section ) {
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   871
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   872
        if ( ! isset( $section['id'] ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   873
          continue;
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   874
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   875
        $section_id = $section['id'];
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   876
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   877
        echo '<div id="section_' . $section_id . '" class="postbox ui-tabs-panel">';
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   878
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   879
          call_user_func( $section['callback'], $section );
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   880
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   881
          if ( ! isset( $wp_settings_fields ) || ! isset( $wp_settings_fields[$page] ) || ! isset( $wp_settings_fields[$page][$section_id] ) )
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   882
            continue;
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   883
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   884
          echo '<div class="inside">';
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   885
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   886
            /**
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   887
             * Hook to insert arbitrary markup before the `do_settings_fields` method.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   888
             *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   889
             * @since 2.6.0
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   890
             *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   891
             * @param string $page       The page slug.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   892
             * @param string $section_id The section ID.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   893
             */
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   894
            do_action( 'ot_do_settings_fields_before', $page, $section_id );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   895
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   896
            $this->do_settings_fields( $page, $section_id );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   897
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   898
            /**
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   899
             * Hook to insert arbitrary markup after the `do_settings_fields` method.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   900
             *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   901
             * @since 2.6.0
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   902
             *
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   903
             * @param string $page       The page slug.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   904
             * @param string $section_id The section ID.
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   905
             */
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   906
            do_action( 'ot_do_settings_fields_after', $page, $section_id );
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   907
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   908
          echo '</div>';
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   909
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   910
        echo '</div>';
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   911
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   912
      }
7
cf61fcea0001 resynchronize code repo with production
ymh <ymh.work@gmail.com>
parents: 5
diff changeset
   913
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   914
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   915
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   916
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   917
     * Print out the settings fields for a particular settings section
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   918
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   919
     * @global    $wp_settings_fields Storage array of settings fields and their pages/sections
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   920
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   921
     * @param     string    $page Slug title of the admin page who's settings fields you want to show.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   922
     * @param     string    $section Slug title of the settings section who's fields you want to show.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   923
     * @return    string
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   924
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   925
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   926
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   927
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   928
    public function do_settings_fields( $page, $section ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   929
      global $wp_settings_fields;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   930
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   931
      if ( !isset($wp_settings_fields) || !isset($wp_settings_fields[$page]) || !isset($wp_settings_fields[$page][$section]) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   932
        return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   933
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   934
      foreach ( (array) $wp_settings_fields[$page][$section] as $field ) {
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   935
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   936
        $conditions = '';
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   937
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   938
        if ( isset( $field['args']['condition'] ) && ! empty( $field['args']['condition'] ) ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   939
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   940
          $conditions = ' data-condition="' . $field['args']['condition'] . '"';
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   941
          $conditions.= isset( $field['args']['operator'] ) && in_array( $field['args']['operator'], array( 'and', 'AND', 'or', 'OR' ) ) ? ' data-operator="' . $field['args']['operator'] . '"' : '';
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   942
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   943
        }
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   944
        
5
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   945
        // Build the setting CSS class
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   946
        if ( isset( $field['args']['class'] ) && ! empty( $field['args']['class'] ) ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   947
          
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   948
          $classes = explode( ' ', $field['args']['class'] );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   949
          
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   950
          foreach( $classes as $key => $value ) {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   951
          
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   952
            $classes[$key] = $value . '-wrap';
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   953
            
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   954
          }
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   955
          
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   956
          $class = 'format-settings ' . implode( ' ', $classes );
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   957
          
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   958
        } else {
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   959
        
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   960
          $class = 'format-settings';
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   961
          
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   962
        }
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   963
        
5e2f62d02dcd upgrade wordpress + plugins
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   964
        echo '<div id="setting_' . $field['id'] . '" class="' . $class . '"' . $conditions . '>';
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   965
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   966
          echo '<div class="format-setting-wrap">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   967
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   968
            if ( $field['args']['type'] != 'textblock' && ! empty( $field['title'] ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   969
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   970
              echo '<div class="format-setting-label">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   971
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   972
                echo '<h3 class="label">' . $field['title'] . '</h3>';     
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   973
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   974
              echo '</div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   975
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   976
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   977
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   978
            call_user_func( $field['callback'], $field['args'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   979
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   980
          echo '</div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   981
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   982
        echo '</div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   983
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   984
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   985
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   986
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   987
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   988
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   989
     * Resets page options before the screen is displayed
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   990
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   991
     * @return    void
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   992
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   993
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   994
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   995
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   996
    public function reset_options() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   997
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   998
      /* check for reset action */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   999
      if ( isset( $_POST['option_tree_reset_nonce'] ) && wp_verify_nonce( $_POST['option_tree_reset_nonce'], 'option_tree_reset_form' ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1000
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1001
        /* loop through options */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1002
        foreach( (array) $this->options as $option ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1003
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1004
          /* loop through pages */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1005
          foreach( (array) $this->get_pages( $option ) as $page ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1006
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1007
            /* verify page */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1008
            if ( isset( $_GET['page'] ) && $_GET['page'] == $page['menu_slug'] ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1009
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1010
              /* reset options */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1011
              delete_option( $option['id'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1012
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1013
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1014
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1015
          }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1016
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1017
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1018
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1019
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1020
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1021
      return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1022
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1023
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1024
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1025
  }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1026
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1027
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1028
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1029
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1030
 * This method instantiates the settings class & builds the UI.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1031
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1032
 * @uses     OT_Settings()
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1033
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1034
 * @param    array    Array of arguments to create settings
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1035
 * @return   void
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1036
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1037
 * @access   public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1038
 * @since    2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1039
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1040
if ( ! function_exists( 'ot_register_settings' ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1041
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1042
  function ot_register_settings( $args ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1043
    if ( ! $args )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1044
      return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1045
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1046
    $ot_settings = new OT_Settings( $args );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1047
  }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1048
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1049
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1050
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1051
/* End of file ot-settings-api.php */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1052
/* Location: ./includes/ot-settings-api.php */