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 +80 -70 1.0.8 → 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;
@@ -47,12 +49,13 @@
47 49 public function get_styles()
48 50 {
49 51 $styles = [
50 52 'testimonial-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 }
@@ -60,16 +63,21 @@
60 63 }
61 64 public function get_scripts()
62 65 {
63 66 $scripts = [
64 - 'utils/global-testimonial' => [
67 + 'testimonial' => [
65 68 'condition' => [
66 69 'layout' => 'layout_5'
67 70 ]
68 71 ]
69 72 ];
70 - return array_merge($scripts, $this->TRAIT_get_scripts());
73 + return array_merge($scripts, $this->TRAIT_get_carousel_scripts());
71 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 + }
72 80 protected function register_controls()
73 81 {
74 82
75 83 $this->TRAIT_register_testimonial_repeater_controls('Testimonial Carousel Items'); // Repeater Controls
@@ -82,22 +90,22 @@
82 90 'tab' => Controls_Manager::TAB_CONTENT,
83 91 ]
84 92 );
85 93
86 - $this->TRAIT_register_specific_testimonial_controls('layout');
87 - $this->TRAIT_register_carousel_additional_controls(); // Carousel Additionals
88 - $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
89 97
90 98 $this->end_controls_section();
91 99
92 100 $this->start_controls_section(
93 - 'section_carousel_settings',
94 - [
95 - 'label' => __('Carousel Settings', 'uicore-elements'),
96 - ]
97 - );
101 + 'section_carousel_settings',
102 + [
103 + 'label' => __('Carousel Settings', 'uicore-elements'),
104 + ]
105 + );
98 106
99 - $this->TRAIT_register_carousel_settings_controls(); // Carousel settings
107 + $this->TRAIT_register_carousel_settings_controls(); // Carousel settings
100 108
101 109 $this->end_controls_section();
102 110
103 111 $this->TRAIT_register_navigation_controls(); // Navigation settings
@@ -102,58 +110,58 @@
102 110
103 111 $this->TRAIT_register_navigation_controls(); // Navigation settings
104 112
105 113 $this->start_controls_section(
106 - 'section_style_review_items',
107 - [
108 - 'label' => esc_html__( 'Items', 'uicore-elements' ),
109 - 'tab' => Controls_Manager::TAB_STYLE,
110 - ]
111 - );
114 + 'section_style_review_items',
115 + [
116 + 'label' => esc_html__('Items', 'uicore-elements'),
117 + 'tab' => Controls_Manager::TAB_STYLE,
118 + ]
119 + );
112 120
113 - // move it to specific controls
114 - $this->add_control(
115 - 'item_gap',
116 - [
117 - 'label' => esc_html__( 'Inner Content Spacing', 'uicore-elements' ),
118 - 'type' => Controls_Manager::SLIDER,
119 - 'size_units' => [ 'px', '%', 'em' ],
120 - 'range' => [
121 - 'px' => [
122 - 'min' => 0,
123 - 'max' => 50,
124 - 'step' => 1,
125 - ],
126 - '%' => [
127 - 'min' => 0,
128 - 'max' => 100,
129 - ],
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,
130 133 ],
131 - 'default' => [
132 - 'unit' => 'px',
133 - 'size' => 15,
134 + '%' => [
135 + 'min' => 0,
136 + 'max' => 100,
134 137 ],
135 - 'selectors' => [
136 - '{{WRAPPER}} .ui-e-testimonial-flex' => 'margin-bottom: {{SIZE}}{{UNIT}};',
137 - ],
138 - 'conditions' => [
139 - 'relation' => 'and',
140 - 'terms' => [
141 - [
142 - 'name' => 'image_inline',
143 - 'operator' => '===',
144 - 'value' => 'yes',
145 - ],
146 - [
147 - 'name' => 'layout',
148 - 'operator' => 'in',
149 - 'value' => ['layout_2'],
150 - ],
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',
151 153 ],
154 + [
155 + 'name' => 'layout',
156 + 'operator' => 'in',
157 + 'value' => ['layout_2'],
158 + ],
152 159 ],
153 - ]
154 - );
155 - $this->TRAIT_register_all_item_style_controls();
160 + ],
161 + ]
162 + );
163 + $this->TRAIT_register_all_item_style_controls();
156 164
157 165 $this->end_controls_section();
158 166
159 167 $this->TRAIT_register_style_controls(); // All Testimonial components styles
@@ -166,9 +174,9 @@
166 174 'tab' => Controls_Manager::TAB_STYLE,
167 175 ]
168 176 );
169 177
170 - $this->TRAIT_register_testimonial_animation_controls();
178 + $this->TRAIT_register_testimonial_animation_controls();
171 179
172 180 $this->end_controls_section();
173 181
174 182 // We need to set border radius as variable to use item radius on other components on swiper elements
@@ -181,19 +189,21 @@
181 189 }
182 190 public function render()
183 191 {
184 192 $settings = $this->get_settings_for_display();
185 - ?>
186 - <div class="ui-e-carousel swiper">
187 - <div class='swiper-wrapper'>
188 - <?php
189 - foreach ( $settings['review_items'] as $index => $item ) :
190 - $this->TRAIT_render_review_item($item, $settings['layout']);
191 - endforeach;
192 - ?>
193 - </div>
194 - <?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 + ?>
195 203 </div>
196 - <?php
204 + </div>
205 + <?php $this->TRAIT_render_carousel_navigations($total_slides); ?>
206 +<?php
197 207 }
198 208 }
199 -\Elementor\Plugin::instance()->widgets_manager->register(new TestimonialCarousel());
209 +\Elementor\Plugin::instance()->widgets_manager->register(new TestimonialCarousel());