]> scripts.mit.edu Git - autoinstalls/wordpress.git/blobdiff - wp-includes/class-wp-customize-section.php
WordPress 4.0
[autoinstalls/wordpress.git] / wp-includes / class-wp-customize-section.php
index b1b7d5f866063dec4d6ba759337e6f69402483af..d740ddba625c74c3bbfd39525d3e31e396359bdc 100644 (file)
 <?php
 /**
- * Customize Section Class
+ * Customize Section Class.
+ *
+ * A UI container for controls, managed by the WP_Customize_Manager.
  *
  * @package WordPress
  * @subpackage Customize
  * @since 3.4.0
  */
-
 class WP_Customize_Section {
+
+       /**
+        * WP_Customize_Manager instance.
+        *
+        * @since 3.4.0
+        * @access public
+        * @var WP_Customize_Manager
+        */
        public $manager;
+
+       /**
+        * Unique identifier.
+        *
+        * @since 3.4.0
+        * @access public
+        * @var string
+        */
        public $id;
-       public $priority       = 10;
-       public $capability     = 'edit_theme_options';
+
+       /**
+        * Priority of the section which informs load order of sections.
+        *
+        * @since 3.4.0
+        * @access public
+        * @var integer
+        */
+       public $priority = 160;
+
+       /**
+        * Panel in which to show the section, making it a sub-section.
+        *
+        * @since 4.0.0
+        * @access public
+        * @var string
+        */
+       public $panel = '';
+
+       /**
+        * Capability required for the section.
+        *
+        * @since 3.4.0
+        * @access public
+        * @var string
+        */
+       public $capability = 'edit_theme_options';
+
+       /**
+        * Theme feature support for the section.
+        *
+        * @since 3.4.0
+        * @access public
+        * @var string|array
+        */
        public $theme_supports = '';
-       public $title          = '';
-       public $description    = '';
+
+       /**
+        * Title of the section to show in UI.
+        *
+        * @since 3.4.0
+        * @access public
+        * @var string
+        */
+       public $title = '';
+
+       /**
+        * Description to show in the UI.
+        *
+        * @since 3.4.0
+        * @access public
+        * @var string
+        */
+       public $description = '';
+
+       /**
+        * Customizer controls for this section.
+        *
+        * @since 3.4.0
+        * @access public
+        * @var array
+        */
        public $controls;
 
        /**
         * Constructor.
         *
+        * Any supplied $args override class property defaults.
+        *
         * @since 3.4.0
         *
-        * @param string $id An specific ID of the section.
-        * @param array $args Section arguments.
+        * @param WP_Customize_Manager $manager Customizer bootstrap instance.
+        * @param string               $id      An specific ID of the section.
+        * @param array                $args    Section arguments.
         */
-       function __construct( $manager, $id, $args = array() ) {
-               $keys = array_keys( get_class_vars( __CLASS__ ) );
+       public function __construct( $manager, $id, $args = array() ) {
+               $keys = array_keys( get_object_vars( $this ) );
                foreach ( $keys as $key ) {
                        if ( isset( $args[ $key ] ) )
                                $this->$key = $args[ $key ];
@@ -41,7 +118,8 @@ class WP_Customize_Section {
        }
 
        /**
-        * Check if the theme supports the section and check user capabilities.
+        * Checks required user capabilities and whether the theme has the
+        * feature support required by the section.
         *
         * @since 3.4.0
         *
@@ -66,23 +144,47 @@ class WP_Customize_Section {
                if ( ! $this->check_capabilities() )
                        return;
 
+               /**
+                * Fires before rendering a Customizer section.
+                *
+                * @since 3.4.0
+                *
+                * @param WP_Customize_Section $this WP_Customize_Section instance.
+                */
                do_action( 'customize_render_section', $this );
-               do_action( 'customize_render_section_' . $this->id );
+               /**
+                * Fires before rendering a specific Customizer section.
+                *
+                * The dynamic portion of the hook name, $this->id, refers to the ID
+                * of the specific Customizer section to be rendered.
+                *
+                * @since 3.4.0
+                */
+               do_action( "customize_render_section_{$this->id}" );
 
                $this->render();
        }
 
-
        /**
-        * Render the section.
+        * Render the section, and the controls that have been added to it.
         *
         * @since 3.4.0
         */
        protected function render() {
+               $classes = 'control-section accordion-section';
+               if ( $this->panel ) {
+                       $classes .= ' control-subsection';
+               }
                ?>
-               <li id="customize-section-<?php echo esc_attr( $this->id ); ?>" class="control-section customize-section">
-                       <h3 class="customize-section-title" title="<?php echo esc_attr( $this->description ); ?>"><?php echo esc_html( $this->title ); ?></h3>
-                       <ul class="customize-section-content">
+               <li id="accordion-section-<?php echo esc_attr( $this->id ); ?>" class="<?php echo esc_attr( $classes ); ?>">
+                       <h3 class="accordion-section-title" tabindex="0">
+                               <?php echo esc_html( $this->title ); ?>
+                               <span class="screen-reader-text"><?php _e( 'Press return or enter to expand' ); ?></span>
+                       </h3>
+                       <ul class="accordion-section-content">
+                               <?php if ( ! empty( $this->description ) ) : ?>
+                               <li><p class="description customize-section-description"><?php echo $this->description; ?></p></li>
+                               <?php endif; ?>
                                <?php
                                foreach ( $this->controls as $control )
                                        $control->maybe_render();