]> scripts.mit.edu Git - autoinstalls/wordpress.git/blobdiff - wp-includes/customize/class-wp-customize-color-control.php
WordPress 4.4
[autoinstalls/wordpress.git] / wp-includes / customize / class-wp-customize-color-control.php
diff --git a/wp-includes/customize/class-wp-customize-color-control.php b/wp-includes/customize/class-wp-customize-color-control.php
new file mode 100644 (file)
index 0000000..fac9a7d
--- /dev/null
@@ -0,0 +1,103 @@
+<?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 {
+       /**
+        * @access public
+        * @var string
+        */
+       public $type = 'color';
+
+       /**
+        * @access public
+        * @var array
+        */
+       public $statuses;
+
+       /**
+        * 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;
+       }
+
+       /**
+        * 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 = '';
+               if ( data.defaultValue ) {
+                       if ( '#' !== data.defaultValue.substring( 0, 1 ) ) {
+                               defaultValue = '#' + data.defaultValue;
+                       } else {
+                               defaultValue = data.defaultValue;
+                       }
+                       defaultValue = ' data-default-color=' + defaultValue; // Quotes added automatically.
+               } #>
+               <label>
+                       <# 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">
+                               <input class="color-picker-hex" type="text" maxlength="7" placeholder="<?php esc_attr_e( 'Hex Value' ); ?>" {{ defaultValue }} />
+                       </div>
+               </label>
+               <?php
+       }
+}