cl01/wp-content/themes/bloglo/inc/customizer/widgets/class-bloglo-customizer-widget-socials.php
2025-02-24 12:39:24 +08:00

102 lines
3.1 KiB
PHP
Executable File

<?php
/**
* Bloglo Customizer widgets class.
*
* @package Bloglo
* @author Peregrine Themes
* @since 1.0.0
*/
/**
* Do not allow direct script access.
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
if ( ! class_exists( 'Bloglo_Customizer_Widget_Socials' ) ) :
/**
* Bloglo Customizer widget class
*/
class Bloglo_Customizer_Widget_Socials extends Bloglo_Customizer_Widget_Nav {
/**
* Primary class constructor.
*
* @since 1.0.0
* @param array $args An array of the values for this widget.
*/
public function __construct( $args = array() ) {
$values = array(
'style' => '',
'size' => '',
'visibility' => 'all',
);
$args['values'] = isset( $args['values'] ) ? wp_parse_args( $args['values'], $values ) : $values;
$args['values']['style'] = sanitize_text_field( $args['values']['style'] );
$args['values']['size'] = sanitize_text_field( $args['values']['size'] );
parent::__construct( $args );
$this->name = __( 'Social Links', 'bloglo' );
$this->description = __( 'Links to your social media profiles.', 'bloglo' );
$this->icon = 'dashicons dashicons-twitter';
$this->type = 'socials';
$this->styles = isset( $args['styles'] ) ? $args['styles'] : array();
$this->sizes = isset( $args['sizes'] ) ? $args['sizes'] : array();
}
/**
* Displays the form for this widget on the Widgets page of the WP Admin area.
*
* @since 1.0.0
* @return void
*/
public function form() {
parent::form();
if ( ! empty( $this->styles ) ) { ?>
<p class="bloglo-widget-socials-style">
<label for="widget-socials-<?php echo esc_attr( $this->id ); ?>-<?php echo esc_attr( $this->number ); ?>-style">
<?php esc_html_e( 'Style', 'bloglo' ); ?>:
</label>
<select id="widget-socials-<?php echo esc_attr( $this->id ); ?>-<?php echo esc_attr( $this->number ); ?>-style" name="widget-socials[<?php echo esc_attr( $this->number ); ?>][style]" data-option-name="style">
<?php foreach ( $this->styles as $key => $value ) { ?>
<option
value="<?php echo esc_attr( $key ); ?>"
<?php selected( $key, $this->values['style'], true ); ?>>
<?php echo esc_html( $value ); ?>
</option>
<?php } ?>
</select>
</p>
<?php
}
if ( ! empty( $this->sizes ) ) {
?>
<p class="bloglo-widget-socials-size">
<label for="widget-socials-<?php echo esc_attr( $this->id ); ?>-<?php echo esc_attr( $this->number ); ?>-size">
<?php esc_html_e( 'Size', 'bloglo' ); ?>:
</label>
<select id="widget-socials-<?php echo esc_attr( $this->id ); ?>-<?php echo esc_attr( $this->number ); ?>-size" name="widget-socials[<?php echo esc_attr( $this->number ); ?>][size]" data-option-name="size">
<?php foreach ( $this->sizes as $key => $value ) { ?>
<option
value="<?php echo esc_attr( $key ); ?>"
<?php selected( $key, $this->values['size'], true ); ?>>
<?php echo esc_html( $value ); ?>
</option>
<?php } ?>
</select>
</p>
<?php
}
}
}
endif;