PluginProbe
UiCore Elements – Free widgets and templates for Elementor / 1.3.17
UiCore Elements – Free widgets and templates for Elementor v1.3.17
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 +74 -64 1.0.14 → 1.3.17 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 }
@@ -61,8 +64,13 @@
61 64 public function get_scripts()
62 65 {
63 66 return $this->TRAIT_get_carousel_scripts();
64 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 + }
65 73 protected function register_controls()
66 74 {
67 75
68 76 $this->TRAIT_register_logo_repeater_controls('Logo Carousel Items'); // Repeater Controls
@@ -67,18 +75,18 @@
67 75
68 76 $this->TRAIT_register_logo_repeater_controls('Logo Carousel Items'); // Repeater Controls
69 77
70 78 $this->start_controls_section(
71 - 'section_carousel_settings',
72 - [
73 - 'label' => __('Carousel Settings', 'uicore-elements'),
74 - ]
75 - );
79 + 'section_carousel_settings',
80 + [
81 + 'label' => __('Carousel Settings', 'uicore-elements'),
82 + ]
83 + );
76 84
77 - $this->TRAIT_register_carousel_additional_controls(); // Carousel Additionals
78 - $this->TRAIT_register_logo_adittional_controls();
79 - $this->add_control('add_carousel_divider',['type' => Controls_Manager::DIVIDER,]);
80 - $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
81 89
82 90 $this->end_controls_section();
83 91
84 92 $this->TRAIT_register_navigation_controls(); // Navigation settings
@@ -83,48 +91,48 @@
83 91
84 92 $this->TRAIT_register_navigation_controls(); // Navigation settings
85 93
86 94 $this->start_controls_section(
87 - 'section_style_review_items',
88 - [
89 - 'label' => esc_html__( 'Logo Carousel', 'uicore-elements' ),
90 - 'tab' => Controls_Manager::TAB_STYLE,
91 - ]
92 - );
95 + 'section_style_review_items',
96 + [
97 + 'label' => esc_html__('Logo Carousel', 'uicore-elements'),
98 + 'tab' => Controls_Manager::TAB_STYLE,
99 + ]
100 + );
93 101
94 - $this->start_controls_tabs( 'tabs_item_style' );
102 + $this->start_controls_tabs('tabs_item_style');
95 103
96 - $this->start_controls_tab(
97 - 'tab_item_normal',
98 - [
99 - 'label' => esc_html__( 'Normal', 'uicore-elements' ),
100 - ]
101 - );
102 - $this->TRAIT_register_normal_item_style_controls(false);
103 - $this->TRAIT_register_logos_image_style_controls('normal');
104 - $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();
105 113
106 - $this->start_controls_tab(
107 - 'tab_item_hover',
108 - [
109 - 'label' => esc_html__( 'Hover', 'uicore-elements' ),
110 - ]
111 - );
112 - $this->TRAIT_register_hover_item_style_controls(false);
113 - $this->TRAIT_register_logos_image_style_controls('hover');
114 - $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();
115 123
116 - $this->start_controls_tab(
117 - 'tab_item_active',
118 - [
119 - 'label' => esc_html__( 'Active', 'uicore-elements' ),
120 - ]
121 - );
122 - $this->TRAIT_register_active_item_style_controls(false);
123 - $this->TRAIT_register_logos_image_style_controls('active');
124 - $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();
125 133
126 - $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()
127 135
128 136 $this->end_controls_section();
129 137
130 138 $this->TRAIT_register_navigation_style_controls(); // Carousel Navigation Styles
@@ -136,19 +144,19 @@
136 144 'tab' => Controls_Manager::TAB_STYLE,
137 145 ]
138 146 );
139 147
140 - $this->TRAIT_register_entrance_animations_controls();
141 - $this->TRAIT_register_hover_animation_control(
142 - 'Item Hover Animation',
143 - [],
144 - ['underline']
145 - );
146 - $this->TRAIT_register_hover_animation_control(
147 - 'Logo Hover Animation',
148 - [],
149 - ['underline']
150 - );
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 + );
151 159
152 160 $this->end_controls_section();
153 161
154 162 // Remove unused logo control
@@ -155,15 +163,17 @@
155 163 $this->remove_control('height');
156 164 }
157 165 public function render()
158 166 {
159 - ?>
160 - <div class="ui-e-carousel swiper">
161 - <div class='swiper-wrapper'>
162 - <?php $this->TRAIT_render_logo_item(); ?>
163 - </div>
164 - <?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(); ?>
165 173 </div>
166 - <?php
174 + </div>
175 + <?php $this->TRAIT_render_carousel_navigations($total_slides); ?>
176 +<?php
167 177 }
168 178 }
169 -\Elementor\Plugin::instance()->widgets_manager->register(new LogoCarousel());
179 +\Elementor\Plugin::instance()->widgets_manager->register(new LogoCarousel());