PluginProbe
UiCore Elements – Free widgets and templates for Elementor / 1.3.18
UiCore Elements – Free widgets and templates for Elementor v1.3.18
1.3.18 1.3.17 1.3.16 trunk 1.0.0 1.0.1 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.2.0 1.2.1 1.2.2 1.2.3 All 42 releases
← All changes | includes/widgets/logo-carousel.php +75 -76 1.0.4 → 1.3.18 View file →
@@ -1,6 +1,8 @@
1 1 <?php
2 +
2 3 namespace UiCoreElements;
4 +
3 5 use Elementor\Controls_Manager;
4 6 use UiCoreElements\UiCoreWidget;
5 7 use UiCoreElements\Utils\Carousel_Trait;
6 8 use UiCoreElements\Utils\Logo_Trait;
@@ -47,12 +49,13 @@
47 49 public function get_styles()
48 50 {
49 51 $styles = [
50 52 'logo-carousel',
53 + 'carousel',
51 54 'animation', // hover animations
52 55 'entrance', // entrance basic style
53 56 ];
54 - if(!class_exists('\UiCore\Core') && !class_exists('\UiCoreAnimate\Base')){
57 + if (!class_exists('\UiCore\Core') && !class_exists('\UiCoreAnimate\Base')) {
55 58 $styles['e-animations'] = [ // entrance animations
56 59 'external' => true,
57 60 ];
58 61 }
@@ -59,17 +62,15 @@
59 62 return $styles;
60 63 }
61 64 public function get_scripts()
62 65 {
63 - return [
64 - 'carousel',
65 - 'entrance' => [
66 - 'condition' => [
67 - 'animate_items' => 'ui-e-grid-animate'
68 - ],
69 - ]
70 - ];
66 + return $this->TRAIT_get_carousel_scripts();
71 67 }
68 + public function has_widget_inner_wrapper(): bool
69 + {
70 + // TODO: remove after Optmized Markup experiment is merged to the core
71 + return ! \Elementor\Plugin::$instance->experiments->is_feature_active('e_optimized_markup');
72 + }
72 73 protected function register_controls()
73 74 {
74 75
75 76 $this->TRAIT_register_logo_repeater_controls('Logo Carousel Items'); // Repeater Controls
@@ -74,18 +75,18 @@
74 75
75 76 $this->TRAIT_register_logo_repeater_controls('Logo Carousel Items'); // Repeater Controls
76 77
77 78 $this->start_controls_section(
78 - 'section_carousel_settings',
79 - [
80 - 'label' => __('Carousel Settings', 'uicore-elements'),
81 - ]
82 - );
79 + 'section_carousel_settings',
80 + [
81 + 'label' => __('Carousel Settings', 'uicore-elements'),
82 + ]
83 + );
83 84
84 - $this->TRAIT_register_carousel_additional_controls(); // Carousel Additionals
85 - $this->TRAIT_register_logo_adittional_controls();
86 - $this->add_control('add_carousel_divider',['type' => Controls_Manager::DIVIDER,]);
87 - $this->TRAIT_register_carousel_settings_controls(); // Carousel settings
85 + $this->TRAIT_register_carousel_additional_controls(); // Carousel Additionals
86 + $this->TRAIT_register_logo_adittional_controls();
87 + $this->add_control('add_carousel_divider', ['type' => Controls_Manager::DIVIDER,]);
88 + $this->TRAIT_register_carousel_settings_controls(); // Carousel settings
88 89
89 90 $this->end_controls_section();
90 91
91 92 $this->TRAIT_register_navigation_controls(); // Navigation settings
@@ -90,48 +91,48 @@
90 91
91 92 $this->TRAIT_register_navigation_controls(); // Navigation settings
92 93
93 94 $this->start_controls_section(
94 - 'section_style_review_items',
95 - [
96 - 'label' => esc_html__( 'Logo Carousel', 'uicore-elements' ),
97 - 'tab' => Controls_Manager::TAB_STYLE,
98 - ]
99 - );
95 + 'section_style_review_items',
96 + [
97 + 'label' => esc_html__('Logo Carousel', 'uicore-elements'),
98 + 'tab' => Controls_Manager::TAB_STYLE,
99 + ]
100 + );
100 101
101 - $this->start_controls_tabs( 'tabs_item_style' );
102 + $this->start_controls_tabs('tabs_item_style');
102 103
103 - $this->start_controls_tab(
104 - 'tab_item_normal',
105 - [
106 - 'label' => esc_html__( 'Normal', 'uicore-elements' ),
107 - ]
108 - );
109 - $this->TRAIT_register_normal_item_style_controls(false);
110 - $this->TRAIT_register_logos_image_style_controls('normal');
111 - $this->end_controls_tab();
104 + $this->start_controls_tab(
105 + 'tab_item_normal',
106 + [
107 + 'label' => esc_html__('Normal', 'uicore-elements'),
108 + ]
109 + );
110 + $this->TRAIT_register_normal_item_style_controls(false);
111 + $this->TRAIT_register_logos_image_style_controls('normal');
112 + $this->end_controls_tab();
112 113
113 - $this->start_controls_tab(
114 - 'tab_item_hover',
115 - [
116 - 'label' => esc_html__( 'Hover', 'uicore-elements' ),
117 - ]
118 - );
119 - $this->TRAIT_register_hover_item_style_controls(false);
120 - $this->TRAIT_register_logos_image_style_controls('hover');
121 - $this->end_controls_tab();
114 + $this->start_controls_tab(
115 + 'tab_item_hover',
116 + [
117 + 'label' => esc_html__('Hover', 'uicore-elements'),
118 + ]
119 + );
120 + $this->TRAIT_register_hover_item_style_controls(false);
121 + $this->TRAIT_register_logos_image_style_controls('hover');
122 + $this->end_controls_tab();
122 123
123 - $this->start_controls_tab(
124 - 'tab_item_active',
125 - [
126 - 'label' => esc_html__( 'Active', 'uicore-elements' ),
127 - ]
128 - );
129 - $this->TRAIT_register_active_item_style_controls(false);
130 - $this->TRAIT_register_logos_image_style_controls('active');
131 - $this->end_controls_tabs();
124 + $this->start_controls_tab(
125 + 'tab_item_active',
126 + [
127 + 'label' => esc_html__('Active', 'uicore-elements'),
128 + ]
129 + );
130 + $this->TRAIT_register_active_item_style_controls(false);
131 + $this->TRAIT_register_logos_image_style_controls('active');
132 + $this->end_controls_tabs();
132 133
133 - $this->end_controls_tabs(); // Necessary because register_testimonial_card_controls() OPENS but DON'T close start_controls_tabs()
134 + $this->end_controls_tabs(); // Necessary because register_testimonial_card_controls() OPENS but DON'T close start_controls_tabs()
134 135
135 136 $this->end_controls_section();
136 137
137 138 $this->TRAIT_register_navigation_style_controls(); // Carousel Navigation Styles
@@ -143,19 +144,19 @@
143 144 'tab' => Controls_Manager::TAB_STYLE,
144 145 ]
145 146 );
146 147
147 - $this->TRAIT_register_entrance_animations_controls();
148 - $this->TRAIT_register_hover_animation_control(
149 - 'Item Hover Animation',
150 - [],
151 - ['underline']
152 - );
153 - $this->TRAIT_register_hover_animation_control(
154 - 'Logo Hover Animation',
155 - [],
156 - ['underline']
157 - );
148 + $this->TRAIT_register_entrance_animations_controls();
149 + $this->TRAIT_register_hover_animation_control(
150 + 'Item Hover Animation',
151 + [],
152 + ['underline']
153 + );
154 + $this->TRAIT_register_hover_animation_control(
155 + 'Logo Hover Animation',
156 + [],
157 + ['underline']
158 + );
158 159
159 160 $this->end_controls_section();
160 161
161 162 // Remove unused logo control
@@ -162,19 +163,17 @@
162 163 $this->remove_control('height');
163 164 }
164 165 public function render()
165 166 {
166 - $ID = $this->get_ID();
167 - $settings = $this->get_settings_for_display();
168 -
169 - $this->add_render_attribute('review-carousel', 'class', ['ui-e-carousel', "carousel-$ID"]);
170 - ?>
171 - <div class="ui-e-carousel swiper">
172 - <div class='swiper-wrapper'>
173 - <?php $this->TRAIT_render_logo_item(); ?>
174 - </div>
175 - <?php $this->TRAIT_render_carousel_navigations(); ?>
167 + $total_slides = count($this->get_settings_for_display('logo_list'));
168 + $this->TRAIT_render_center_loop_warning($total_slides);
169 +?>
170 + <div class="ui-e-carousel swiper">
171 + <div class='swiper-wrapper'>
172 + <?php $this->TRAIT_render_logo_item(); ?>
176 173 </div>
177 - <?php
174 + </div>
175 + <?php $this->TRAIT_render_carousel_navigations($total_slides); ?>
176 +<?php
178 177 }
179 178 }
180 -\Elementor\Plugin::instance()->widgets_manager->register(new LogoCarousel());
179 +\Elementor\Plugin::instance()->widgets_manager->register(new LogoCarousel());