File "custom-controls.php"
Full Path: /home2/sdektunc/cepali.edu.mx/wp-content/themes/edufication/inc/customizer/custom-controls.php
File size: 8.66 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Customizer custom controls
*
* @package Theme Palace
* @subpackage Edufication
* @since Edufication 1.0.0
*/
if ( ! class_exists( 'WP_Customize_Control' ) ) {
return null;
}
/**
* Customize Control for Taxonomy Select.
*
* @since Edufication 1.0.0
*
* @see WP_Customize_Control
*/
class Edufication_Dropdown_Taxonomies_Control extends WP_Customize_Control {
/**
* Control type.
*
* @access public
* @var string
*/
public $type = 'dropdown-taxonomies';
/**
* Taxonomy.
*
* @access public
* @var string
*/
public $taxonomy = '';
/**
* Constructor.
*
* @since Edufication 1.0.0
*
* @param WP_Customize_Manager $manager Customizer bootstrap instance.
* @param string $id Control ID.
* @param array $args Optional. Arguments to override class property defaults.
*/
public function __construct( $manager, $id, $args = array() ) {
$taxonomy = 'category';
if ( isset( $args['taxonomy'] ) ) {
$taxonomy_exist = taxonomy_exists( esc_attr( $args['taxonomy'] ) );
if ( true === $taxonomy_exist ) {
$taxonomy = esc_attr( $args['taxonomy'] );
}
}
$args['taxonomy'] = $taxonomy;
$this->taxonomy = esc_attr( $taxonomy );
parent::__construct( $manager, $id, $args );
}
/**
* Render content.
*
* @since Edufication 1.0.0
*/
public function render_content() {
$tax_args = array(
'hierarchical' => 0,
'taxonomy' => $this->taxonomy,
);
$taxonomies = get_categories( $tax_args );
?>
<label>
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
<?php if ( ! empty( $this->description ) ) : ?>
<span class="description customize-control-description"><?php echo esc_html( $this->description ); ?></span>
<?php endif; ?>
<select <?php $this->link(); ?>>
<?php
printf( '<option value="%s" %s>%s</option>', '', selected( $this->value(), '', false ), esc_html__('--None--', 'edufication') );
?>
<?php if ( ! empty( $taxonomies ) ) : ?>
<?php foreach ( $taxonomies as $key => $tax ) : ?>
<?php
printf( '<option value="%s" %s>%s</option>', esc_attr( $tax->term_id ), selected( $this->value(), $tax->term_id, false ), esc_html( $tax->name ) );
?>
<?php endforeach ?>
<?php endif ?>
</select>
</label>
<?php
}
}
/**
* Customize Control for Category Select.
*
* @since Edufication 1.0.0
*
* @see WP_Customize_Control
*/
class Edufication_Dropdown_Category_Control extends WP_Customize_Control {
/**
* Control type.
*
* @access public
* @var string
*/
public $type = 'dropdown-categories';
/**
* Category.
*
* @access public
* @var string
*/
public $taxonomy = '';
/**
* Constructor.
*
* @since Edufication 1.0.0
*
* @param WP_Customize_Manager $manager Customizer bootstrap instance.
* @param string $id Control ID.
* @param array $args Optional. Arguments to override class property defaults.
*/
public function __construct( $manager, $id, $args = array() ) {
$taxonomy = 'category';
if ( isset( $args['taxonomy'] ) ) {
$taxonomy_exist = taxonomy_exists( esc_attr( $args['taxonomy'] ) );
if ( true === $taxonomy_exist ) {
$taxonomy = esc_attr( $args['taxonomy'] );
}
}
$args['taxonomy'] = $taxonomy;
$this->taxonomy = esc_attr( $taxonomy );
parent::__construct( $manager, $id, $args );
}
/**
* Render content.
*
* @since Edufication 1.0.0
*/
public function render_content() {
$tax_args = array(
'hierarchical' => 0,
'taxonomy' => $this->taxonomy,
);
$taxonomies = get_categories( $tax_args );
?>
<label>
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
<?php if ( ! empty( $this->description ) ) : ?>
<span class="description customize-control-description"><?php echo esc_html( $this->description ); ?></span>
<?php endif; ?>
<select <?php $this->link(); ?> multiple>
<?php
printf( '<option value="%s" %s>%s</option>', '', selected( $this->value(), '', false ), esc_html__('--None--', 'edufication') );
?>
<?php if ( ! empty( $taxonomies ) ) : ?>
<?php foreach ( $taxonomies as $key => $tax ) : ?>
<?php
printf( '<option value="%s" %s>%s</option>', esc_attr( $tax->term_id ), selected( $this->value(), $tax->term_id, false ), esc_html( $tax->name ) );
?>
<?php endforeach ?>
<?php endif ?>
</select>
</label>
<?php
}
}
//Custom control for any note, use label as output description
class Edufication_Note_Control extends WP_Customize_Control {
public $type = 'description';
public function render_content() {
echo '<h2 class="description">' . esc_html( $this->label ) . '</h2>';
}
}
class Edufication_Switch_Control extends WP_Customize_Control{
public $type = 'switch';
public $on_off_label = array();
public function __construct( $manager, $id, $args = array() ){
$this->on_off_label = $args['on_off_label'];
parent::__construct( $manager, $id, $args );
}
public function render_content(){
?>
<span class="customize-control-title">
<?php echo esc_html( $this->label ); ?>
</span>
<?php if( $this->description ){ ?>
<span class="description customize-control-description">
<?php echo wp_kses_post( $this->description ); ?>
</span>
<?php } ?>
<?php
$switch_class = ( $this->value() == 'true' ) ? 'switch-on' : '';
$on_off_label = $this->on_off_label;
?>
<div class="onoffswitch <?php echo esc_attr( $switch_class ); ?>">
<div class="onoffswitch-inner">
<div class="onoffswitch-active">
<div class="onoffswitch-switch"><?php echo esc_html( $on_off_label['on'] ) ?></div>
</div>
<div class="onoffswitch-inactive">
<div class="onoffswitch-switch"><?php echo esc_html( $on_off_label['off'] ) ?></div>
</div>
</div>
</div>
<input <?php $this->link(); ?> type="hidden" value="<?php echo esc_attr( $this->value() ); ?>"/>
<?php
}
}
class Edufication_Dropdown_Chooser extends WP_Customize_Control{
public $type = 'dropdown_chooser';
public function render_content(){
if ( empty( $this->choices ) )
return;
?>
<label>
<span class="customize-control-title">
<?php echo esc_html( $this->label ); ?>
</span>
<?php if($this->description){ ?>
<span class="description customize-control-description">
<?php echo wp_kses_post($this->description); ?>
</span>
<?php } ?>
<select class="edufication-chosen-select" <?php $this->link(); ?>>
<?php
foreach ( $this->choices as $value => $label )
echo '<option value="' . esc_attr( $value ) . '"' . selected( $this->value(), $value, false ) . '>' . esc_html( $label ) . '</option>';
?>
</select>
</label>
<?php
}
}
/**
* Create a Radio-Image control
*
*
* @link https://github.com/reduxframework/kirki/
* @link http://ottopress.com/2012/making-a-custom-control-for-the-theme-customizer/
*/
class Edufication_Custom_Radio_Image_Control extends WP_Customize_Control {
/**
* Declare the control type.
*
* @access public
* @var string
*/
public $type = 'radio-image';
/**
* Render the control to be displayed in the Customizer.
*/
public function render_content() {
if ( empty( $this->choices ) ) {
return;
}
$name = '_customize-radio-' . $this->id;
?>
<span class="customize-control-title">
<?php echo esc_attr( $this->label ); ?>
<?php if ( ! empty( $this->description ) ) : ?>
<span class="description customize-control-description"><?php echo esc_html( $this->description ); ?></span>
<?php endif; ?>
</span>
<div id="input_<?php echo esc_attr( $this->id ); ?>" class="image">
<?php foreach ( $this->choices as $value => $label ) : ?>
<label for="<?php echo esc_attr( $this->id ) . $value; ?>">
<input class="image-select" type="radio" value="<?php echo esc_attr( $value ); ?>" id="<?php echo esc_attr( $this->id ) . $value; ?>" name="<?php echo esc_attr( $name ); ?>" <?php $this->link(); checked( $this->value(), $value ); ?>>
<img src="<?php echo esc_url( $label ); ?>" alt="<?php echo esc_attr( $value ); ?>" title="<?php echo esc_attr( $value ); ?>">
</input>
</label>
<?php endforeach; ?>
</div>
<?php
}
}
//Custom control for horizontal line
Class Edufication_Customize_Horizontal_Line extends WP_Customize_Control {
public $type = 'hr';
public function render_content() {
?>
<div>
<hr style="border: 1px dotted #72777c;" />
</div>
<?php
}
}