mirror of
https://github.com/WordPress/WordPress.git
synced 2024-11-16 15:46:04 +01:00
aaf99e6913
WordPress' code just... wasn't. This is now dealt with. Props jrf, pento, netweb, GaryJ, jdgrimes, westonruter, Greg Sherwood from PHPCS, and everyone who's ever contributed to WPCS and PHPCS. Fixes #41057. Built from https://develop.svn.wordpress.org/trunk@42343 git-svn-id: http://core.svn.wordpress.org/trunk@42172 1a063a9b-81f0-0310-95a4-ce76da25c4cd
120 lines
2.8 KiB
PHP
120 lines
2.8 KiB
PHP
<?php
|
|
/**
|
|
* Customize API: WP_Customize_Color_Control class
|
|
*
|
|
* @package WordPress
|
|
* @subpackage Customize
|
|
* @since 4.4.0
|
|
*/
|
|
|
|
/**
|
|
* Customize Color Control class.
|
|
*
|
|
* @since 3.4.0
|
|
*
|
|
* @see WP_Customize_Control
|
|
*/
|
|
class WP_Customize_Color_Control extends WP_Customize_Control {
|
|
/**
|
|
* Type.
|
|
*
|
|
* @var string
|
|
*/
|
|
public $type = 'color';
|
|
|
|
/**
|
|
* Statuses.
|
|
*
|
|
* @var array
|
|
*/
|
|
public $statuses;
|
|
|
|
/**
|
|
* Mode.
|
|
*
|
|
* @since 4.7.0
|
|
* @var string
|
|
*/
|
|
public $mode = 'full';
|
|
|
|
/**
|
|
* Constructor.
|
|
*
|
|
* @since 3.4.0
|
|
* @uses WP_Customize_Control::__construct()
|
|
*
|
|
* @param WP_Customize_Manager $manager Customizer bootstrap instance.
|
|
* @param string $id Control ID.
|
|
* @param array $args Optional. Arguments to override class property defaults.
|
|
*/
|
|
public function __construct( $manager, $id, $args = array() ) {
|
|
$this->statuses = array( '' => __( 'Default' ) );
|
|
parent::__construct( $manager, $id, $args );
|
|
}
|
|
|
|
/**
|
|
* Enqueue scripts/styles for the color picker.
|
|
*
|
|
* @since 3.4.0
|
|
*/
|
|
public function enqueue() {
|
|
wp_enqueue_script( 'wp-color-picker' );
|
|
wp_enqueue_style( 'wp-color-picker' );
|
|
}
|
|
|
|
/**
|
|
* Refresh the parameters passed to the JavaScript via JSON.
|
|
*
|
|
* @since 3.4.0
|
|
* @uses WP_Customize_Control::to_json()
|
|
*/
|
|
public function to_json() {
|
|
parent::to_json();
|
|
$this->json['statuses'] = $this->statuses;
|
|
$this->json['defaultValue'] = $this->setting->default;
|
|
$this->json['mode'] = $this->mode;
|
|
}
|
|
|
|
/**
|
|
* Don't render the control content from PHP, as it's rendered via JS on load.
|
|
*
|
|
* @since 3.4.0
|
|
*/
|
|
public function render_content() {}
|
|
|
|
/**
|
|
* Render a JS template for the content of the color picker control.
|
|
*
|
|
* @since 4.1.0
|
|
*/
|
|
public function content_template() {
|
|
?>
|
|
<# var defaultValue = '#RRGGBB', defaultValueAttr = '',
|
|
isHueSlider = data.mode === 'hue';
|
|
if ( data.defaultValue && _.isString( data.defaultValue ) && ! isHueSlider ) {
|
|
if ( '#' !== data.defaultValue.substring( 0, 1 ) ) {
|
|
defaultValue = '#' + data.defaultValue;
|
|
} else {
|
|
defaultValue = data.defaultValue;
|
|
}
|
|
defaultValueAttr = ' data-default-color=' + defaultValue; // Quotes added automatically.
|
|
} #>
|
|
<# if ( data.label ) { #>
|
|
<span class="customize-control-title">{{{ data.label }}}</span>
|
|
<# } #>
|
|
<# if ( data.description ) { #>
|
|
<span class="description customize-control-description">{{{ data.description }}}</span>
|
|
<# } #>
|
|
<div class="customize-control-content">
|
|
<label><span class="screen-reader-text">{{{ data.label }}}</span>
|
|
<# if ( isHueSlider ) { #>
|
|
<input class="color-picker-hue" type="text" data-type="hue" />
|
|
<# } else { #>
|
|
<input class="color-picker-hex" type="text" maxlength="7" placeholder="{{ defaultValue }}" {{ defaultValueAttr }} />
|
|
<# } #>
|
|
</label>
|
|
</div>
|
|
<?php
|
|
}
|
|
}
|