array( 'label' => $text_label, 'colors' => $array_of_hex_colors ), * $value => array( 'label' => $text_label, 'colors' => $array_of_hex_colors ), * )` * * @package Hybrid * @subpackage Customize * @author Justin Tadlock * @copyright Copyright (c) 2008 - 2015, Justin Tadlock * @link http://themehybrid.com/hybrid-core * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html */ /** * Theme Layout customize control class. * * @since 3.0.0 * @access public */ class Hybrid_Customize_Control_Palette extends WP_Customize_Control { /** * The type of customize control being rendered. * * @since 3.0.0 * @access public * @var string */ public $type = 'palette'; /** * The default customizer section this control is attached to. * * @since 3.0.0 * @access public * @var string */ public $section = 'colors'; /** * Enqueue scripts/styles. * * @since 3.0.0 * @access public * @return void */ public function enqueue() { wp_enqueue_script( 'hybrid-customize-controls' ); wp_enqueue_style( 'hybrid-customize-controls' ); } /** * Add custom parameters to pass to the JS via JSON. * * @since 3.0.0 * @access public * @return void */ public function to_json() { parent::to_json(); // Make sure the colors have a hash. foreach ( $this->choices as $choice => $value ) $this->choices[ $choice ]['colors'] = array_map( 'maybe_hash_hex_color', $value['colors'] ); $this->json['choices'] = $this->choices; $this->json['link'] = $this->get_link(); $this->json['value'] = $this->value(); $this->json['id'] = $this->id; } /** * Underscore JS template to handle the control's output. * * @since 3.0.0 * @access public * @return void */ public function content_template() { ?> <# if ( ! data.choices ) { return; } #> <# if ( data.label ) { #> {{ data.label }} <# } #> <# if ( data.description ) { #> {{{ data.description }}} <# } #> <# _.each( data.choices, function( palette, choice ) { #> <# } ) #>