669 lines
23 KiB
PHP
669 lines
23 KiB
PHP
<?php
|
|
|
|
/*
|
|
* Wrapper for customizer by xwolf
|
|
* All options in customizer are generated by an array, which is somewhat
|
|
* easer to edit.
|
|
*
|
|
* Alle options, which may to be changed are set in the array and ordered
|
|
* by their tabs. (Only) If needed, additional JS and CSS is loaded in backend.
|
|
*
|
|
* Author: xwolf
|
|
* Author URL: https://xwolf.de
|
|
* Licence: GPL
|
|
*
|
|
* Proudly set under GPL. Feel free to use and change. Make the world
|
|
* a better place by sharing ideas and code.
|
|
*
|
|
* Customizer-API:
|
|
* @link http://codex.wordpress.org/Theme_Customization_API
|
|
*/
|
|
|
|
/*
|
|
$xwolf_customizer_setoptions = array(
|
|
'my-panel-1' => array(
|
|
'tabtitle' => __('My Panel 1'),
|
|
'fields' => array(
|
|
'my-section-1' => array(
|
|
'type' => 'section',
|
|
'title' => __( 'Section 1 in Panel 1' ),
|
|
),
|
|
'my-option-name'=> array(
|
|
'type' => 'select',
|
|
'title' => __( 'Typ' ),
|
|
'label' => __( 'Select something' ),
|
|
'liste' => array(
|
|
0 => __('Element 1'),
|
|
1 => __('Element 2'),
|
|
2 => __('Element 3') ,
|
|
3 => __('Element 4')
|
|
),
|
|
'default' => 'some value',
|
|
'parent' => 'my-section-1'
|
|
|
|
),
|
|
)
|
|
)
|
|
);
|
|
*/
|
|
$xwolf_customizer_setoptions = $pirate_rogue_options;
|
|
|
|
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
|
|
// needed for options, that may be disabled, if a defined plugin is active
|
|
|
|
|
|
add_action( 'customize_register', 'xwolf_customizer_settings' );
|
|
function xwolf_customizer_settings( $wp_customize ) {
|
|
global $xwolf_customizer_setoptions;
|
|
// list of options, that may be changed
|
|
|
|
$wp_customize->get_setting( 'blogname' )->transport = 'postMessage';
|
|
$wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage';
|
|
$num = 0;
|
|
|
|
$definedtypes = array(
|
|
"text", "checkbox", "radio", "select", "textarea", "dropdown-pages", "email", "url", "number", "hidden", "date",
|
|
// defaults
|
|
"bool", "html", "image", "multiselect", "range", "category", "tag", "toggle", "toggle-switch", "colorlist-radio"
|
|
// special settings
|
|
);
|
|
|
|
|
|
foreach($xwolf_customizer_setoptions as $tab => $value) {
|
|
$tabtitel = __($value['tabtitle'], 'pirate-rogue');
|
|
|
|
$desc = '';
|
|
$capability = 'edit_theme_options';
|
|
if (isset($value['capability']))
|
|
$capability = $value['capability'];
|
|
if (isset($value['desc']))
|
|
$desc = __($value['desc'], 'pirate-rogue');
|
|
|
|
$num = $num +1;
|
|
$wp_customize->add_panel( $tab, array(
|
|
'priority' => $num,
|
|
'capability' => $capability,
|
|
'title' => $tabtitel,
|
|
'description' => $desc,
|
|
) );
|
|
if (isset($xwolf_customizer_setoptions[$tab]['fields'])) {
|
|
|
|
$nosectionentries = array();
|
|
$sectionprio = 0;
|
|
foreach($xwolf_customizer_setoptions[$tab]['fields'] as $field => $value) {
|
|
$sectionprio = $sectionprio +1;
|
|
if ($value['type'] == 'section') {
|
|
// Definition section
|
|
$desc = '';
|
|
$title = '';
|
|
$capability = '';
|
|
if (isset($value['capability']))
|
|
$capability = $value['capability'];
|
|
|
|
$thisprio = $sectionprio;
|
|
if (isset($value['priority']))
|
|
$thisprio = $value['priority'];
|
|
if (isset($value['title']))
|
|
$title = __($value['title'], 'pirate-rogue');
|
|
if (isset($value['desc']))
|
|
$desc = __($value['desc'], 'pirate-rogue');
|
|
|
|
|
|
$sectionid = esc_html($field);
|
|
|
|
$wp_customize->add_section( $sectionid , array(
|
|
'title' => $title,
|
|
'description' => $desc,
|
|
'panel' => $tab,
|
|
'capability' => $capability,
|
|
'priority' => $thisprio,
|
|
) );
|
|
|
|
}
|
|
}
|
|
$sectionprio = $sectionprio +1;
|
|
$sectionid = $tab."-elsesection";
|
|
$wp_customize->add_section( $sectionid , array(
|
|
'title' => __('Miscellaneous'),
|
|
'panel' => $tab,
|
|
'priority' => $sectionprio,
|
|
) );
|
|
// Add a section for all options, that were not defined within a section
|
|
// (Mostly forgotten)
|
|
|
|
foreach($xwolf_customizer_setoptions[$tab]['fields'] as $field => $value) {
|
|
if ($value['type'] != 'section') {
|
|
if (isset($value['parent'])) {
|
|
$section = $value['parent'];
|
|
} else {
|
|
$section = $tab."-elsesection";
|
|
}
|
|
|
|
$default = $title = $desc = $label = $type = '';
|
|
$notifplugin = $ifplugin = $ifclassexists = $iffunctionexists = '';
|
|
$optionid = esc_html($field);
|
|
|
|
if (isset($value['title']))
|
|
$title = __($value['title'], 'pirate-rogue');
|
|
if (isset($value['desc']))
|
|
$desc = __($value['desc'], 'pirate-rogue');
|
|
if (isset($value['label']))
|
|
$label = __($value['label'], 'pirate-rogue');
|
|
if (isset($value['notifplugin']))
|
|
$notifplugin = $value['notifplugin'];
|
|
if (isset($value['ifplugin']))
|
|
$ifplugin = $value['ifplugin'];
|
|
if (isset($value['ifclass']))
|
|
$ifclassexists = $value['ifclass'];
|
|
if (isset($value['iffunction']))
|
|
$iffunctionexists = $value['iffunction'];
|
|
if (isset($value['default'])) {
|
|
$default = $value['default'];
|
|
}
|
|
|
|
|
|
$type = $value['type'];
|
|
if (!in_array($type, $definedtypes)) {
|
|
|
|
$default = "UNDEFINED TYP";
|
|
$label = $label . " ( UNDEFINED TYP: $type ) ";
|
|
$type = 'text';
|
|
}
|
|
$plugin_break = false;
|
|
|
|
if ($notifplugin) {
|
|
if ( is_plugin_active( $notifplugin ) ) {
|
|
$plugin_break = true;
|
|
}
|
|
}
|
|
if ($ifplugin) {
|
|
if ( !is_plugin_active( $ifplugin ) ) {
|
|
$plugin_break = true;
|
|
}
|
|
}
|
|
if ($ifclassexists) {
|
|
if (!class_exists($ifclassexists)) {
|
|
$plugin_break = true;
|
|
}
|
|
}
|
|
if ($iffunctionexists) {
|
|
if (!function_exists($iffunctionexists)) {
|
|
$plugin_break = true;
|
|
}
|
|
}
|
|
if ($plugin_break==false) {
|
|
if ($type == 'bool') {
|
|
$wp_customize->add_setting( $optionid , array(
|
|
'default' => $default,
|
|
'transport' => 'refresh',
|
|
'sanitize_callback' => 'xwolf_sanitize_customizer_bool'
|
|
) );
|
|
$wp_customize->add_control( $optionid, array(
|
|
'label' => $title,
|
|
'description' => $label,
|
|
'section' => $section,
|
|
'settings' => $optionid,
|
|
'type' => 'checkbox',
|
|
|
|
) );
|
|
} elseif (($type == 'toggle-switch') || ($type == 'toggle')) {
|
|
$wp_customize->add_setting( $optionid, array(
|
|
'default' => 0,
|
|
'transport' => 'refresh',
|
|
'sanitize_callback' => 'xwolf_sanitize_customizer_toggle_switch'
|
|
)
|
|
);
|
|
$wp_customize->add_control( new WP_Customize_Control_Toggle_Switch( $wp_customize, $optionid, array(
|
|
'label' => $title,
|
|
'section' => $section,
|
|
'description' => $label,
|
|
)
|
|
) );
|
|
} elseif ($type == 'range') {
|
|
$wp_customize->add_setting( $optionid , array(
|
|
'default' => $default,
|
|
'transport' => 'refresh',
|
|
'sanitize_callback' => 'xwolf_sanitize_customizer_number'
|
|
) );
|
|
|
|
$min = 0;
|
|
$max = $step = 1;
|
|
$suffix = '';
|
|
|
|
if (isset($value['min'])) {
|
|
$min = $value['min'];
|
|
}
|
|
if (isset($value['max'])) {
|
|
$max = $value['max'];
|
|
}
|
|
if (isset($value['step'])) {
|
|
$step = $value['step'];
|
|
}
|
|
if (isset($value['suffix'])) {
|
|
$suffix = $value['suffix'];
|
|
}
|
|
|
|
$wp_customize->add_control( new WP_Customize_Range_Value_Control( $wp_customize, $optionid, array(
|
|
'type' => 'range-value',
|
|
'label' => $title,
|
|
'description' => $label,
|
|
'section' => $section,
|
|
'settings' => $optionid,
|
|
'input_attrs' => array(
|
|
'min' => $min,
|
|
'max' => $max,
|
|
'step' => $step,
|
|
'suffix' => $suffix, //optional suffix
|
|
),
|
|
) ) );
|
|
} elseif ($type == 'category') {
|
|
$wp_customize->add_setting( $optionid , array(
|
|
'default' => $default,
|
|
'transport' => 'refresh',
|
|
) );
|
|
$wp_customize->add_control( new WP_Customize_Category_Control( $wp_customize, $optionid, array(
|
|
'label' => $title,
|
|
'description' => $label,
|
|
'section' => $section,
|
|
'settings' => $optionid,
|
|
'type' => 'category',
|
|
|
|
) ) );
|
|
} elseif ($type == 'tag') {
|
|
$wp_customize->add_setting( $optionid , array(
|
|
'default' => $default,
|
|
'transport' => 'refresh',
|
|
) );
|
|
$wp_customize->add_control( new WP_Customize_Tag_Control( $wp_customize, $optionid, array(
|
|
'label' => $title,
|
|
'description' => $label,
|
|
'section' => $section,
|
|
'settings' => $optionid,
|
|
'type' => 'tag',
|
|
|
|
) ) );
|
|
} elseif ($type == 'select') {
|
|
$wp_customize->add_setting( $optionid , array(
|
|
'default' => $default,
|
|
'transport' => 'refresh',
|
|
) );
|
|
$wp_customize->add_control( $optionid, array(
|
|
'label' => $title,
|
|
'description' => $label,
|
|
'section' => $section,
|
|
'settings' => $optionid,
|
|
'type' => 'select',
|
|
'choices' => array_map(function($item) { return __($item, 'pirate-rogue'); }, $value['liste'])
|
|
|
|
) );
|
|
} elseif ($type == 'multiselect') {
|
|
$wp_customize->add_setting( $optionid , array(
|
|
'default' => $default,
|
|
'transport' => 'refresh',
|
|
) );
|
|
$wp_customize->add_control( new WP_Customize_Control_Multiple_Select( $wp_customize, $optionid, array(
|
|
'label' => $title,
|
|
'description' => $label,
|
|
'section' => $section,
|
|
'settings' => $optionid,
|
|
'type' => 'multiple-select',
|
|
'choices' => array_map(function($item) { return __($item, 'pirate-rogue'); }, $value['liste'])
|
|
|
|
) ) );
|
|
} elseif ($type == 'colorlist-radio') {
|
|
$wp_customize->add_setting( $optionid , array(
|
|
'default' => $default,
|
|
'transport' => 'refresh',
|
|
) );
|
|
$wp_customize->add_control( new WP_Customize_Colorlist_Radio( $wp_customize, $optionid, array(
|
|
'label' => $title,
|
|
'description' => $label,
|
|
'section' => $section,
|
|
'settings' => $optionid,
|
|
'type' => 'colorlist-radio',
|
|
'choices' => array_map(function($item) { return __($item, 'pirate-rogue'); }, $value['liste'])
|
|
|
|
) ) );
|
|
|
|
} elseif ($type == 'html') {
|
|
$wp_customize->add_setting( $optionid , array(
|
|
'default' => $default,
|
|
'transport' => 'refresh',
|
|
) );
|
|
$wp_customize->add_control( $optionid, array(
|
|
'label' => $title,
|
|
'description' => $label,
|
|
'section' => $section,
|
|
'settings' => $optionid,
|
|
'type' => 'textarea',
|
|
|
|
) );
|
|
} elseif ($type == 'image') {
|
|
|
|
$width = 0;
|
|
$flexwidth = false;
|
|
$height = 0;
|
|
$flexheight = false;
|
|
|
|
if (isset($value['width'])) {
|
|
$width = $value['width'];
|
|
}
|
|
if (isset($value['height'])) {
|
|
$height = $value['height'];
|
|
}
|
|
if (isset($value['maxwidth'])) {
|
|
$width = $value['maxwidth'];
|
|
$flexwidth = true;
|
|
}
|
|
if (isset($value['maxheight'])) {
|
|
$height = $value['maxheight'];
|
|
$flexheight = true;
|
|
}
|
|
|
|
$wp_customize->add_setting( $optionid , array(
|
|
'default' => $default,
|
|
'transport' => 'refresh',
|
|
) );
|
|
|
|
|
|
$wp_customize->add_control( new WP_Customize_Cropped_Image_Control( $wp_customize, $optionid, array(
|
|
'section' => $section,
|
|
'label' => $title,
|
|
'description' => $label,
|
|
'flex_width' => $flexwidth,
|
|
'flex_height' => $flexheight,
|
|
'width' => $width,
|
|
'height' => $height,
|
|
) ) );
|
|
|
|
} elseif ($type == 'number') {
|
|
$wp_customize->add_setting( $optionid , array(
|
|
'default' => $default,
|
|
'transport' => 'refresh',
|
|
'sanitize_callback' => 'xwolf_sanitize_customizer_number'
|
|
) );
|
|
$wp_customize->add_control( $optionid, array(
|
|
'label' => $title,
|
|
'description' => $label,
|
|
'section' => $section,
|
|
'settings' => $optionid,
|
|
'type' => 'number',
|
|
|
|
) );
|
|
} elseif ($type == 'text') {
|
|
$wp_customize->add_setting( $optionid , array(
|
|
'default' => $default,
|
|
'transport' => 'refresh',
|
|
'sanitize_callback' => 'sanitize_text_field'
|
|
) );
|
|
$wp_customize->add_control( $optionid, array(
|
|
'label' => $title,
|
|
'description' => $label,
|
|
'section' => $section,
|
|
'settings' => $optionid,
|
|
'type' => 'text',
|
|
|
|
) );
|
|
|
|
|
|
} else {
|
|
$wp_customize->add_setting( $optionid , array(
|
|
'default' => $default,
|
|
'transport' => 'refresh',
|
|
) );
|
|
$wp_customize->add_control( $optionid, array(
|
|
'label' => $title,
|
|
'description' => $label,
|
|
'section' => $section,
|
|
'settings' => $optionid,
|
|
'type' => $type,
|
|
) );
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
/*--------------------------------------------------------------------*/
|
|
/* Multiple select customize control class.
|
|
/*--------------------------------------------------------------------*/
|
|
if (class_exists('WP_Customize_Control')) {
|
|
class WP_Customize_Control_Multiple_Select extends WP_Customize_Control {
|
|
// The type of customize control being rendered.
|
|
public $type = 'multiple-select';
|
|
|
|
//Displays the multiple select on the customize screen.
|
|
public function render_content() {
|
|
if ( empty( $this->choices ) )
|
|
return;
|
|
?>
|
|
<label>
|
|
<?php if ( ! empty( $this->label ) ) : ?>
|
|
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
|
|
<?php endif;
|
|
if ( ! empty( $this->description ) ) : ?>
|
|
<span class="description customize-control-description"><?php echo esc_html( $this->description ); ?></span>
|
|
<?php endif; ?>
|
|
<select <?php $this->link(); ?> multiple="multiple" style="height: 100%;">
|
|
<?php
|
|
foreach ( $this->choices as $value => $label ) {
|
|
$selected = ( in_array( $value, $this->value() ) ) ? selected( 1, 1, false ) : '';
|
|
echo '<option value="' . esc_attr( $value ) . '"' . $selected . '>' . $label . '</option>';
|
|
}
|
|
?>
|
|
</select>
|
|
</label>
|
|
<?php }
|
|
}
|
|
}
|
|
/*--------------------------------------------------------------------*/
|
|
/* Toogle switch
|
|
* adapted from https://github.com/maddisondesigns/customizer-custom-controls
|
|
/*--------------------------------------------------------------------*/
|
|
if (class_exists('WP_Customize_Control')) {
|
|
class WP_Customize_Control_Toggle_Switch extends WP_Customize_Control {
|
|
// The type of control being rendered
|
|
public $type = 'toogle-switch';
|
|
|
|
|
|
public function render_content(){
|
|
?>
|
|
<div class="toggle-switch-control">
|
|
<div class="toggle-switch">
|
|
<input type="checkbox" id="<?php echo esc_attr($this->id); ?>" name="<?php echo esc_attr($this->id); ?>" class="toggle-switch-checkbox" value="<?php echo esc_attr( $this->value() ); ?>" <?php $this->link(); checked( $this->value() ); ?>>
|
|
<label class="toggle-switch-label" for="<?php echo esc_attr( $this->id ); ?>">
|
|
<span class="toggle-switch-inner"></span>
|
|
<span class="toggle-switch-switch"></span>
|
|
</label>
|
|
</div>
|
|
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
|
|
<?php if( !empty( $this->description ) ) { ?>
|
|
<span class="customize-control-description"><?php echo esc_html( $this->description ); ?></span>
|
|
<?php } ?>
|
|
</div>
|
|
<?php
|
|
}
|
|
}
|
|
}
|
|
/*-----------------------------------------------------------------------------------*/
|
|
/* Add Custom Customizer Controls - Category Dropdown
|
|
/*-----------------------------------------------------------------------------------*/
|
|
if (class_exists('WP_Customize_Control')) {
|
|
class WP_Customize_Colorlist_Radio extends WP_Customize_Control {
|
|
// The type of customize control being rendered.
|
|
public $type = 'colorlist-radio';
|
|
|
|
// Displays the multiple select on the customize screen.
|
|
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;
|
|
if ( ! empty( $this->description ) ) : ?>
|
|
<span class="description customize-control-description"><?php echo esc_html( $this->description ); ?></span>
|
|
<?php endif; ?>
|
|
<div class="colorlist-radio-group">
|
|
|
|
|
|
|
|
<?php foreach ( $this->choices as $name => $value ) : ?>
|
|
<label for="_customize-colorlist-radio_<?php echo esc_attr( $this->id ); ?>_<?php echo esc_attr( $name ); ?>" <?php if ($value=="#000") { echo 'style="color: white;"'; } ?>>
|
|
<input name="_customize-colorlist-radio_<?php echo esc_attr( $this->id ); ?>" id="_customize-colorlist-radio_<?php echo esc_attr( $this->id ); ?>_<?php echo esc_attr( $name ); ?>" type="radio" value="<?php echo esc_attr( $name ); ?>" <?php $this->link(); checked( $this->value(), $name ); ?> >
|
|
<span class="colorbox" style="background-color: <?php echo esc_attr( $value ); ?>"> </span>
|
|
</input>
|
|
<span class="screen-reader-text"><?php echo ucfirst(esc_attr( $name) ); ?></span>
|
|
</label>
|
|
<?php endforeach; ?>
|
|
|
|
<label for="_customize-colorlist-radio_<?php echo esc_attr( $this->id ); ?>_reset">
|
|
<input name="_customize-colorlist-radio_<?php echo esc_attr( $this->id ); ?>" id="_customize-colorlist-radio_<?php echo esc_attr( $this->id ); ?>_reset" type="radio" value="" <?php $this->link(); checked( $this->value(), "" ); ?> >
|
|
<span class="reset"><?php echo __("Reset",'pirate-rogue'); ?></span>
|
|
</input>
|
|
</label>
|
|
</div>
|
|
<?php }
|
|
|
|
}
|
|
}
|
|
|
|
/*-----------------------------------------------------------------------------------*/
|
|
/* Add Custom Customizer Controls - Category Dropdown
|
|
/*-----------------------------------------------------------------------------------*/
|
|
if (class_exists('WP_Customize_Control')) {
|
|
class WP_Customize_Category_Control extends WP_Customize_Control {
|
|
|
|
public function render_content() {
|
|
?>
|
|
|
|
<label>
|
|
<?php if ( ! empty( $this->label ) ) : ?>
|
|
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
|
|
<?php endif;
|
|
if ( ! empty( $this->description ) ) : ?>
|
|
<span class="description customize-control-description"><?php echo esc_html( $this->description ); ?></span>
|
|
<?php endif;
|
|
|
|
|
|
$dropdown = wp_dropdown_categories(
|
|
array(
|
|
'name' => '_customize-dropdown-categories-' . $this->id,
|
|
'echo' => 0,
|
|
'show_option_none' => __( '— Select —' ),
|
|
'option_none_value' => '',
|
|
'selected' => $this->value(),
|
|
)
|
|
);
|
|
|
|
// Hackily add in the data link parameter.
|
|
$dropdown = str_replace( '<select', '<select ' . $this->get_link(), $dropdown );
|
|
echo $dropdown;
|
|
|
|
?>
|
|
</label>
|
|
|
|
<?php
|
|
|
|
}
|
|
}
|
|
}
|
|
/*-----------------------------------------------------------------------------------*/
|
|
/* Add Custom Customizer Controls - Range Value Control
|
|
* adapted from https://github.com/soderlind/class-customizer-range-value-control
|
|
/*-----------------------------------------------------------------------------------*/
|
|
if (class_exists('WP_Customize_Control')) {
|
|
class WP_Customize_Range_Value_Control extends WP_Customize_Control {
|
|
public $type = 'range-value';
|
|
|
|
public function enqueue() {
|
|
wp_enqueue_script( 'xwolf-customizer', get_template_directory_uri() . '/js/xwolf-customizer.js', array( 'jquery' ), rand(), true );
|
|
}
|
|
public function render_content() {
|
|
?>
|
|
<label>
|
|
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
|
|
<div class="range-slider" style="width:100%; display:flex;flex-direction: row;justify-content: flex-start;">
|
|
<span style="width:100%; flex: 1 0 0; vertical-align: middle;"><input class="range-slider__range" type="range" value="<?php echo esc_attr( $this->value() ); ?>" <?php $this->input_attrs(); $this->link(); ?>>
|
|
<span class="range-slider__value">0</span></span>
|
|
</div>
|
|
<?php if ( ! empty( $this->description ) ) : ?>
|
|
<span class="description customize-control-description"><?php echo $this->description; ?></span>
|
|
<?php endif; ?>
|
|
</label>
|
|
<?php
|
|
}
|
|
}
|
|
}
|
|
/*-----------------------------------------------------------------------------------*/
|
|
/* Add Custom Customizer Controls - Tag Dropdown
|
|
/*-----------------------------------------------------------------------------------*/
|
|
if (class_exists('WP_Customize_Control')) {
|
|
class WP_Customize_Tag_Control extends WP_Customize_Control {
|
|
public function render_content() {
|
|
$dropdown = wp_dropdown_categories(
|
|
array(
|
|
'name' => '_customize-dropdown-tags-' . $this->id,
|
|
'echo' => 0,
|
|
'orderby' => 'name',
|
|
'show_option_none' => esc_html__( '— Select —'),
|
|
'option_none_value' => '',
|
|
'taxonomy' => 'post_tag',
|
|
'selected' => $this->value(),
|
|
)
|
|
);
|
|
|
|
$dropdown = str_replace( '<select', '<select ' . $this->get_link(), $dropdown );
|
|
|
|
printf(
|
|
'<label class="customize-control-select"><span class="customize-control-title">%s</span> %s</label>',
|
|
$this->label,
|
|
$dropdown
|
|
);
|
|
}
|
|
}
|
|
}
|
|
/*-----------------------------------------------------------------------------------*/
|
|
/* Sanitize Checkboxes.
|
|
/*-----------------------------------------------------------------------------------*/
|
|
function xwolf_sanitize_customizer_bool( $input ) {
|
|
if ( 1 == $input ) {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
function xwolf_sanitize_customizer_toggle_switch( $input ) {
|
|
if ( true == $input ) {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function xwolf_sanitize_customizer_number( $number, $setting ) {
|
|
$number = absint( $number );
|
|
|
|
return ( $number ? $number : $setting->default );
|
|
}
|
|
/*--------------------------------------------------------------------*/
|
|
/* EOCustomizer
|
|
/*--------------------------------------------------------------------*/
|
|
|
|
|
|
|
|
|
|
|