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/testimonial-carousel.php +82 -82 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\Testimonial_Trait;
@@ -18,10 +20,8 @@
18 20
19 21 class TestimonialCarousel extends UiCoreWidget
20 22 {
21 23
22 - public $is_slider;
23 -
24 24 use Carousel_Trait;
25 25 use Testimonial_Trait;
26 26 use Animation_Trait;
27 27 use Item_Style_Component;
@@ -49,12 +49,13 @@
49 49 public function get_styles()
50 50 {
51 51 $styles = [
52 52 'testimonial-carousel',
53 + 'carousel',
53 54 'animation', // hover animations
54 55 'entrance', // entrance basic style
55 56 ];
56 - if(!class_exists('\UiCore\Core') && !class_exists('\UiCoreAnimate\Base')){
57 + if (!class_exists('\UiCore\Core') && !class_exists('\UiCoreAnimate\Base')) {
57 58 $styles['e-animations'] = [ // entrance animations
58 59 'external' => true,
59 60 ];
60 61 }
@@ -61,22 +62,22 @@
61 62 return $styles;
62 63 }
63 64 public function get_scripts()
64 65 {
65 - return [
66 - 'carousel',
66 + $scripts = [
67 67 'testimonial' => [
68 68 'condition' => [
69 69 'layout' => 'layout_5'
70 - ],
71 - ],
72 - 'entrance' => [
73 - 'condition' => [
74 - 'animate_items' => 'ui-e-grid-animate'
75 - ],
70 + ]
76 71 ]
77 - ];
72 + ];
73 + return array_merge($scripts, $this->TRAIT_get_carousel_scripts());
78 74 }
75 + public function has_widget_inner_wrapper(): bool
76 + {
77 + // TODO: remove after Optmized Markup experiment is merged to the core
78 + return ! \Elementor\Plugin::$instance->experiments->is_feature_active('e_optimized_markup');
79 + }
79 80 protected function register_controls()
80 81 {
81 82
82 83 $this->TRAIT_register_testimonial_repeater_controls('Testimonial Carousel Items'); // Repeater Controls
@@ -89,22 +90,22 @@
89 90 'tab' => Controls_Manager::TAB_CONTENT,
90 91 ]
91 92 );
92 93
93 - $this->TRAIT_register_specific_testimonial_controls('layout');
94 - $this->TRAIT_register_carousel_additional_controls(); // Carousel Additionals
95 - $this->TRAIT_register_testimonial_additional_controls(); // Testimonial Additionals
94 + $this->TRAIT_register_specific_testimonial_controls('layout');
95 + $this->TRAIT_register_carousel_additional_controls(); // Carousel Additionals
96 + $this->TRAIT_register_testimonial_additional_controls(); // Testimonial Additionals
96 97
97 98 $this->end_controls_section();
98 99
99 100 $this->start_controls_section(
100 - 'section_carousel_settings',
101 - [
102 - 'label' => __('Carousel Settings', 'uicore-elements'),
103 - ]
104 - );
101 + 'section_carousel_settings',
102 + [
103 + 'label' => __('Carousel Settings', 'uicore-elements'),
104 + ]
105 + );
105 106
106 - $this->TRAIT_register_carousel_settings_controls(); // Carousel settings
107 + $this->TRAIT_register_carousel_settings_controls(); // Carousel settings
107 108
108 109 $this->end_controls_section();
109 110
110 111 $this->TRAIT_register_navigation_controls(); // Navigation settings
@@ -109,58 +110,58 @@
109 110
110 111 $this->TRAIT_register_navigation_controls(); // Navigation settings
111 112
112 113 $this->start_controls_section(
113 - 'section_style_review_items',
114 - [
115 - 'label' => esc_html__( 'Items', 'uicore-elements' ),
116 - 'tab' => Controls_Manager::TAB_STYLE,
117 - ]
118 - );
114 + 'section_style_review_items',
115 + [
116 + 'label' => esc_html__('Items', 'uicore-elements'),
117 + 'tab' => Controls_Manager::TAB_STYLE,
118 + ]
119 + );
119 120
120 - // move it to specific controls
121 - $this->add_control(
122 - 'item_gap',
123 - [
124 - 'label' => esc_html__( 'Inner Content Spacing', 'uicore-elements' ),
125 - 'type' => Controls_Manager::SLIDER,
126 - 'size_units' => [ 'px', '%', 'em' ],
127 - 'range' => [
128 - 'px' => [
129 - 'min' => 0,
130 - 'max' => 50,
131 - 'step' => 1,
132 - ],
133 - '%' => [
134 - 'min' => 0,
135 - 'max' => 100,
136 - ],
121 + // move it to specific controls
122 + $this->add_control(
123 + 'item_gap',
124 + [
125 + 'label' => esc_html__('Inner Content Spacing', 'uicore-elements'),
126 + 'type' => Controls_Manager::SLIDER,
127 + 'size_units' => ['px', '%', 'em'],
128 + 'range' => [
129 + 'px' => [
130 + 'min' => 0,
131 + 'max' => 50,
132 + 'step' => 1,
137 133 ],
138 - 'default' => [
139 - 'unit' => 'px',
140 - 'size' => 15,
134 + '%' => [
135 + 'min' => 0,
136 + 'max' => 100,
141 137 ],
142 - 'selectors' => [
143 - '{{WRAPPER}} .ui-e-testimonial-flex' => 'margin-bottom: {{SIZE}}{{UNIT}};',
144 - ],
145 - 'conditions' => [
146 - 'relation' => 'and',
147 - 'terms' => [
148 - [
149 - 'name' => 'image_inline',
150 - 'operator' => '===',
151 - 'value' => 'yes',
152 - ],
153 - [
154 - 'name' => 'layout',
155 - 'operator' => 'in',
156 - 'value' => ['layout_2'],
157 - ],
138 + ],
139 + 'default' => [
140 + 'unit' => 'px',
141 + 'size' => 15,
142 + ],
143 + 'selectors' => [
144 + '{{WRAPPER}} .ui-e-testimonial-flex' => 'margin-bottom: {{SIZE}}{{UNIT}};',
145 + ],
146 + 'conditions' => [
147 + 'relation' => 'and',
148 + 'terms' => [
149 + [
150 + 'name' => 'image_inline',
151 + 'operator' => '===',
152 + 'value' => 'yes',
158 153 ],
154 + [
155 + 'name' => 'layout',
156 + 'operator' => 'in',
157 + 'value' => ['layout_2'],
158 + ],
159 159 ],
160 - ]
161 - );
162 - $this->TRAIT_register_all_item_style_controls();
160 + ],
161 + ]
162 + );
163 + $this->TRAIT_register_all_item_style_controls();
163 164
164 165 $this->end_controls_section();
165 166
166 167 $this->TRAIT_register_style_controls(); // All Testimonial components styles
@@ -173,9 +174,9 @@
173 174 'tab' => Controls_Manager::TAB_STYLE,
174 175 ]
175 176 );
176 177
177 - $this->TRAIT_register_testimonial_animation_controls();
178 + $this->TRAIT_register_testimonial_animation_controls();
178 179
179 180 $this->end_controls_section();
180 181
181 182 // We need to set border radius as variable to use item radius on other components on swiper elements
@@ -187,23 +188,22 @@
187 188 ]);
188 189 }
189 190 public function render()
190 191 {
191 - $ID = $this->get_ID();
192 192 $settings = $this->get_settings_for_display();
193 -
194 - $this->add_render_attribute('review-carousel', 'class', ['swiper-wrapper', "carousel-$ID"]);
195 - ?>
196 - <div class="ui-e-carousel swiper">
197 - <div class='swiper-wrapper'>
198 - <?php
199 - foreach ( $settings['review_items'] as $index => $item ) :
200 - $this->TRAIT_render_review_item($item, $settings['layout']);
201 - endforeach;
202 - ?>
203 - </div>
204 - <?php $this->TRAIT_render_carousel_navigations(); ?>
193 + $total_slides = count($settings['review_items']);
194 + $this->TRAIT_render_center_loop_warning($total_slides);
195 +?>
196 + <div class="ui-e-carousel swiper">
197 + <div class='swiper-wrapper'>
198 + <?php
199 + foreach ($settings['review_items'] as $index => $item) :
200 + $this->TRAIT_render_review_item($item, $settings['layout']);
201 + endforeach;
202 + ?>
205 203 </div>
206 - <?php
204 + </div>
205 + <?php $this->TRAIT_render_carousel_navigations($total_slides); ?>
206 +<?php
207 207 }
208 208 }
209 -\Elementor\Plugin::instance()->widgets_manager->register(new TestimonialCarousel());
209 +\Elementor\Plugin::instance()->widgets_manager->register(new TestimonialCarousel());