<?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;