mirror of
https://gh.wpcy.net/https://github.com/presscustomizr/hueman.git
synced 2026-04-29 21:20:17 +08:00
210 lines
No EOL
7.6 KiB
PHP
210 lines
No EOL
7.6 KiB
PHP
<?php
|
|
/**
|
|
* Add controls to customizer
|
|
*
|
|
*/
|
|
if ( ! class_exists( 'HU_controls' ) ) :
|
|
class HU_controls extends WP_Customize_Control {
|
|
public $type;
|
|
public $link;
|
|
public $title;
|
|
public $label;
|
|
public $buttontext;
|
|
public $settings;
|
|
public $hr_after;
|
|
public $notice;
|
|
//number vars
|
|
public $step;
|
|
public $min;
|
|
public $icon;
|
|
|
|
public function render_content() {
|
|
do_action( '__before_setting_control' , $this -> id );
|
|
|
|
switch ( $this -> type) {
|
|
case 'hr':
|
|
echo '<hr class="czr-customizer-separator" />';
|
|
break;
|
|
|
|
|
|
case 'title' :
|
|
?>
|
|
<?php if (isset( $this->title)) : ?>
|
|
<h3 class="czr-customizr-title"><?php echo esc_html( $this->title); ?></h3>
|
|
<?php endif; ?>
|
|
<?php if (isset( $this->notice)) : ?>
|
|
<i class="czr-notice"><?php echo $this -> notice ?></i>
|
|
<?php endif; ?>
|
|
|
|
<?php
|
|
break;
|
|
|
|
case 'select':
|
|
if ( empty( $this->choices ) )
|
|
return;
|
|
?>
|
|
<?php if (!empty( $this->title)) : ?>
|
|
<h3 class="czr-customizr-title"><?php echo esc_html( $this->title); ?></h3>
|
|
<?php endif; ?>
|
|
<label>
|
|
<span class="customize-control-title"><?php echo $this->label; ?></span>
|
|
<?php $this -> hu_print_select_control( '' ) ?>
|
|
<?php if(!empty( $this -> notice)) : ?>
|
|
<span class="czr-notice"><?php echo $this -> notice ?></span>
|
|
<?php endif; ?>
|
|
</label>
|
|
<?php
|
|
|
|
break;
|
|
|
|
|
|
case 'number':
|
|
?>
|
|
<?php if (isset( $this->title)) : ?>
|
|
<h3 class="czr-customizr-title"><?php echo esc_html( $this->title); ?></h3>
|
|
<?php endif; ?>
|
|
<label>
|
|
<span class="czr-number-label customize-control-title"><?php echo $this->label ?></span>
|
|
<input <?php $this->link() ?> type="number" step="<?php echo $this-> step ?>" min="<?php echo $this-> min ?>" id="posts_per_page" value="<?php echo $this->value() ?>" class="czr-number-input small-text">
|
|
<?php if(!empty( $this -> notice)) : ?>
|
|
<span class="czr-notice"><?php echo $this-> notice ?></span>
|
|
<?php endif; ?>
|
|
</label>
|
|
<?php
|
|
break;
|
|
|
|
case 'checkbox':
|
|
?>
|
|
<?php if (isset( $this->title)) : ?>
|
|
<h3 class="czr-customizr-title"><?php echo esc_html( $this->title); ?></h3>
|
|
<?php endif; ?>
|
|
<?php
|
|
printf('<div class="czr-check-label"><label><span class="customize-control-title">%1$s</span></label></div>',
|
|
$this->label
|
|
);
|
|
?>
|
|
<input <?php $this->link(); ?> type="checkbox" value="<?php echo esc_attr( $this->value() ); ?>" <?php hu_checked( $this->value() ); ?> />
|
|
|
|
<?php if(!empty( $this -> notice)) : ?>
|
|
<span class="czr-notice"><?php echo $this-> notice ?></span>
|
|
<?php endif; ?>
|
|
<?php
|
|
break;
|
|
|
|
case 'textarea':
|
|
?>
|
|
<?php if (isset( $this->title)) : ?>
|
|
<h3 class="czr-customizr-title"><?php echo esc_html( $this->title); ?></h3>
|
|
<?php endif; ?>
|
|
<label>
|
|
<span class="customize-control-title"><?php echo $this->label; ?></span>
|
|
<?php if(!empty( $this -> notice)) : ?>
|
|
<span class="czr-notice"><?php echo $this-> notice; ?></span>
|
|
<?php endif; ?>
|
|
<textarea class="widefat" rows="3" cols="10" <?php $this->link(); ?>><?php echo esc_html( $this->value() ); ?></textarea>
|
|
</label>
|
|
<?php
|
|
break;
|
|
|
|
case 'url':
|
|
case 'email':
|
|
?>
|
|
<?php if (isset( $this->title)) : ?>
|
|
<h3 class="czr-customizr-title"><?php echo esc_html( $this->title); ?></h3>
|
|
<?php endif; ?>
|
|
<?php
|
|
printf('<label><span class="customize-control-title %1$s">%2$s</span><input type="text" value="%3$s" %4$s /></label>',
|
|
! empty( $this -> icon) ? $this -> icon : '',
|
|
$this->label,
|
|
call_user_func( array( HU_utils_settings_map::$instance, 'hu_sanitize_' . $this -> type), $this->value() ),
|
|
call_user_func( array( $this, 'get'.'_'.'link' ) )
|
|
);
|
|
break;
|
|
|
|
|
|
default:
|
|
global $wp_version;
|
|
?>
|
|
<?php if (isset( $this->title)) : ?>
|
|
<h3 class="czr-customizr-title"><?php echo esc_html( $this->title); ?></h3>
|
|
<?php endif; ?>
|
|
<label>
|
|
<?php if ( ! empty( $this->label ) ) : ?>
|
|
<span class="customize-control-title"><?php echo $this->label; ?></span>
|
|
<?php endif; ?>
|
|
<?php if ( ! empty( $this->description ) ) : ?>
|
|
<span class="description customize-control-description"><?php echo $this->description; ?></span>;;;
|
|
<?php endif; ?>
|
|
<?php if ( ! version_compare( $wp_version, '4.0', '>=' ) ) : ?>
|
|
<input type="<?php echo esc_attr( $this->type ); ?>" value="<?php echo esc_attr( $this->value() ); ?>" <?php $this->link(); ?> />
|
|
<?php else : ?>
|
|
<input type="<?php echo esc_attr( $this->type ); ?>" <?php $this->input_attrs(); ?> value="<?php echo esc_attr( $this->value() ); ?>" <?php $this->link(); ?> />
|
|
<?php endif; ?>
|
|
<?php if(!empty( $this -> notice)) : ?>
|
|
<span class="czr-notice"><?php echo $this-> notice; ?></span>
|
|
<?php endif; ?>
|
|
</label>
|
|
<?php
|
|
break;
|
|
}//end switch
|
|
do_action( '__after_setting_control' , $this -> id );
|
|
}//end function
|
|
|
|
|
|
|
|
|
|
private function hu_print_select_control($class) {
|
|
printf('<select %1$s class="%2$s">%3$s</select>',
|
|
call_user_func( array( $this, 'get'.'_'.'link' ) ),
|
|
$class,
|
|
$this -> hu_get_select_options()
|
|
);
|
|
}
|
|
|
|
|
|
private function hu_get_select_options() {
|
|
$_options_html = '';
|
|
switch ( $this -> id ) {
|
|
default:
|
|
foreach ( $this->choices as $value => $label ) {
|
|
$_options_html .= sprintf('<option value="%1$s" %2$s>%3$s</option>',
|
|
esc_attr( $value ),
|
|
selected( $this->value(), $value, false ),
|
|
$label
|
|
);
|
|
}
|
|
break;
|
|
}//end switch
|
|
return $_options_html;
|
|
}//end of fn
|
|
|
|
|
|
/**
|
|
* Enqueue scripts/styles
|
|
* fired by the parent Control class constructor
|
|
*
|
|
*/
|
|
public function enqueue() {
|
|
wp_enqueue_script( 'wp-color-picker' );
|
|
wp_enqueue_style( 'wp-color-picker' );
|
|
|
|
wp_enqueue_style(
|
|
'font-awesome',
|
|
sprintf('%1$s/assets/front/css/font-awesome.min.css', get_template_directory_uri() ),
|
|
array(),
|
|
HUEMAN_VER,
|
|
$media = 'all'
|
|
);
|
|
|
|
//select2 stylesheet
|
|
//overriden by some specific style in theme-customzer-control.css
|
|
wp_enqueue_style(
|
|
'select2-css',
|
|
sprintf('%1$s/assets/czr/css/lib/select2.min.css', get_template_directory_uri() ),
|
|
array( 'customize-controls' ),
|
|
HUEMAN_VER,
|
|
$media = 'all'
|
|
);
|
|
}
|
|
}//end of class
|
|
endif;
|