File "w-socialcounters.php"
Full Path: /home/elegucvf/public_html/video/wp-content/plugins/atlas-core/elementor/widgets/w-socialcounters.php
File size: 5.87 KB
MIME-type: text/x-php
Charset: utf-8
<?php
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
class TH90_W_Socialcounters extends \Elementor\Widget_Base {
public function get_name() {
return 'w-socialcounters';
}
public function get_title() {
return __( 'Social Counters', 'atlas-core' );
}
public function get_icon() {
return 'eicon-social-icons th90-widget-icon';
}
public function get_categories() {
return [ sanitize_key( wp_get_theme()->name ) . '-elements' ];
}
protected function register_controls() {
$this->start_controls_section(
'section_general',
[
'label' => __( 'General', 'atlas-core' ),
]
);
$this->add_control(
'layout',
[
'label' => esc_html__( 'Style', 'elementor' ),
'type' => \Elementor\Controls_Manager::CHOOSE,
'toggle' => false,
'default' => 'inline',
'options' => [
'inline' => [
'title' => esc_html__( 'Inline', 'elementor' ),
'icon' => 'eicon-ellipsis-h',
],
'block' => [
'title' => esc_html__( 'Block', 'elementor' ),
'icon' => 'eicon-editor-list-ul',
],
'grid' => [
'title' => esc_html__( 'Grid', 'elementor' ),
'icon' => 'eicon-gallery-grid',
],
],
]
);
$this->add_responsive_control(
'columns',
[
'label' => __( 'Columns', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::SLIDER,
'range' => [
'px' => [
'min' => 1,
'max' => 15,
],
],
'selectors' => [
'{{WRAPPER}} .counters-grid .social-counters, {{WRAPPER}} .counters-block .social-counters' => 'grid-template-columns: repeat({{SIZE}}, 1fr);',
],
]
);
$this->add_responsive_control(
'space',
[
'label' => esc_html__( 'Space between icon', 'atlas-core' ),
'type' => \Elementor\Controls_Manager::SLIDER,
'size_units' => [ 'px' ],
'range' => [
'px' => [
'min' => 0,
'max' => 200,
],
],
'selectors' => [
'{{WRAPPER}} .counters-grid .social-counters, {{WRAPPER}} .counters-block .social-counters' => 'grid-gap: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .counters-inline .social-counters' => 'gap: {{SIZE}}{{UNIT}};',
],
]
);
foreach ( th90_default_options()['social_counters'] as $key => $value ) {
if ( 'facebook' == $key || 'twitter' == $key || 'linkedin' == $key || 'youtube' == $key || 'instagram' == $key ) {
$default_url = '#';
$default_count = '10000';
} else {
$default_url = '';
$default_count = '';
}
$this->add_control(
th90_convert_to_id( $key ),
[
'label' => $value . ' URL',
'type' => \Elementor\Controls_Manager::TEXT,
'default' => $default_url,
'label_block' => true,
]
);
$this->add_control(
th90_convert_to_id( $key ) . '_count',
[
'label' => $value . ' count',
'type' => \Elementor\Controls_Manager::TEXT,
'default' => $default_count,
'label_block' => true,
'separator' => 'after',
]
);
}
/*$this->add_group_control(
\Elementor\Group_Control_Typography::get_type(),
[
'name' => 'counter_typo',
'label' => esc_html__( 'Counter typography', 'atlas-core' ),
'selector' => '{{WRAPPER}} .counter-desc',
]
);*/
$this->end_controls_section();
/* Widget Boxed */
$controls = new TH90_Controls();
$controls->box_settings( $this );
}
/**
* Render the widget output on the frontend.
*
* Written in PHP and used to generate the final HTML.
*/
protected function render() {
global $block_id;
$block_id++;
$atts = $this->get_settings_for_display();
$wrapper_classes = array_merge(
array(
'th90-block',
'block-counters',
'counters-' . $atts['layout'],
),
th90_box_class( $atts )
);
?>
<div id="th90-block_<?php echo absint( $block_id ); ?>" class="<?php echo esc_attr( implode( ' ', array_filter( $wrapper_classes ) ) ); ?>">
<?php
th90_box_heading( $atts );
# Open links in a new tab? ----------
$new_window = ' target="_blank" ';
# Get the counters data ----------
$default_socials_c = $socials_c = array();
foreach ( th90_default_options()['social_counters'] as $key => $value ) {
foreach ( $atts as $atts_key => $atts_value ) {
if( $atts_key == $key ) {
$socials_c[$atts_key] = $atts_value;
}
if ( $atts_key == $key . '_count' ) {
$socials_c_count[$atts_key] = $atts_value;
}
}
$default_socials_c[$key] = '';
}
$socials_c = wp_parse_args( $socials_c, $default_socials_c );
$social_classes = array(
'social-counters',
);
?>
<div class="<?php echo esc_attr( implode( ' ', array_filter( $social_classes ) ) ); ?>">
<?php
foreach ( $socials_c as $key => $value ) {
if ( $value ) {
?>
<a class="social-counter<?php echo esc_attr( 'block' == $atts['layout'] ? ' counter-' . $key : '' ); ?>" href="<?php echo $value; ?>"<?php echo $new_window ?>>
<span class="counter-icon social-icon<?php echo esc_attr( 'grid' == $atts['layout'] ? ' counter-' . $key : '' ); ?>">
<?php
th90_svg_icon_social( $key );
if ( 'grid' !== $atts['layout'] ) {
echo '<span class="counter-text">' . th90_default_options()['social_counters'][$key] . '</span>';
}
?>
</span>
<span class="counter-desc">
<?php
if ( 'grid' == $atts['layout'] ) {
echo '<span class="counter-text">' . th90_default_options()['social_counters'][$key] . '</span>';
}
?>
<span class="cmeta<?php echo esc_attr( 'grid' == $atts['layout'] ? ' cmeta-' . $key : '' ); ?>">
<?php echo th90_number_format_short( absint( $atts[$key . '_count'] ) ); ?>
</span>
</span>
</a>
<?php
}
}
?>
</div>
</div>
<?php
}
/**
* Render the widget output in the editor.
*
* Written as a Backbone JavaScript template and used to generate the live preview.
*/
protected function content_template() {}
}