PluginProbe
Ultimate Post Kit – Elementor Post Grid, Post Carousel, Post Slider & Blog Layout Widgets / 4.1.2
Ultimate Post Kit – Elementor Post Grid, Post Carousel, Post Slider & Blog Layout Widgets v4.1.2
4.5.6 4.5.5 4.5.4 4.2.1 4.2.2 4.2.3 4.5.0 4.5.2 4.5.3 4.2.0 4.1.18 4.1.17 4.1.16 4.1.15 4.1.14 4.1.13 4.1.12 4.1.11 4.1.10 4.1.9 4.1.8 4.0.9 4.1.0 4.1.1 4.1.2 All 148 releases
ultimate-post-kit / traits / global-swiper-functions.php

global-swiper-functions.php in Ultimate Post Kit – Elementor Post Grid, Post Carousel, Post Slider & Blog Layout Widgets 4.1.2, at traits/global-swiper-functions.php

236 lines 9.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace UltimatePostKit\Traits;
4
5 use Elementor\Plugin;
6
7 defined( 'ABSPATH' ) || die();
8
9 trait Global_Swiper_Functions {
10
11 function render_header_attribute( $name ) {
12 $id = 'upk-' . $name . '-carousel-' . $this->get_id();
13 $settings = $this->get_settings_for_display();
14 $elementor_vp_lg = get_option( 'elementor_viewport_lg' );
15 $elementor_vp_md = get_option( 'elementor_viewport_md' );
16 $viewport_lg = ! empty( $elementor_vp_lg ) ? $elementor_vp_lg - 1 : 1023;
17 $viewport_md = ! empty( $elementor_vp_md ) ? $elementor_vp_md - 1 : 767;
18
19 $this->add_render_attribute( 'carousel', 'id', $id );
20 $this->add_render_attribute( 'carousel', 'class', [ 'upk-' . $name . '-carousel' ] );
21
22 if ( 'arrows' == $settings['navigation'] ) {
23 $this->add_render_attribute( 'carousel', 'class', 'upk-arrows-align-' . $settings['arrows_position'] );
24 } elseif ( 'dots' == $settings['navigation'] ) {
25 $this->add_render_attribute( 'carousel', 'class', 'upk-dots-align-' . $settings['dots_position'] );
26 } elseif ( 'both' == $settings['navigation'] ) {
27 $this->add_render_attribute( 'carousel', 'class', 'upk-arrows-dots-align-' . $settings['both_position'] );
28 } elseif ( 'arrows-fraction' == $settings['navigation'] ) {
29 $this->add_render_attribute( 'carousel', 'class', 'upk-arrows-dots-align-' . $settings['arrows_fraction_position'] );
30 }
31
32 if ( 'arrows-fraction' == $settings['navigation'] ) {
33 $pagination_type = 'fraction';
34 } elseif ( 'both' == $settings['navigation'] or 'dots' == $settings['navigation'] ) {
35 $pagination_type = 'bullets';
36 } elseif ( 'progressbar' == $settings['navigation'] ) {
37 $pagination_type = 'progressbar';
38 } else {
39 $pagination_type = '';
40 }
41
42 $this->add_render_attribute(
43 [
44 'carousel' => [
45 'data-settings' => [
46 wp_json_encode( array_filter( [
47 "autoplay" => ( "yes" == $settings["autoplay"] ) ? [ "delay" => $settings["autoplay_speed"] ] : false,
48 "loop" => ( $settings["loop"] == "yes" ) ? true : false,
49 "speed" => $settings["speed"]["size"],
50 "pauseOnHover" => ( "yes" == $settings["pauseonhover"] ) ? true : false,
51 "slidesPerView" => isset($settings["columns_mobile"]) ? (int)$settings["columns_mobile"] : 1,
52 "slidesPerGroup" => isset($settings["slides_to_scroll_mobile"]) ? (int)$settings["slides_to_scroll_mobile"] : 1,
53 "spaceBetween" => !empty($settings["item_gap_mobile"]["size"]) ? (int)$settings["item_gap_mobile"]["size"] : 0,
54 "centeredSlides" => ( $settings["centered_slides"] === "yes" ) ? true : false,
55 "grabCursor" => ( $settings["grab_cursor"] === "yes" ) ? true : false,
56 "effect" => $settings["skin"],
57 "observer" => ( $settings["observer"] ) ? true : false,
58 "observeParents" => ( $settings["observer"] ) ? true : false,
59 "direction" => $settings['direction'],
60 "watchSlidesVisibility" => true,
61 "watchSlidesProgress" => true,
62 "mousewheel" => ( $settings["mousewheel"] === "yes" ) ? true : false,
63 "breakpoints" => [
64 (int) $viewport_md => [
65 "slidesPerView" => isset($settings["columns_tablet"]) ? (int)$settings["columns_tablet"] : 2,
66 "spaceBetween" => !empty($settings["item_gap_tablet"]["size"]) ? (int)$settings["item_gap_tablet"]["size"] : 0,
67 "slidesPerGroup" => isset($settings["slides_to_scroll_tablet"]) ? (int)$settings["slides_to_scroll_tablet"] : 1,
68 ],
69 (int) $viewport_lg => [
70 "slidesPerView" => isset($settings["columns"]) ? (int)$settings["columns"] : 3,
71 "spaceBetween" => !empty($settings["item_gap"]["size"]) ? (int)$settings["item_gap"]["size"] : 0,
72 "slidesPerGroup" => isset($settings["slides_to_scroll"]) ? (int)$settings["slides_to_scroll"] : 1,
73 ]
74 ],
75 "navigation" => [
76 "nextEl" => "#" . $id . " .upk-navigation-next",
77 "prevEl" => "#" . $id . " .upk-navigation-prev",
78 ],
79 "pagination" => [
80 "el" => "#" . $id . " .swiper-pagination",
81 "type" => $pagination_type,
82 "clickable" => "true",
83 'dynamicBullets' => ( "yes" == $settings["dynamic_bullets"] ) ? true : false,
84 ],
85 "scrollbar" => [
86 "el" => "#" . $id . " .swiper-scrollbar",
87 "hide" => "true",
88 ],
89 'coverflowEffect' => [
90 'rotate' => ( "yes" == $settings["coverflow_toggle"] ) ? $settings["coverflow_rotate"]["size"] : 50,
91 'stretch' => ( "yes" == $settings["coverflow_toggle"] ) ? $settings["coverflow_stretch"]["size"] : 0,
92 'depth' => ( "yes" == $settings["coverflow_toggle"] ) ? $settings["coverflow_depth"]["size"] : 100,
93 'modifier' => ( "yes" == $settings["coverflow_toggle"] ) ? $settings["coverflow_modifier"]["size"] : 1,
94 'slideShadows' => true,
95 ],
96
97 ] ) )
98 ]
99 ]
100 ]
101 );
102
103 $this->add_render_attribute('swiper', 'class', 'swiper-carousel swiper');
104 }
105
106 function render_navigation() {
107 $settings = $this->get_settings_for_display();
108 $hide_arrow_on_mobile = $settings['hide_arrow_on_mobile'] ? ' upk-visible@m' : '';
109
110 if ( 'arrows' == $settings['navigation'] ) : ?>
111 <div class="upk-position-z-index upk-position-<?php echo esc_html( $settings['arrows_position'] . $hide_arrow_on_mobile ); ?>">
112 <div class="upk-arrows-container upk-slidenav-container">
113 <div class="upk-navigation-prev">
114 <i class="upk-icon-arrow-left-<?php echo esc_html($settings['nav_arrows_icon']); ?>" aria-hidden="true"></i>
115 </div>
116 <div class="upk-navigation-next">
117 <i class="upk-icon-arrow-right-<?php echo esc_html($settings['nav_arrows_icon']); ?>" aria-hidden="true"></i>
118 </div>
119 </div>
120 </div>
121 <?php endif;
122 }
123
124 function render_pagination() {
125 $settings = $this->get_settings_for_display();
126
127 if ( 'dots' == $settings['navigation'] or 'arrows-fraction' == $settings['navigation'] ) : ?>
128 <div class="upk-position-z-index upk-position-<?php echo esc_html($settings['dots_position']); ?>">
129 <div class="upk-dots-container">
130 <div class="swiper-pagination"></div>
131 </div>
132 </div>
133
134 <?php elseif ( 'progressbar' == $settings['navigation'] ) : ?>
135 <div class="swiper-pagination upk-position-z-index upk-position-<?php echo esc_html($settings['progress_position']); ?>"></div>
136 <?php endif;
137 }
138
139 function render_both_navigation() {
140 $settings = $this->get_settings_for_display();
141 $hide_arrow_on_mobile = $settings['hide_arrow_on_mobile'] ? 'upk-visible@m upk-flex' : 'upk-flex';
142
143 ?>
144 <div class="upk-position-z-index upk-position-<?php echo esc_html($settings['both_position']); ?>">
145 <div class="upk-arrows-dots-container upk-slidenav-container ">
146
147 <div class="upk-flex upk-flex-middle">
148 <div class="<?php echo esc_html( $hide_arrow_on_mobile ); ?>">
149 <div class="upk-navigation-prev">
150 <i class="upk-icon-arrow-left-<?php echo esc_html($settings['nav_arrows_icon']); ?>" aria-hidden="true"></i>
151 </div>
152 </div>
153
154 <?php if ('center' !== $settings['both_position']) : ?>
155 <div class="swiper-pagination"></div>
156 <?php endif; ?>
157
158 <div class="<?php echo esc_html( $hide_arrow_on_mobile ); ?>">
159 <div class="upk-navigation-next">
160 <i class="upk-icon-arrow-right-<?php echo esc_html($settings['nav_arrows_icon']); ?>" aria-hidden="true"></i>
161 </div>
162 </div>
163
164 </div>
165 </div>
166 </div>
167 <?php
168 }
169
170 function render_arrows_fraction() {
171 $settings = $this->get_settings_for_display();
172 $hide_arrow_on_mobile = $settings['hide_arrow_on_mobile'] ? 'upk-visible@m' : '';
173
174 ?>
175 <div class="upk-position-z-index upk-position-<?php echo esc_html($settings['arrows_fraction_position']); ?>">
176 <div class="upk-arrows-fraction-container upk-slidenav-container ">
177
178 <div class="upk-flex upk-flex-middle">
179 <div class="<?php echo esc_html( $hide_arrow_on_mobile ); ?>">
180 <div class="upk-navigation-prev">
181 <i class="upk-icon-arrow-left-<?php echo esc_html($settings['nav_arrows_icon']); ?>" aria-hidden="true"></i>
182 </div>
183 </div>
184
185 <?php if ('center' !== $settings['arrows_fraction_position']) : ?>
186 <div class="swiper-pagination"></div>
187 <?php endif; ?>
188
189 <div class="<?php echo esc_html( $hide_arrow_on_mobile ); ?>">
190 <div class="upk-navigation-next">
191 <i class="upk-icon-arrow-right-<?php echo esc_html($settings['nav_arrows_icon']); ?>" aria-hidden="true"></i>
192 </div>
193 </div>
194
195 </div>
196 </div>
197 </div>
198 <?php
199 }
200
201 function render_footer() {
202 $settings = $this->get_settings_for_display();
203
204 ?>
205 </div>
206 <?php if ( 'yes' === $settings['show_scrollbar'] ) : ?>
207 <div class="swiper-scrollbar"></div>
208 <?php endif; ?>
209 </div>
210
211 <?php if ('both' == $settings['navigation']) : ?>
212 <?php $this->render_both_navigation(); ?>
213 <?php if ( 'center' === $settings['both_position'] ) : ?>
214 <div class="upk-position-z-index upk-position-bottom">
215 <div class="upk-dots-container">
216 <div class="swiper-pagination"></div>
217 </div>
218 </div>
219 <?php endif; ?>
220 <?php elseif ('arrows-fraction' == $settings['navigation']) : ?>
221 <?php $this->render_arrows_fraction(); ?>
222 <?php if ( 'center' === $settings['arrows_fraction_position'] ) : ?>
223 <div class="upk-dots-container">
224 <div class="swiper-pagination"></div>
225 </div>
226 <?php endif; ?>
227 <?php else : ?>
228 <?php $this->render_pagination(); ?>
229 <?php $this->render_navigation(); ?>
230 <?php endif; ?>
231
232 </div>
233 </div>
234 <?php
235 }
236 }