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/advanced-post-carousel.php +64 -60 1.0.6 → 1.3.18 View file →
@@ -19,10 +19,9 @@
19 19 Grid_Trait,
20 20 Post_Filters_Trait,
21 21 Post_Trait;
22 22
23 - private $_query,
24 - $is_slider;
23 + private $_query;
25 24
26 25 public function get_name()
27 26 {
28 27 return 'uicore-advanced-post-carousel';
@@ -46,12 +45,19 @@
46 45 public function get_styles()
47 46 {
48 47 $styles = [
49 48 'advanced-post-carousel',
49 + 'carousel',
50 + 'post-meta',
51 + 'filters' => [
52 + 'condition' => [
53 + 'post_filtering' => 'yes',
54 + ]
55 + ],
50 56 'animation', // hover animations
51 57 'entrance', // entrance basic style
52 58 ];
53 - if(!class_exists('\UiCore\Core') && !class_exists('\UiCoreAnimate\Base')){
59 + if (!class_exists('\UiCore\Core') && !class_exists('\UiCoreAnimate\Base')) {
54 60 $styles['e-animations'] = [ // entrance animations
55 61 'external' => true,
56 62 ];
57 63 }
@@ -58,32 +64,15 @@
58 64 return $styles;
59 65 }
60 66 public function get_scripts()
61 67 {
62 - return [
63 - 'carousel',
64 - 'utils/global-testimonial' => [
65 - 'condition' => [
66 - 'layout' => 'layout_5'
67 - ],
68 - ],
69 - 'utils/carousel-effects/circular' => [
70 - 'condition' => [
71 - 'animation_style' => 'circular',
72 - ]
73 - ],
74 - 'utils/carousel-effects/fade-and-blur' => [
75 - 'condition' => [
76 - 'animation_style' => 'fade_blur',
77 - ]
78 - ],
79 - 'entrance' => [
80 - 'condition' => [
81 - 'animate_items' => 'ui-e-grid-animate'
82 - ],
83 - ],
84 - ];
68 + return $this->TRAIT_get_carousel_scripts();
85 69 }
70 + public function has_widget_inner_wrapper(): bool
71 + {
72 + // TODO: remove after Optmized Markup experiment is merged to the core
73 + return ! \Elementor\Plugin::$instance->experiments->is_feature_active('e_optimized_markup');
74 + }
86 75
87 76 private function filter_missing_taxonomies($settings)
88 77 {
89 78 $taxonomy_filter_args = [
@@ -96,10 +85,10 @@
96 85 $taxonomies = get_taxonomies($taxonomy_filter_args, 'objects');
97 86
98 87 foreach ($taxonomies as $taxonomy => $object) {
99 88 $controll_id = 'posts-filter_' . $taxonomy . '_ids';
100 - \error_log($controll_id);
101 - \error_log(print_r($settings[$controll_id], true));
89 + //error_log($controll_id);
90 + //error_log(print_r($settings[$controll_id], true));
102 91
103 92 if (!isset($settings[$controll_id]) || empty($settings[$controll_id])) {
104 93 continue;
105 94 }
@@ -135,18 +124,18 @@
135 124 [
136 125 'label' => esc_html__('Carousel', 'uicore-elements'),
137 126 ]
138 127 );
139 - $this->TRAIT_register_carousel_additional_controls(); // Grid Layouts with old masonry control
128 + $this->TRAIT_register_carousel_additional_controls(); // Grid Layouts with old masonry control
140 129 $this->end_controls_section();
141 130
142 131 $this->start_controls_section(
143 - 'section_carousel_settings',
144 - [
145 - 'label' => __('Carousel Settings', 'uicore-elements'),
146 - ]
147 - );
148 - $this->TRAIT_register_carousel_settings_controls(); // Carousel settings
132 + 'section_carousel_settings',
133 + [
134 + 'label' => __('Carousel Settings', 'uicore-elements'),
135 + ]
136 + );
137 + $this->TRAIT_register_carousel_settings_controls(); // Carousel settings
149 138 $this->end_controls_section();
150 139
151 140 $this->TRAIT_register_navigation_controls();
152 141 $this->TRAIT_register_post_item_controls();
@@ -169,19 +158,19 @@
169 158 'label' => __('Animations', 'uicore-elements'),
170 159 'tab' => Controls_Manager::TAB_STYLE,
171 160 ]
172 161 );
173 - $this->TRAIT_register_entrance_animations_controls();
174 - $this->TRAIT_register_hover_animation_control(
175 - 'Item Hover Animation',
176 - [],
177 - ['underline'],
178 - );
179 - $this->TRAIT_register_post_animation_controls();
162 + $this->TRAIT_register_entrance_animations_controls();
163 + $this->TRAIT_register_hover_animation_control(
164 + 'Item Hover Animation',
165 + [],
166 + ['underline'],
167 + );
168 + $this->TRAIT_register_post_animation_controls();
180 169 $this->end_controls_section();
181 170
182 171 // Update post component controls
183 - $this->update_control('image_size', [
172 + $this->update_responsive_control('image_size', [
184 173 'condition' => [],
185 174 ]);
186 175 $this->update_control('content_padding', [
187 176 'default' => [
@@ -193,55 +182,70 @@
193 182 ],
194 183 ]);
195 184 $this->update_control('item_limit', [
196 185 'default' => [
197 - 'size' => 5,
186 + 'size' => 4,
198 187 ],
199 188 ]);
189 +
190 + // TODO: create new method to return animations list and use it throughout the plugin
191 + // Update carousel animations
192 + $this->update_control('animation_style', [
193 + 'options' => [
194 + 'circular' => esc_html__('Circular', 'uicore-elements'),
195 + 'fade_blur' => esc_html__('Fade Blur', 'uicore-elements'),
196 + 'default' => esc_html__('Default', 'uicore-elements'),
197 + ],
198 + ]);
200 199 }
201 200
202 - function content_template()
203 - {
204 - }
201 + function content_template() {}
205 202
206 203 protected function render()
207 204 {
208 -
209 - // Get query args and widget settings
205 + // Get query args, settings and post type slug
210 206 global $wp_query;
211 207 $default_query = $wp_query;
212 208 $settings = $this->get_settings();
213 - $this->TRAIT_query_posts($settings['item_limit']['size'], $settings['posts-filter_post_type']);
214 - $wp_query = $this->get_query();
215 209
216 210 // Get the quantity of items and creates a loop control
217 211 $items = $settings['item_limit']['size'];
218 212 $loops = 0;
219 213
220 - $this->TRAIT_render_filters();
214 + $this->TRAIT_render_center_loop_warning($items);
221 215
216 + // Build query
217 + $this->TRAIT_query_posts($settings, $wp_query->query);
218 + $wp_query = $this->get_query();
219 +
220 + $this->TRAIT_render_filters($settings);
221 +
222 222 // No posts found
223 223 if (!$wp_query->have_posts()) {
224 - echo '<p style="text-align:center">' . __('No posts found.', 'uicore-elements') . '</p>';
224 + echo '<p style="text-align:center">' . esc_html__('No posts found.', 'uicore-elements') . '</p>';
225 225 } else {
226 226
227 - ?>
227 +?>
228 228 <div class="ui-e-carousel swiper">
229 229 <div class='swiper-wrapper'>
230 230 <?php
231 231 while ($wp_query->have_posts()) {
232 - if ($settings['sticky'] && $items == $loops) {
233 - break; // sticky posts disregards posts per page, so ending the loop if $items == $loop forces the query respects the users item limit
234 - }
232 +
233 + // sticky posts disregards posts per page, so ending the loop if $items == $loop forces the query respects the users item limit
234 + // if ($settings['sticky'] && $items == $loops) {
235 + // break;
236 + // }
237 +
235 238 $wp_query->the_post();
236 - $this->TRAIT_render_item(true);
239 + $this->TRAIT_render_item($loops, true);
240 +
237 241 $loops++;
238 242 }
239 243 ?>
240 244 </div>
241 - <?php $this->TRAIT_render_carousel_navigations(); ?>
242 245 </div>
243 - <?php
246 + <?php $this->TRAIT_render_carousel_navigations($items); ?>
247 +<?php
244 248 }
245 249
246 250 //reset query
247 251 wp_reset_query();