wp/wp-content/themes/IN-MOTION-package-u1/option-tree/includes/ot-settings-api.php
author ymh <ymh.work@gmail.com>
Wed, 06 Nov 2013 03:21:17 +0000
changeset 0 d970ebf37754
permissions -rwxr-xr-x
first import
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) 2012, 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() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
      /* add pages & menu items */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
      add_action( 'admin_menu', array( &$this, 'add_page' ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
      /* register sections */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
      add_action( 'admin_init', array( &$this, 'add_sections' ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
      /* register settings */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
      add_action( 'admin_init', array( &$this, 'add_settings' ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
      /* reset options */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
      add_action( 'admin_init', array( &$this, 'reset_options' ), 10 );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
      /* initialize settings */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
      add_action( 'admin_init', array( &$this, 'initialize_settings' ), 11 );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
     * Loads each admin page
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
     * @return    void
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
    public function add_page() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
      /* loop through options */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
      foreach( (array) $this->options as $option ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
         
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
        /* loop through pages */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
        foreach( (array) $this->get_pages( $option ) as $page ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
          /* load page in WP top level menu */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
          if ( ! isset( $page['parent_slug'] ) || empty( $page['parent_slug'] ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
            $page_hook = add_menu_page( 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
              $page['page_title'], 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
              $page['menu_title'], 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
              $page['capability'], 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
              $page['menu_slug'], 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
              array( &$this, 'display_page' ), 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
              $page['icon_url'],
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
              $page['position'] 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
            );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
          /* load page in WP sub menu */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
          } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
            $page_hook = add_submenu_page( 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
              $page['parent_slug'], 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
              $page['page_title'], 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
              $page['menu_title'], 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
              $page['capability'], 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
              $page['menu_slug'], 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
              array( &$this, 'display_page' ) 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
            );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
          }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
          /* only load if not a hidden page */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
          if ( ! isset( $page['hidden_page'] ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
            /* associate $page_hook with page id */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
            $this->page_hook[$page['id']] = $page_hook;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
            /* add scripts */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
            add_action( 'admin_print_scripts-' . $page_hook, array( &$this, 'scripts' ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
            /* add styles */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
            add_action( 'admin_print_styles-' . $page_hook, array( &$this, 'styles' ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
            /* add contextual help */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
            add_action( 'load-' . $page_hook, array( &$this, 'help' ) );
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
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
      return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
     * Loads the scripts
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
     * @return    void
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
    public function scripts() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
      ot_admin_scripts();
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
     * Loads the styles
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
     * @return    void
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
    public function styles() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
      ot_admin_styles();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
     * Loads the contextual help for each page
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
     * @return    void
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   165
    public function help() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
      $screen = get_current_screen();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
      /* loop through options */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
      foreach( (array) $this->options as $option ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
        /* loop through pages */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
        foreach( (array) $this->get_pages( $option ) as $page ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
          /* verify page */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
          if ( ! isset( $page['hidden_page'] ) && $screen->id == $this->page_hook[$page['id']] ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   177
            /* set up the help tabs */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   178
            if ( ! empty( $page['contextual_help']['content'] ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   179
              foreach( $page['contextual_help']['content'] as $contextual_help ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   180
                $screen->add_help_tab( 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   181
                  array(
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   182
                    'id'      => esc_attr( $contextual_help['id'] ),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   183
                    'title'   => esc_attr( $contextual_help['title'] ),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   184
                    'content' => htmlspecialchars_decode( $contextual_help['content'] ),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   185
                  )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   186
                );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   187
              }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   188
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   189
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   190
            /* set up the help sidebar */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   191
            if ( ! empty( $page['contextual_help']['sidebar'] ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   192
              $screen->set_help_sidebar( htmlspecialchars_decode( $page['contextual_help']['sidebar'] ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   193
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   194
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   195
          }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   196
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   197
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   198
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   199
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   200
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   201
      return false;
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
     * Loads the content for each page
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   206
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   207
     * @return    string
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   208
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   209
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   210
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   211
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   212
    public function display_page() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   213
      $screen = get_current_screen();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   214
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   215
      /* loop through settings */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   216
      foreach( (array) $this->options as $option ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   217
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   218
        /* loop through pages */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   219
        foreach( (array) $this->get_pages( $option ) as $page ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   220
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   221
          /* verify page */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   222
          if ( ! isset( $page['hidden_page'] ) && $screen->id == $this->page_hook[$page['id']] ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   223
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   224
            $show_buttons = isset( $page['show_buttons'] ) && $page['show_buttons'] == false ? false : true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   225
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   226
            /* update active layout content */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   227
            if ( isset( $_REQUEST['settings-updated'] ) && $_REQUEST['settings-updated'] == 'true' ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   228
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   229
              $layouts = get_option( 'option_tree_layouts' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   230
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   231
              /* has active layout */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   232
              if ( isset( $layouts['active_layout'] ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   233
                $option_tree = get_option( $option['id'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   234
                $layouts[$layouts['active_layout']] = base64_encode( serialize( $option_tree ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   235
                update_option( 'option_tree_layouts', $layouts );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   236
              }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   237
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   238
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   239
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   240
            echo '<div class="wrap settings-wrap" id ="page-' . $page['id'] . '">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   241
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   242
              screen_icon( ( isset( $page['screen_icon'] ) ? $page['screen_icon'] : 'options-general' ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   243
              echo '<h2>' . $page['page_title'] . '</h2>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   244
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   245
              echo ot_alert_message( $page );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   246
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   247
              settings_errors( 'option-tree' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   248
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   249
              /* Header */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   250
              echo '<div id="option-tree-header-wrap">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   251
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   252
                echo '<ul id="option-tree-header">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   253
                  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   254
                  echo '<li id="option-tree-logo"><a href="http://wordpress.org/extend/plugins/option-tree/" target="_blank">OptionTree</a></li>';
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 '<li id="option-tree-version"><span>Version ' . OT_VERSION . '</span></li>';
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 '</ul>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   259
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   260
                /* layouts form */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   261
                if ( $page['id'] == 'ot_theme_options' && OT_SHOW_NEW_LAYOUT == true )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   262
                  ot_theme_options_layouts_form();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   263
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   264
              echo '</div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   265
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   266
            /* remove forms on the custom settings pages */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   267
            if ( $show_buttons ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   268
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   269
              echo '<form action="options.php" method="post" id="option-tree-settings-api">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   270
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   271
                settings_fields( $option['id'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   272
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   273
            } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   274
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   275
              echo '<div id="option-tree-settings-api">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   276
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   277
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   278
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   279
                /* Sub Header */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   280
                echo '<div id="option-tree-sub-header">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   281
                  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   282
                if ( $show_buttons )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   283
                  echo '<button class="option-tree-ui-button grey right">' . $page['button_text'] . '</button>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   284
                  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   285
                echo '</div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   286
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   287
                /* Navigation */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   288
  		          echo '<div class="ui-tabs">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   289
  		            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   290
                /* check for sections */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   291
                if ( isset( $page['sections'] ) && count( $page['sections'] ) > 0 ) {
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 '<ul class="ui-tabs-nav">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   294
                  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   295
                  /* loop through page sections */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   296
                  foreach( (array) $page['sections'] as $section ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   297
                    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
   298
                  }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   299
                  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   300
                  echo '</ul>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   301
                  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   302
                }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   303
                  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   304
                  /* sections */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   305
                  echo '<div id="poststuff" class="metabox-holder">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   306
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   307
                    echo '<div id="post-body">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   308
                    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   309
                      echo '<div id="post-body-content">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   310
    		                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   311
                        $this->do_settings_sections( $_GET['page'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   312
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   313
                      echo '</div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   314
    		            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   315
    		            echo '</div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   316
                  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   317
                  echo '</div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   318
                  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   319
                  echo '<div class="clear"></div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   320
                  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   321
                echo '</div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   322
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   323
              /* buttons */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   324
              if ( $show_buttons ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   325
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   326
                echo '<div class="option-tree-ui-buttons">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   327
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   328
                  echo '<button class="option-tree-ui-button grey right">' . $page['button_text'] . '</button>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   329
                  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   330
                echo '</div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   331
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   332
              }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   333
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   334
              echo $show_buttons ? '</form>' : '</div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   335
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   336
              /* reset button */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   337
              if ( $show_buttons ) {
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 '<form method="post" action="' . str_replace( '&settings-updated=true', '', $_SERVER["REQUEST_URI"] ) . '">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   340
                  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   341
                  /* form nonce */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   342
                  wp_nonce_field( 'option_tree_reset_form', 'option_tree_reset_nonce' );
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 '<input type="hidden" name="action" value="reset" />';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   345
                  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   346
                  echo '<button type="submit" class="option-tree-ui-button red light left reset-settings" title="' . __( 'Reset Options', 'option-tree' ) . '">' . __( 'Reset Options', 'option-tree' ) . '</button>';
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 '</form>';
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 '</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
          }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   355
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   356
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   357
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   358
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   359
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   360
      return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   361
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   362
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   363
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   364
     * Adds sections to the page
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   365
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   366
     * @return    void
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   367
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   368
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   369
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   370
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   371
    public function add_sections() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   372
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   373
      /* loop through options */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   374
      foreach( (array) $this->options as $option ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   375
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   376
        /* loop through pages */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   377
        foreach( (array) $this->get_pages( $option ) as $page ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   378
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   379
          /* loop through page sections */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   380
          foreach( (array) $this->get_sections( $page ) as $section ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   381
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   382
            /* add each section */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   383
            add_settings_section( 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   384
              $section['id'], 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   385
              $section['title'], 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   386
              array( &$this, 'display_section' ), 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   387
              $page['menu_slug'] 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   388
            );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   389
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   390
          }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   391
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   392
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   393
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   394
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   395
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   396
      return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   397
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   398
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   399
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   400
     * Callback for add_settings_section()
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   401
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   402
     * @return    string
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   403
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   404
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   405
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   406
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   407
    public function display_section() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   408
      /* currently pointless */
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
     * Add settings the the page
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    void
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   415
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   416
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   417
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   418
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   419
    public function add_settings() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   420
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   421
      /* loop through options */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   422
      foreach( (array) $this->options as $option ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   423
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   424
        register_setting( $option['id'], $option['id'], array ( &$this, 'sanitize_callback' ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   425
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   426
        /* loop through pages */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   427
        foreach( (array) $this->get_pages( $option ) as $page ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   428
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   429
          /* loop through page settings */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   430
          foreach( (array) $this->get_settings( $page ) as $setting ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   431
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   432
            /* skip if no setting ID */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   433
            if ( ! isset( $setting['id'] ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   434
              continue;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   435
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   436
            /* add get_option param to the array */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   437
            $setting['get_option']  = $option['id'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   438
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   439
            /* add each setting */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   440
            add_settings_field( 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   441
              $setting['id'], 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   442
              $setting['label'], 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   443
              array( &$this, 'display_setting' ), 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   444
              $page['menu_slug'],
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   445
              $setting['section'],
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   446
              $setting
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   447
            );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   448
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   449
          }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   450
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   451
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   452
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   453
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   454
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   455
      return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   456
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   457
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   458
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   459
     * Callback for add_settings_field() to build each setting by type
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   460
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   461
     * @param     array     Setting object array
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   462
     * @return    string
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   463
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   464
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   465
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   466
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   467
    public function display_setting( $args = array() ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   468
      extract( $args );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   469
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   470
      /* get current saved data */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   471
      $options = get_option( $get_option, false );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   472
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   473
      /* set default to standard value */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   474
      if ( ! isset( $options[$id] ) && isset( $std ) ) {  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   475
        $options[$id] = trim( $std );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   476
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   477
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   478
      /* build the arguments array */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   479
      $_args = array(
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   480
        'type'              => $type,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   481
        'field_id'          => $id,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   482
        'field_name'        => 'option_tree[' . $id . ']',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   483
        'field_value'       => isset( $options[$id] ) ? $options[$id] : '',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   484
        'field_desc'        => isset( $desc ) ? $desc : '',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   485
        'field_std'         => isset( $std ) ? $std : '',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   486
        'field_rows'        => isset( $rows ) && ! empty( $rows ) ? $rows : 15,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   487
        'field_post_type'   => isset( $post_type ) && ! empty( $post_type ) ? $post_type : 'post',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   488
        'field_taxonomy'    => isset( $taxonomy ) && ! empty( $taxonomy ) ? $taxonomy : 'category',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   489
        'field_class'       => isset( $class ) ? $class : '',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   490
        'field_choices'     => isset( $choices ) && ! empty( $choices ) ? $choices : array(),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   491
        'field_settings'    => isset( $settings ) && ! empty( $settings ) ? $settings : array(),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   492
        'post_id'           => ot_get_media_post_ID(),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   493
        'get_option'        => $get_option,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   494
      );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   495
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   496
      /* get the option HTML */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   497
      echo ot_display_by_type( $_args );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   498
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   499
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   500
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   501
     * Sets the option standards if nothing yet exists.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   502
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   503
     * @return    void
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   504
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   505
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   506
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   507
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   508
    public function initialize_settings() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   509
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   510
      /* loop through options */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   511
      foreach( (array) $this->options as $option ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   512
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   513
        /* skip if option is already set */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   514
        if ( isset( $option['id'] ) && get_option( $option['id'], false ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   515
          return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   516
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   517
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   518
        $defaults = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   519
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   520
        /* loop through pages */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   521
        foreach( (array) $this->get_pages( $option ) as $page ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   522
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   523
          /* loop through page settings */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   524
          foreach( (array) $this->get_settings( $page ) as $setting ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   525
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   526
            if ( isset( $setting['std'] ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   527
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   528
              $defaults[$setting['id']] = ot_validate_setting( $setting['std'], $setting['type'], $setting['id'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   529
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   530
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   531
  
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
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   536
        update_option( $option['id'], $defaults );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   537
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   538
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   539
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   540
      return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   541
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   542
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   543
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   544
     * Sanitize callback for register_setting()
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   545
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   546
     * @return    string
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   547
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   548
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   549
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   550
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   551
    public function sanitize_callback( $input ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   552
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   553
      /* loop through options */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   554
      foreach( (array) $this->options as $option ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   555
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   556
        /* loop through pages */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   557
        foreach( (array) $this->get_pages( $option ) as $page ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   558
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   559
          /* loop through page settings */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   560
          foreach( (array) $this->get_settings( $page ) as $setting ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   561
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   562
            /* verify setting has a type & value */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   563
            if ( isset( $setting['type'] ) && isset( $input[$setting['id']] ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   564
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   565
              /* validate setting */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   566
              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
   567
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   568
                /* required title setting */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   569
                $required_setting = array(
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   570
                  array(
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   571
                    'id'        => 'title',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   572
                    'label'     => __( 'Title', 'option-tree' ),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   573
                    'desc'      => '',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   574
                    'std'       => '',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   575
                    'type'      => 'text',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   576
                    'rows'      => '',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   577
                    'class'     => 'option-tree-setting-title',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   578
                    'post_type' => '',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   579
                    'choices'   => array()
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   580
                  )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   581
                );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   582
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   583
                /* get the settings array */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   584
                $settings = isset( $_POST[$setting['id'] . '_settings_array'] ) ? unserialize( base64_decode( $_POST[$setting['id'] . '_settings_array'] ) ) : array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   585
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   586
                /* settings are empty for some odd ass reason get the defaults */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   587
                if ( empty( $settings ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   588
                  $settings = 'slider' == $setting['type'] ? 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   589
                  ot_slider_settings( $setting['id'] ) : 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   590
                  ot_list_item_settings( $setting['id'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   591
                }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   592
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   593
                /* merge the two settings array */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   594
                $settings = array_merge( $required_setting, $settings );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   595
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   596
                foreach( $input[$setting['id']] as $k => $setting_array ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   597
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   598
                  foreach( $settings as $sub_setting ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   599
                    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   600
                    /* verify sub setting has a type & value */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   601
                    if ( isset( $sub_setting['type'] ) && isset( $input[$setting['id']][$k][$sub_setting['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
                      $input[$setting['id']][$k][$sub_setting['id']] = ot_validate_setting( $input[$setting['id']][$k][$sub_setting['id']], $sub_setting['type'], $sub_setting['id'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   604
                      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   605
                    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   606
                    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   607
                  }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   608
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   609
                }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   610
              
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   611
              } else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   612
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   613
                $input[$setting['id']] = ot_validate_setting( $input[$setting['id']], $setting['type'], $setting['id'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   614
                
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   615
              }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   616
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   617
            }
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
        }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   622
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   623
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   624
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   625
      return $input;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   626
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   627
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   628
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   629
     * Helper function to get the pages array for an option
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   630
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   631
     * @param     array     Option array
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   632
     * @return    mixed
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   633
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   634
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   635
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   636
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   637
    public function get_pages( $option = 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
      if ( empty( $option ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   640
        return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   641
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   642
      /* check for pages */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   643
      if ( isset( $option['pages'] ) && ! empty( $option['pages'] ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   644
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   645
        /* return pages array */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   646
        return $option['pages'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   647
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   648
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   649
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   650
      return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   651
    }
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
     * Helper function to get the sections array for a page
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   655
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   656
     * @param     array     Page array
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   657
     * @return    mixed
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   658
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   659
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   660
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   661
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   662
    public function get_sections( $page = array() ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   663
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   664
      if ( empty( $page ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   665
        return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   666
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   667
      /* check for sections */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   668
      if ( isset( $page['sections'] ) && ! empty( $page['sections'] ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   669
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   670
        /* return sections array */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   671
        return $page['sections'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   672
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   673
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   674
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   675
      return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   676
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   677
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   678
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   679
     * Helper function to get the settings array for a page
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   680
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   681
     * @param     array     Page array
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   682
     * @return    mixed
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   683
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   684
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   685
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   686
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   687
    public function get_settings( $page = array() ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   688
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   689
      if ( empty( $page ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   690
        return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   691
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   692
      /* check for settings */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   693
      if ( isset( $page['settings'] ) && ! empty( $page['settings'] ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   694
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   695
        /* return settings array */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   696
        return $page['settings'];
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
      return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   701
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   702
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   703
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   704
     * Prints out all settings sections added to a particular settings page
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   705
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   706
     * @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
   707
     * @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
   708
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   709
     * @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
   710
     * @return    string
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   711
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   712
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   713
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   714
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   715
    public function do_settings_sections( $page ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   716
      global $wp_settings_sections, $wp_settings_fields;
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 ( ! isset( $wp_settings_sections ) || ! isset( $wp_settings_sections[$page] ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   719
        return false;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   720
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   721
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   722
      foreach ( (array) $wp_settings_sections[$page] as $section ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   723
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   724
        if ( ! isset( $section['id'] ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   725
          continue;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   726
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   727
        echo '<div id="section_' . $section['id'] . '" class="postbox ui-tabs-panel">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   728
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   729
          call_user_func( $section['callback'], $section );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   730
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   731
          if ( ! isset( $wp_settings_fields ) || ! isset( $wp_settings_fields[$page] ) || ! isset( $wp_settings_fields[$page][$section['id']] ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   732
            continue;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   733
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   734
          echo '<div class="inside">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   735
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   736
            $this->do_settings_fields( $page, $section['id'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   737
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   738
          echo '</div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   739
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   740
        echo '</div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   741
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   742
      }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   743
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   744
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   745
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   746
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   747
     * Print out the settings fields for a particular settings section
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   748
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   749
     * @global    $wp_settings_fields Storage array of settings fields and their pages/sections
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   750
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   751
     * @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
   752
     * @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
   753
     * @return    string
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   754
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   755
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   756
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   757
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   758
    public function do_settings_fields( $page, $section ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   759
    	global $wp_settings_fields;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   760
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   761
    	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
   762
    		return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   763
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   764
      foreach ( (array) $wp_settings_fields[$page][$section] as $field ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   765
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   766
        echo '<div id="setting_' . $field['id'] . '" class="format-settings">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   767
    		  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   768
    		  echo '<div class="format-setting-wrap">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   769
    		  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   770
      		  if ( $field['args']['type'] != 'textblock' ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   771
      		  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   772
      		    echo '<div class="format-setting-label">';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   773
    		  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   774
        		    echo '<h3 class="label">' . $field['title'] . '</h3>';     
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   775
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   776
              echo '</div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   777
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   778
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   779
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   780
            call_user_func( $field['callback'], $field['args'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   781
          
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   782
          echo '</div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   783
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   784
        echo '</div>';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   785
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   786
    	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   787
    	
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   788
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   789
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   790
    /**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   791
     * Resets page options before the screen is displayed
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    void
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   794
     *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   795
     * @access    public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   796
     * @since     2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   797
     */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   798
    public function reset_options() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   799
  
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   800
      /* check for reset action */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   801
      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
   802
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   803
        /* loop through options */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   804
        foreach( (array) $this->options as $option ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   805
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   806
          /* loop through pages */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   807
          foreach( (array) $this->get_pages( $option ) as $page ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   808
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   809
            /* verify page */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   810
            if ( isset( $_GET['page'] ) && $_GET['page'] == $page['menu_slug'] ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   811
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   812
              /* reset options */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   813
              delete_option( $option['id'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   814
    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   815
            }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   816
            
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   817
          }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   818
        
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   819
        }
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
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   828
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   829
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   830
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   831
 * This method instantiates the settings class & builds the UI.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   832
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   833
 * @uses     OT_Settings()
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   834
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   835
 * @param    array    Array of arguments to create settings
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   836
 * @return   void
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   837
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   838
 * @access   public
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   839
 * @since    2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   840
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   841
if ( ! function_exists( 'ot_register_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
  function ot_register_settings( $args ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   844
    if ( ! $args )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   845
      return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   846
      
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   847
    $ot_settings =& new OT_Settings( $args );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   848
  }
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
/* End of file ot-settings-api.php */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   853
/* Location: ./includes/ot-settings-api.php */