laipower/wp-content/plugins/gp-premium/library/customizer/controls/class-spacing-control.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;