false,
'font_variant' => false,
'text_transform' => false,
'text_decoration' => false,
'font_size' => false,
'line_height' => false,
'letter_spacing' => false,
'colors' => false
);
$fields = [];
$fields_exist = !empty( $this->fields ) ? $this->fields : $default_fields;
foreach( $fields_exist as $field_key => $field_value ){
$fields[ str_replace( '-', '_', $field_key ) ] = true;
}
$fields = wp_parse_args( $fields, $default_fields );
// Fields
$this->json['fields'] = $fields;
}
/**
* Set up our control.
*
* @access public
* @param object $manager
* @param string $id
* @param array $args
* @return void
*/
public function __construct( $manager, $id, $args = array() ) {
// Let the parent class do its thing.
parent::__construct( $manager, $id, $args );
// Make sure we have labels.
$this->l10n = wp_parse_args(
$this->l10n,
array(
'option_default' => esc_html__( 'Default', 'blogin-aarambha' ),
)
);
add_action( 'customize_controls_enqueue_scripts', array( $this, 'localize_script' ) );
}
/**
* Localize google fonts to customize-controls.js file.
*
* @access public
*/
public function localize_script() {
// Get formatted array of standard fonts, google fonts and all variants.
wp_localize_script(
'blogin-aarambha-customize-controls', 'AllFonts', array(
'allFonts' => Blogin_Aarambha_Google_Fonts::get_fonts()
)
);
}
/**
* Underscore JS template to handle the control's output.
*
* @access public
* @return void
*/
public function content_template() { ?>
<#
const fields = data.fields,
resetData = data.default,
inheritData = data.inherits;
const responsive_class = Object.keys( data.responsive ).length > 1 ? ' has-responsive-switcher' : '';
const switcher_class = Object.keys( data.responsive ).length > 1 ? 'responsive-devices d-flex align-items-center' : 'd-flex align-items-center';
#>
<# if ( data.label ) { #>
{{{ data.label }}}
<# } #>
<# if ( data.description ) { #>
{{{ data.description }}}
<# } #>
<# if ( fields.font_family ) { #>
<# let font_reset = ( resetData !== '' && resetData['font_family'] !== undefined ) ? resetData['font_family'].toLowerCase() : ''; font_reset = font_reset.replace(/ /g, '-'); #>
<# } #>
<# if ( fields.font_family && data.fields.font_variant ) { #>
<# const variant_reset = ( resetData !== '' && resetData['font_variant'] !== undefined ) ? resetData['font_variant'] : ''; #>
<# } #>
<# if ( fields.text_transform ) { #>
<# const transform_reset = ( resetData !== '' && resetData['text_transform'] !== undefined ) ? resetData['text_transform'] : ''; #>
<# } #>
<# if ( fields.text_decoration ) { #>
<# const decoration_reset = ( resetData !== '' && resetData['text_decoration'] !== undefined ) ? resetData['text_decoration'] : ''; #>
<# } #>
<# if ( fields.font_size ) { #>
<# if ( Object.keys( data.responsive ).length > 1 ) { #>
<# Object.keys( data.responsive ).forEach( function( key ) {
let active_class = ( (data.responsive)[key] === 'desktop' ) ? ' active' : ''; #>
-
<# }); #>
<# } #>
<# Object.keys( data.responsive ).forEach( function( key ) { let fontDevice = (data.responsive)[key];
let active_class = ( (data.responsive)[key] === 'desktop' ) ? ' active' : ''; #>
<# }); #>
<# } #>
<# if ( fields.line_height ) { #>
<# if ( Object.keys( data.responsive ).length > 1 ) { #>
<# Object.keys( data.responsive ).forEach( function( key ) {
let active_class = ( (data.responsive)[key] === 'desktop' ) ? ' active' : ''; #>
-
<# }); #>
<# } #>
<# Object.keys( data.responsive ).forEach( function( key ) { let HeightDevice = (data.responsive)[key];
let active_class = ( (data.responsive)[key] === 'desktop' ) ? ' active' : ''; #>
<# }); #>
<# } #>
<# if ( fields.letter_spacing ) { #>
<# if ( Object.keys( data.responsive ).length > 1 ) { #>
<# Object.keys( data.responsive ).forEach( function( key ) {
let active_class = ( (data.responsive)[key] === 'desktop' ) ? ' active' : ''; #>
-
<# }); #>
<# } #>
<# Object.keys( data.responsive ).forEach( function( key ) { let SpacingDevice = (data.responsive)[key];
let active_class = ( (data.responsive)[key] === 'desktop' ) ? ' active' : ''; #>
<# }); #>
<# } #>
<# if ( fields.colors ) { const colors = data.colors; #>
<# Object.keys( colors ).forEach( function ( key ) { #>
style="background:{{ inheritData[key] }}" <# } #>>
<# let color_reset = ( resetData !== '' && resetData['colors'] !== undefined && resetData['colors'][key] !== undefined ) ? resetData['colors'][key] : ''; #>
<# let color_inherit = ( inheritData !== '' && inheritData[key] !== undefined ) ? inheritData[key] : ''; #>
<# }); #>
<# } #>
register_control_type( 'Blogin_Aarambha_Customize_Typography_Control' );