123 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
$start  = $type == 'php' ? $settings[ 'start' ]  : '{{{settings.start}}}';
 | 
						|
$end    = $type == 'php' ? $settings[ 'end']     : '{{{settings.end}}}';
 | 
						|
$prefix = $type == 'php' ? $settings[ 'prefix' ] : '{{{settings.prefix}}}';
 | 
						|
$suffix = $type == 'php' ? $settings[ 'suffix' ] : '{{{settings.suffix}}}';
 | 
						|
 | 
						|
$duration = $type == 'php' ? $settings[ 'duration' ] : '{{{settings.duration}}}';
 | 
						|
$numerals = $type == 'php' ? $settings[ 'numerals' ] : '{{{settings.numerals}}}';
 | 
						|
 | 
						|
$smooth_animation  = $type == 'php' ? $settings[ 'smooth_animation' ]  : '{{{settings.smooth_animation}}}';
 | 
						|
$display_separator = $type == 'php' ? $settings[ 'display_separator' ] : '{{{settings.display_separator}}}';
 | 
						|
$decimal_places    = $type == 'php' ? $settings[ 'decimal_places' ]    : '{{{settings.decimal_places}}}';
 | 
						|
$animation_effect  = $type == 'php' ? $settings[ 'animation_effect' ]  : '{{{settings.animation_effect}}}';
 | 
						|
 | 
						|
$decimal_separator   = $type == 'php' ? $settings[ 'decimal_separator' ]   : '{{{settings.decimal_separator}}}';
 | 
						|
$thousands_separator = $type == 'php' ? $settings[ 'thousands_separator' ] : '{{{settings.thousands_separator}}}';
 | 
						|
 | 
						|
//=======================RENDER TYPE=======================
 | 
						|
$js_settings = '';
 | 
						|
 | 
						|
//-----------PHP-----------
 | 
						|
if ( $type == 'php' ) {
 | 
						|
 | 
						|
	$options = [
 | 
						|
		'start'         => !empty( $start )          ? $start 		   : 0,
 | 
						|
		'end'           => !empty( $end )            ? $end            : 100,
 | 
						|
		'decimalPlaces' => !empty( $decimal_places ) ? $decimal_places : 0,
 | 
						|
		'duration'      => !empty( $duration )       ? $duration       : 3,
 | 
						|
 | 
						|
		'useEasing'     => !empty( $smooth_animation )  ? true : false,
 | 
						|
		'useGrouping'   => !empty( $display_separator ) ? true : false,
 | 
						|
 | 
						|
		'separator' 	=> $thousands_separator,
 | 
						|
		'decimal' 		=> $decimal_separator,
 | 
						|
		'easingFn' 		=> $animation_effect,
 | 
						|
		'numerals' 		=> $numerals
 | 
						|
	];
 | 
						|
 | 
						|
	$this->add_render_attribute( 'widget', [
 | 
						|
		'class' => [ 'stratum-counter' ]
 | 
						|
	] );
 | 
						|
 | 
						|
	$this->add_render_attribute( 'wrapper', [
 | 
						|
		'class' => 'stratum-counter__wrapper',
 | 
						|
		'data-options' => json_encode( $options )
 | 
						|
	] );
 | 
						|
//-----------/PHP-----------
 | 
						|
}
 | 
						|
//-----------JS (BACKBONE)-----------
 | 
						|
else if ( $type == 'js' ) {
 | 
						|
	?>
 | 
						|
	<#
 | 
						|
		const { start, end, decimal_places, duration, smooth_animation, display_separator, thousands_separator, decimal_separator, animation_effect, numerals } = settings;
 | 
						|
 | 
						|
		const options = {
 | 
						|
			start: start != '' ? start: 0,
 | 
						|
			end:   end   != '' ? end:   0,
 | 
						|
 | 
						|
			decimalPlaces: decimal_places != '' ? decimal_places : 0,
 | 
						|
			duration: 	   duration       != '' ? duration       : 3,
 | 
						|
 | 
						|
			useEasing:   smooth_animation  != '' ? true : false,
 | 
						|
			useGrouping: display_separator != '' ? true : false,
 | 
						|
 | 
						|
			separator: thousands_separator,
 | 
						|
			decimal:   decimal_separator,
 | 
						|
			easingFn:  animation_effect,
 | 
						|
			numerals:  numerals
 | 
						|
		};
 | 
						|
 | 
						|
		view.addRenderAttribute( 'widget', {
 | 
						|
			'class': [ 'stratum-counter' ]
 | 
						|
		} );
 | 
						|
 | 
						|
		view.addRenderAttribute( 'wrapper', {
 | 
						|
			'class': [ 'stratum-counter__wrapper' ],
 | 
						|
			'data-options': JSON.stringify( options )
 | 
						|
		} );
 | 
						|
	#>
 | 
						|
<?php
 | 
						|
}
 | 
						|
//-----------/JS (BACKBONE)-----------
 | 
						|
 | 
						|
$class = 'stratum-counter';
 | 
						|
 | 
						|
//Render attr
 | 
						|
$widget_class   = $type == 'php' ? $this->get_render_attribute_string( 'widget'  ) : "{{{ view.getRenderAttributeString( 'widget' ) }}}";
 | 
						|
$widget_wrapper = $type == 'php' ? $this->get_render_attribute_string( 'wrapper' ) : "{{{ view.getRenderAttributeString( 'wrapper' ) }}}";
 | 
						|
 | 
						|
?>
 | 
						|
<div <?php echo $widget_class; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>>
 | 
						|
	<div <?php echo $widget_wrapper; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>>
 | 
						|
		<?php
 | 
						|
		if ( $type == 'php' ) {
 | 
						|
			if ( ! empty( $prefix ) ) { ?>
 | 
						|
				<p class="stratum-counter__prefix"><?php echo esc_html( $prefix ); ?></p>
 | 
						|
			<?php }
 | 
						|
		} elseif ( $type == 'js' ) {
 | 
						|
			?>
 | 
						|
			<# if ( settings.prefix != '' ) { #>
 | 
						|
				<p class="stratum-counter__prefix"><?php echo esc_html( $prefix ); ?></p>
 | 
						|
			<# } #>
 | 
						|
			<?php
 | 
						|
		}
 | 
						|
		?>
 | 
						|
		<span class="<?php echo esc_attr( $class ); ?>__number"></span>
 | 
						|
		<?php
 | 
						|
		if ( $type == 'php' ) {
 | 
						|
			if ( ! empty( $suffix ) ) { ?>
 | 
						|
				<p class="stratum-counter__suffix"><?php echo esc_html( $suffix ); ?></p>
 | 
						|
			<?php }
 | 
						|
		} elseif ( $type == 'js' ) {
 | 
						|
			?>
 | 
						|
			<# if ( settings.suffix != '' ) { #>
 | 
						|
				<p class="stratum-counter__suffix"><?php echo esc_html( $suffix ); ?></p>
 | 
						|
			<# } #>
 | 
						|
		<?php
 | 
						|
		}
 | 
						|
		?>
 | 
						|
	</div>
 | 
						|
</div>
 |