WordPress.org

Make WordPress Core

Ticket #21303: diff2.patch

File diff2.patch, 9.9 KB (added by bananastalktome, 6 years ago)
  • wp-includes/class-wp-customize-control.php

     
    66 * @subpackage Customize
    77 * @since 3.4.0
    88 */
    9 
    109class WP_Customize_Control {
     10        /**
     11         * @access public
     12         * @var WP_Customize_Manager
     13         */
    1114        public $manager;
     15       
     16        /**
     17         * @access public
     18         * @var string
     19         */
    1220        public $id;
    1321
    14         // All settings tied to the control.
     22        /**
     23         * All settings tied to the control.
     24         *
     25         * @access public
     26         * @var array
     27         */
    1528        public $settings;
    1629
    17         // The primary setting for the control (if there is one).
     30        /**
     31         * The primary setting for the control (if there is one).
     32         *
     33         * @access public
     34         * @var string
     35         */
    1836        public $setting = 'default';
    1937
     38        /**
     39         * @access public
     40         * @var int
     41         */
    2042        public $priority          = 10;
     43       
     44        /**
     45         * @access public
     46         * @var string
     47         */
    2148        public $section           = '';
     49       
     50        /**
     51         * @access public
     52         * @var string
     53         */
    2254        public $label             = '';
    23         // @todo: remove choices
     55       
     56        /**
     57         * @todo: Remove choices
     58         *
     59         * @access public
     60         * @var array
     61         */
    2462        public $choices           = array();
    2563
     64        /**
     65         * @access public
     66         * @var array
     67         */
    2668        public $json = array();
    2769
     70        /**
     71         * @access public
     72         * @var string
     73         */
    2874        public $type = 'text';
    2975
    3076
     
    3480         * If $args['settings'] is not defined, use the $id as the setting ID.
    3581         *
    3682         * @since 3.4.0
     83         *
     84         * @param WP_Customize_Manager $manager
     85         * @param string $id
     86         * @param array $args
    3787         */
    3888        function __construct( $manager, $id, $args = array() ) {
    3989                $keys = array_keys( get_object_vars( $this ) );
     
    75125         * Grabs the main setting by default.
    76126         *
    77127         * @since 3.4.0
     128         *
     129         * @param string $setting_key
     130         * @return mixed The requested setting's value, if the setting exists.
    78131         */
    79132        public final function value( $setting_key = 'default' ) {
    80133                if ( isset( $this->settings[ $setting_key ] ) )
     
    119172         * Check capabilities and render the control.
    120173         *
    121174         * @since 3.4.0
     175         * @uses WP_Customize_Control::render()
    122176         */
    123177        public final function maybe_render() {
    124178                if ( ! $this->check_capabilities() )
     
    143197                        <?php $this->render_content(); ?>
    144198                </li><?php
    145199        }
    146 
     200       
     201        /**
     202         * Get the data link parameter for a setting.
     203         *
     204         * @since 3.4.0
     205         *
     206         * @param string $setting_key
     207         * @return string Data link parameter, if $setting_key is a valid setting, empty string otherwise.
     208         */
    147209        public function get_link( $setting_key = 'default' ) {
    148210                if ( ! isset( $this->settings[ $setting_key ] ) )
    149211                        return '';
    150212
    151213                return 'data-customize-setting-link="' . esc_attr( $this->settings[ $setting_key ]->id ) . '"';
    152214        }
    153 
     215       
     216        /**
     217         * Render the data link parameter for a setting
     218         *
     219         * @since 3.4.0
     220         * @uses WP_Customize_Control::get_link()
     221         *
     222         * @param string $setting_key
     223         */
    154224        public function link( $setting_key = 'default' ) {
    155225                echo $this->get_link( $setting_key );
    156226        }
     
    238308        }
    239309}
    240310
     311/**
     312 * Customize Color Control Class
     313 *
     314 * @package WordPress
     315 * @subpackage Customize
     316 * @since 3.4.0
     317 */
    241318class WP_Customize_Color_Control extends WP_Customize_Control {
     319        /**
     320         * @access public
     321         * @var string
     322         */
    242323        public $type = 'color';
     324       
     325        /**
     326         * @access public
     327         * @var array
     328         */
    243329        public $statuses;
    244330
     331        /**
     332         * Constructor.
     333         *
     334         * If $args['settings'] is not defined, use the $id as the setting ID.
     335         *
     336         * @since 3.4.0
     337         * @uses WP_Customize_Control::__construct()
     338         *
     339         * @param WP_Customize_Manager $manager
     340         * @param string $id
     341         * @param array $args
     342         */
    245343        public function __construct( $manager, $id, $args = array() ) {
    246344                $this->statuses = array( '' => __('Default') );
    247345                parent::__construct( $manager, $id, $args );
    248346        }
    249347
     348        /**
     349         * Enqueue control related scripts/styles.
     350         *
     351         * @since 3.4.0
     352         */
    250353        public function enqueue() {
    251354                wp_enqueue_script( 'farbtastic' );
    252355                wp_enqueue_style( 'farbtastic' );
    253356        }
    254357
     358        /**
     359         * Refresh the parameters passed to the JavaScript via JSON.
     360         *
     361         * @since 3.4.0
     362         * @uses WP_Customize_Control::to_json()
     363         */
    255364        public function to_json() {
    256365                parent::to_json();
    257366                $this->json['statuses'] = $this->statuses;
    258367        }
    259368
     369        /**
     370         * Render the control's content.
     371         *
     372         * @since 3.4.0
     373         */
    260374        public function render_content() {
    261375                ?>
    262376                <label>
     
    276390        }
    277391}
    278392
     393/**
     394 * Customize Upload Control Class
     395 *
     396 * @package WordPress
     397 * @subpackage Customize
     398 * @since 3.4.0
     399 */
    279400class WP_Customize_Upload_Control extends WP_Customize_Control {
    280401        public $type    = 'upload';
    281402        public $removed = '';
    282403        public $context;
    283404
     405        /**
     406         * Enqueue control related scripts/styles.
     407         *
     408         * @since 3.4.0
     409         */
    284410        public function enqueue() {
    285411                wp_enqueue_script( 'wp-plupload' );
    286412        }
    287 
     413       
     414        /**
     415         * Refresh the parameters passed to the JavaScript via JSON.
     416         *
     417         * @since 3.4.0
     418         * @uses WP_Customize_Control::to_json()
     419         */
    288420        public function to_json() {
    289421                parent::to_json();
    290422
     
    294426                        $this->json['context'] = $this->context;
    295427        }
    296428
     429        /**
     430         * Render the control's content.
     431         *
     432         * @since 3.4.0
     433         */
    297434        public function render_content() {
    298435                ?>
    299436                <label>
     
    307444        }
    308445}
    309446
     447/**
     448 * Customize Image Control Class
     449 *
     450 * @package WordPress
     451 * @subpackage Customize
     452 * @since 3.4.0
     453 */
    310454class WP_Customize_Image_Control extends WP_Customize_Upload_Control {
    311455        public $type = 'image';
    312456        public $get_url;
     
    314458
    315459        protected $tabs = array();
    316460
     461        /**
     462         * Constructor.
     463         *
     464         * If $args['settings'] is not defined, use the $id as the setting ID.
     465         *
     466         * @since 3.4.0
     467         * @uses WP_Customize_Upload_Control::__construct()
     468         *
     469         * @param WP_Customize_Manager $manager
     470         * @param string $id
     471         * @param array $args
     472         */
    317473        public function __construct( $manager, $id, $args ) {
    318474                $this->statuses = array( '' => __('No Image') );
    319475
     
    323479                $this->add_tab( 'uploaded',   __('Uploaded'),   array( $this, 'tab_uploaded' ) );
    324480        }
    325481
     482        /**
     483         * Refresh the parameters passed to the JavaScript via JSON.
     484         *
     485         * @since 3.4.0
     486         * @uses WP_Customize_Upload_Control::to_json()
     487         */
    326488        public function to_json() {
    327489                parent::to_json();
    328490                $this->json['statuses'] = $this->statuses;
    329491        }
    330492
     493        /**
     494         * Render the control's content.
     495         *
     496         * @since 3.4.0
     497         */
    331498        public function render_content() {
    332499                $src = $this->value();
    333500                if ( isset( $this->get_url ) )
     
    372539                </div>
    373540                <?php
    374541        }
    375 
     542       
     543        /**
     544         * Add a tab to the control.
     545         *
     546         * @since 3.4.0
     547         *
     548         * @param string $id
     549         * @param string $label
     550         * @param mixed $callback
     551         */
    376552        public function add_tab( $id, $label, $callback ) {
    377553                $this->tabs[ $id ] = array(
    378554                        'label'    => $label,
     
    380556                );
    381557        }
    382558
     559        /**
     560         * Remove a tab from the control.
     561         *
     562         * @since 3.4.0
     563         *
     564         * @param string $id
     565         */
    383566        public function remove_tab( $id ) {
    384567                unset( $this->tabs[ $id ] );
    385568        }
    386569
     570        /**
     571         * @since 3.4.0
     572         */
    387573        public function tab_upload_new() {
    388574                if ( ! _device_can_upload() ) {
    389575                        ?>
     
    400586                        <?php
    401587                }
    402588        }
    403 
     589       
     590        /**
     591         * @since 3.4.0
     592         */
    404593        public function tab_uploaded() {
    405594                ?>
    406595                <div class="uploaded-target"></div>
    407596                <?php
    408597        }
    409598
     599        /**
     600         * @since 3.4.0
     601         *
     602         * @param string $url
     603         * @param string $thumbnail_url
     604         */
    410605        public function print_tab_image( $url, $thumbnail_url = null ) {
    411606                $url = set_url_scheme( $url );
    412607                $thumbnail_url = ( $thumbnail_url ) ? set_url_scheme( $thumbnail_url ) : $url;
     
    418613        }
    419614}
    420615
     616/**
     617 * Customize Background Image Control Class
     618 *
     619 * @package WordPress
     620 * @subpackage Customize
     621 * @since 3.4.0
     622 */
    421623class WP_Customize_Background_Image_Control extends WP_Customize_Image_Control {
     624
     625        /**
     626         * Constructor.
     627         *
     628         * @since 3.4.0
     629         * @uses WP_Customize_Image_Control::__construct()
     630         *
     631         * @param WP_Customize_Manager $manager
     632         */
    422633        public function __construct( $manager ) {
    423634                parent::__construct( $manager, 'background_image', array(
    424635                        'label'    => __( 'Background Image' ),
     
    431642                        $this->add_tab( 'default',  __('Default'),  array( $this, 'tab_default_background' ) );
    432643        }
    433644
     645        /**
     646         * @since 3.4.0
     647         */
    434648        public function tab_uploaded() {
    435649                $backgrounds = get_posts( array(
    436650                        'post_type'  => 'attachment',
     
    448662                foreach ( (array) $backgrounds as $background )
    449663                        $this->print_tab_image( esc_url_raw( $background->guid ) );
    450664        }
    451 
     665       
     666        /**
     667         * @since 3.4.0
     668         * @uses WP_Customize_Image_Control::print_tab_image()
     669         */
    452670        public function tab_default_background() {
    453671                $this->print_tab_image( $this->setting->default );
    454672        }
    455673}
    456674
     675/**
     676 * Customize Header Image Control Class
     677 *
     678 * @package WordPress
     679 * @subpackage Customize
     680 * @since 3.4.0
     681 */
    457682class WP_Customize_Header_Image_Control extends WP_Customize_Image_Control {
     683
     684        /**
     685         * Constructor.
     686         *
     687         * @since 3.4.0
     688         * @uses WP_Customize_Image_Control::__construct()
     689         * @uses WP_Customize_Image_Control::add_tab()
     690         *
     691         * @param WP_Customize_Manager $manager
     692         */
    458693        public function __construct( $manager ) {
    459694                parent::__construct( $manager, 'header_image', array(
    460695                        'label'    => __( 'Header Image' ),
     
    477712                $this->add_tab( 'default',  __('Default'),  array( $this, 'tab_default_headers' ) );
    478713        }
    479714
     715        /**
     716         * @since 3.4.0
     717         *
     718         * @param mixed $choice Which header image to select. (@see Custom_Image_Header::get_header_image() )
     719         * @param array $header
     720         */
    480721        public function print_header_image( $choice, $header ) {
    481722                $header['url']           = set_url_scheme( $header['url'] );
    482723                $header['thumbnail_url'] = set_url_scheme( $header['thumbnail_url'] );
     
    496737                </a>
    497738                <?php
    498739        }
    499 
     740       
     741        /**
     742         * @since 3.4.0
     743         */
    500744        public function tab_uploaded() {
    501745                $headers = get_uploaded_header_images();
    502746
     
    506750                        $this->print_header_image( $choice, $header );
    507751        }
    508752
     753        /**
     754         * @since 3.4.0
     755         */
    509756        public function tab_default_headers() {
    510757                global $custom_image_header;
    511758                $custom_image_header->process_default_headers();