File size: 6.21Kb
<?php
/**
* Extend custom classes for customizer
*
* @package VMag
*/
if ( class_exists( 'WP_Customize_Control' ) ) {
/**
* Pro customizer section.
*
* @since 1.0.0
* @access public
*/
class Vmag_Customize_Section_Pro extends WP_Customize_Section {
/**
* The type of customize section being rendered.
*
* @since 1.0.0
* @access public
* @var string
*/
public $type = 'vmag-pro';
/**
* Custom button text to output.
*
* @since 1.0.0
* @access public
* @var string
*/
public $pro_text = '';
/**
* Custom pro button URL.
*
* @since 1.0.0
* @access public
* @var string
*/
public $pro_url = '';
/**
* Add custom parameters to pass to the JS via JSON.
*
* @since 1.0.0
* @access public
* @return void
*/
public function json() {
$json = parent::json();
$json['pro_text'] = $this->pro_text;
$json['pro_url'] = esc_url( $this->pro_url );
return $json;
}
/**
* Outputs the Underscore.js template.
*
* @since 1.0.0
* @access public
* @return void
*/
protected function render_template() { ?>
<li id="accordion-section-{{ data.id }}" class="accordion-section control-section control-section-{{ data.type }} cannot-expand">
<h3 class="accordion-section-title">
{{ data.title }}
<# if ( data.pro_text && data.pro_url ) { #>
<a href="{{ data.pro_url }}" class="button button-secondary alignright" target="_blank">{{ data.pro_text }}</a>
<# } #>
</h3>
</li>
<?php }
}
/**
* Multiple checkbox customize control class.
*/
class Vmag_Customize_Checkbox_Multiple extends WP_Customize_Control {
public $type = 'checkbox-multiple';
public function render_content() {
if ( empty( $this->choices ) )
return; ?>
<?php if ( !empty( $this->label ) ) : ?>
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
<?php endif; ?>
<?php if ( !empty( $this->description ) ) : ?>
<span class="description customize-control-description"><?php echo esc_html( $this->description ); ?></span>
<?php endif; ?>
<?php $multi_values = !is_array( $this->value() ) ? explode( ',', $this->value() ) : $this->value(); ?>
<ul>
<?php foreach ( $this->choices as $value => $label ) : ?>
<li>
<label>
<input type="checkbox" value="<?php echo esc_attr( $value ); ?>" <?php checked( in_array( $value, $multi_values ) ); ?> />
<?php echo esc_html( $label ); ?>
</label>
</li>
<?php endforeach; ?>
</ul>
<input type="hidden" <?php $this->link(); ?> value="<?php echo esc_attr( implode( ',', $multi_values ) ); ?>" />
<?php }
}
/**
* Cutomize control for switch option
*/
class Vmag_Customize_Switch_Control extends WP_Customize_Control {
public $type = 'switch';
public function render_content() {
?>
<label>
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
<div class="description customize-control-description"><?php echo esc_html( $this->description ); ?></div>
<div class="switch_options">
<?php
$show_choices = $this->choices;
foreach ( $show_choices as $key => $value ) {
echo '<span class="switch_part ' . esc_attr( $key ) . '" data-switch="' . esc_attr( $key ) . '">'. esc_attr( $value ) .'</span>';
}
?>
<input type="hidden" id="enable_switch_option" <?php $this->link(); ?> value="<?php echo esc_attr( $this->value() ); ?>" />
</div>
</label>
<?php
}
}
/**
* Image control by radio button
*/
class Vmag_Image_Radio_Control extends WP_Customize_Control {
public function render_content() {
if ( empty( $this->choices ) ) {
return;
}
$name = '_customize-radio-' . $this->id;
?>
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
<span class="description customize-control-description"><?php echo esc_html( $this->description ); ?></span>
<ul class="controls" id ="vmag-img-container">
<?php
foreach ( $this->choices as $value => $label ) :
$class = ( $this->value() == $value ) ? 'vmag-radio-img-selected vmag-radio-img-img' : 'vmag-radio-img-img';
?>
<li class="inc-radio-image">
<label>
<input <?php $this->link(); ?>style = 'display:none' type="radio" value="<?php echo esc_attr( $value ); ?>" name="<?php echo esc_attr( $name ); ?>" <?php $this->link(); checked( $this->value(), $value ); ?> />
<img src = '<?php echo esc_html( $label ); ?>' class = '<?php echo esc_attr( $class ); ?>' />
</label>
</li>
<?php
endforeach;
?>
</ul>
<?php
}
}
/**
* Customize for textarea, extend the WP customizer
*/
class Vmag_Textarea_Custom_Control extends WP_Customize_Control{
/**
* Render the control's content.
*
*/
public $type = 'vmag_textarea';
public function render_content() {
?>
<label>
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
<span class="description customize-control-description"><?php echo esc_html( $this->description ); ?></span>
<textarea class="large-text" cols="20" rows="5" <?php $this->link(); ?>>
<?php echo esc_textarea( $this->value() ); ?>
</textarea>
</label>
<?php
}
}
} //endif class_exists