166 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			166 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| // No direct access, please
 | |
| if ( ! defined( 'ABSPATH' ) ) {
 | |
| 	exit;
 | |
| }
 | |
| 
 | |
| if ( ! function_exists( 'GeneratePress_Spacing_Control' ) ) :
 | |
| class GeneratePress_Spacing_Control extends WP_Customize_Control {
 | |
| 
 | |
| 	public $type = 'generatepress-spacing';
 | |
| 
 | |
| 	public $l10n = array();
 | |
| 
 | |
| 	public $element = '';
 | |
| 
 | |
| 	public function __construct( $manager, $id, $args = array() ) {
 | |
| 		// Let the parent class do its thing.
 | |
| 		parent::__construct( $manager, $id, $args );
 | |
| 	}
 | |
| 
 | |
| 	public function enqueue() {
 | |
| 		wp_enqueue_script( 'gp-spacing-customizer', trailingslashit( plugin_dir_url( __FILE__ ) )  . 'js/spacing-customizer.js', array( 'customize-controls' ), GP_PREMIUM_VERSION, true );
 | |
| 		wp_enqueue_style( 'gp-spacing-customizer-controls-css', trailingslashit( plugin_dir_url( __FILE__ ) ) . 'css/spacing-customizer.css', array(), GP_PREMIUM_VERSION );
 | |
| 	}
 | |
| 
 | |
| 	public function to_json() {
 | |
| 		parent::to_json();
 | |
| 		// Loop through each of the settings and set up the data for it.
 | |
| 		foreach ( $this->settings as $setting_key => $setting_id ) {
 | |
| 			$this->json[ $setting_key ] = array(
 | |
| 				'link'  => $this->get_link( $setting_key ),
 | |
| 				'value' => $this->value( $setting_key )
 | |
| 			);
 | |
| 		}
 | |
| 
 | |
| 		$this->json[ 'element' ] = $this->element;
 | |
| 		$this->json[ 'title' ] = __( 'Link values', 'gp-premium' );
 | |
| 		$this->json[ 'unlink_title' ] = __( 'Un-link values', 'gp-premium' );
 | |
| 
 | |
| 		$this->json['label_top'] = esc_html__( 'Top', 'gp-premium' );
 | |
| 		$this->json['label_right'] = esc_html__( 'Right', 'gp-premium' );
 | |
| 		$this->json['label_bottom'] = esc_html__( 'Bottom', 'gp-premium' );
 | |
| 		$this->json['label_left'] = esc_html__( 'Left', 'gp-premium' );
 | |
| 		$this->json['desktop_label'] = esc_html__( 'Desktop', 'gp-premium' );
 | |
| 		$this->json['tablet_label'] = esc_html__( 'Tablet', 'gp-premium' );
 | |
| 		$this->json['mobile_label'] = esc_html__( 'Mobile', 'gp-premium' );
 | |
| 	}
 | |
| 
 | |
| 	public function content_template() {
 | |
| 		?>
 | |
| 		<div class="gp-spacing-control-section">
 | |
| 			<div class="gp-spacing-control-section-title-area">
 | |
| 				<# if ( data.label || data.description ) { #>
 | |
| 					<div class="gp-spacing-control-title-info">
 | |
| 						<# if ( data.label ) { #>
 | |
| 							<label for="{{{ data.element }}}-{{{ data.top_label }}}">
 | |
| 								<span class="customize-control-title">{{ data.label }}</span>
 | |
| 							</label>
 | |
| 						<# } #>
 | |
| 
 | |
| 						<# if ( data.description ) { #>
 | |
| 							<span class="description customize-control-description">{{{ data.description }}}</span>
 | |
| 						<# } #>
 | |
| 					</div>
 | |
| 				<# } #>
 | |
| 
 | |
| 				<div class="gp-range-slider-controls">
 | |
| 					<span class="gp-device-controls">
 | |
| 						<# if ( 'undefined' !== typeof ( data.desktop_top ) ) { #>
 | |
| 							<span class="generatepress-device-desktop dashicons dashicons-desktop" data-option="desktop" title="{{ data.desktop_label }}"></span>
 | |
| 						<# } #>
 | |
| 
 | |
| 						<# if ( 'undefined' !== typeof (data.tablet_top) ) { #>
 | |
| 							<span class="generatepress-device-tablet dashicons dashicons-tablet" data-option="tablet" title="{{ data.tablet_label }}"></span>
 | |
| 						<# } #>
 | |
| 
 | |
| 						<# if ( 'undefined' !== typeof (data.mobile_top) ) { #>
 | |
| 							<span class="generatepress-device-mobile dashicons dashicons-smartphone" data-option="mobile" title="{{ data.mobile_label }}"></span>
 | |
| 						<# } #>
 | |
| 					</span>
 | |
| 				</div>
 | |
| 			</div>
 | |
| 
 | |
| 			<div class="spacing-values-container">
 | |
| 				<div class="spacing-values-desktop spacing-values-area" data-option="desktop" style="display: none;">
 | |
| 					<div class="gp-spacing-section">
 | |
| 						<input id="{{{ data.element }}}-{{{ data.label_top }}}" min="0" class="generate-number-control spacing-top" type="number" style="text-align: center;" {{{ data.desktop_top.link }}} value="{{{ data.desktop_top.value }}}" />
 | |
| 						<# if ( data.label_top ) { #>
 | |
| 							<label for="{{{ data.element }}}-{{{ data.label_top }}}" class="description" style="font-style:normal;">{{ data.label_top }}</label>
 | |
| 						<# } #>
 | |
| 					</div>
 | |
| 
 | |
| 					<div class="gp-spacing-section">
 | |
| 						<input id="{{{ data.element }}}-{{{ data.label_right }}}" min="0" class="generate-number-control spacing-right" type="number" style="text-align: center;" {{{ data.desktop_right.link }}} value="{{{ data.desktop_right.value }}}" />
 | |
| 						<# if ( data.label_right ) { #>
 | |
| 							<label for="{{{ data.element }}}-{{{ data.label_right }}}" class="description" style="font-style:normal;">{{ data.label_right }}</label>
 | |
| 						<# } #>
 | |
| 					</div>
 | |
| 
 | |
| 					<div class="gp-spacing-section">
 | |
| 						<input id="{{{ data.element }}}-{{{ data.label_bottom }}}" min="0" class="generate-number-control spacing-bottom" type="number" style="text-align: center;" {{{ data.desktop_bottom.link }}} value="{{{ data.desktop_bottom.value }}}" />
 | |
| 						<# if ( data.label_bottom ) { #>
 | |
| 							<label for="{{{ data.element }}}-{{{ data.label_bottom }}}" class="description" style="font-style:normal;">{{ data.label_bottom }}</label>
 | |
| 						<# } #>
 | |
| 					</div>
 | |
| 
 | |
| 					<div class="gp-spacing-section">
 | |
| 						<input id="{{{ data.element }}}-{{{ data.label_left }}}" min="0" class="generate-number-control spacing-left" type="number" style="text-align: center;" {{{ data.desktop_left.link }}} value="{{{ data.desktop_left.value }}}" />
 | |
| 						<# if ( data.label_left ) { #>
 | |
| 							<label for="{{{ data.element }}}-{{{ data.label_left }}}" class="description" style="font-style:normal;">{{ data.label_left }}</label>
 | |
| 						<# } #>
 | |
| 					</div>
 | |
| 
 | |
| 					<# if ( data.element ) { #>
 | |
| 						<div class="gp-spacing-section gp-link-spacing-section">
 | |
| 							<span class="dashicons dashicons-editor-unlink gp-link-spacing" data-element="{{ data.element }}" title="{{ data.title }}"></span>
 | |
| 							<span class="dashicons dashicons-admin-links gp-unlink-spacing" style="display:none" data-element="{{ data.element }}" title="{{ data.unlink_title }}"></span>
 | |
| 						</div>
 | |
| 					<# } #>
 | |
| 				</div>
 | |
| 
 | |
| 				<# if ( 'undefined' !== typeof ( data.mobile_top ) ) { #>
 | |
| 					<div class="spacing-values-mobile spacing-values-area" data-option="mobile" style="display: none;">
 | |
| 						<div class="gp-spacing-section">
 | |
| 							<input id="{{{ data.element }}}-mobile-{{{ data.label_top }}}" min="0" class="generate-number-control mobile-spacing-top" type="number" style="text-align: center;" {{{ data.mobile_top.link }}} value="{{{ data.mobile_top.value }}}" />
 | |
| 							<# if ( data.label_top ) { #>
 | |
| 								<label for="{{{ data.element }}}-mobile-{{{ data.label_top }}}" class="description" style="font-style:normal;">{{ data.label_top }}</label>
 | |
| 							<# } #>
 | |
| 						</div>
 | |
| 
 | |
| 						<div class="gp-spacing-section">
 | |
| 							<input id="{{{ data.element }}}-mobile-{{{ data.label_right }}}" min="0" class="generate-number-control mobile-spacing-right" type="number" style="text-align: center;" {{{ data.mobile_right.link }}} value="{{{ data.mobile_right.value }}}" />
 | |
| 							<# if ( data.label_right ) { #>
 | |
| 								<label for="{{{ data.element }}}-mobile-{{{ data.label_right }}}" class="description" style="font-style:normal;">{{ data.label_right }}</label>
 | |
| 							<# } #>
 | |
| 						</div>
 | |
| 
 | |
| 						<div class="gp-spacing-section">
 | |
| 							<input id="{{{ data.element }}}-mobile-{{{ data.label_bottom }}}" min="0" class="generate-number-control mobile-spacing-bottom" type="number" style="text-align: center;" {{{ data.mobile_bottom.link }}} value="{{{ data.mobile_bottom.value }}}" />
 | |
| 							<# if ( data.label_bottom ) { #>
 | |
| 								<label for="{{{ data.element }}}-mobile-{{{ data.label_bottom }}}" class="description" style="font-style:normal;">{{ data.label_bottom }}</label>
 | |
| 							<# } #>
 | |
| 						</div>
 | |
| 
 | |
| 						<div class="gp-spacing-section">
 | |
| 							<input id="{{{ data.element }}}-mobile-{{{ data.label_left }}}" min="0" class="generate-number-control mobile-spacing-left" type="number" style="text-align: center;" {{{ data.mobile_left.link }}} value="{{{ data.mobile_left.value }}}" />
 | |
| 							<# if ( data.label_left ) { #>
 | |
| 								<label for="{{{ data.element }}}-mobile-{{{ data.label_left }}}" class="description" style="font-style:normal;">{{ data.label_left }}</label>
 | |
| 							<# } #>
 | |
| 						</div>
 | |
| 
 | |
| 						<# if ( data.element ) { #>
 | |
| 							<div class="gp-spacing-section gp-link-spacing-section">
 | |
| 								<span class="dashicons dashicons-editor-unlink gp-link-spacing" data-element="{{ data.element }}" title="{{ data.title }}"></span>
 | |
| 								<span class="dashicons dashicons-admin-links gp-unlink-spacing" style="display:none" data-element="{{ data.element }}" title="{{ data.unlink_title }}"></span>
 | |
| 							</div>
 | |
| 						<# } #>
 | |
| 					</div>
 | |
| 				<# } #>
 | |
| 			</div>
 | |
| 		</div>
 | |
| 		<?php
 | |
| 	}
 | |
| }
 | |
| endif;
 |