PluginProbe
Gutenify – Visual Site Builder Blocks & Starter Templates / 1.1.2
Gutenify – Visual Site Builder Blocks & Starter Templates v1.1.2
1.9.0 1.8.0 1.7.0 1.6.6 1.6.5 1.6.4 trunk 0.0.1 0.0.2 0.0.3 1.0.0 1.0.1 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.1.0 1.1.1 1.1.2 1.1.3 1.1.4 All 74 releases
gutenify / inc / blocks / advance-slider.php

advance-slider.php in Gutenify – Visual Site Builder Blocks & Starter Templates 1.1.2, at inc/blocks/advance-slider.php

139 lines 5.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Registers the `gallery` block on server.
4 */
5
6 function gutenify_render_advance_slider( $attributes, $content, $props ) {
7 $has_navigation = ! empty( $attributes['blockAdvanceOptions']['hasNavigation'] ) && true === $attributes['blockAdvanceOptions']['hasNavigation'];
8 $has_pagination = ! empty( $attributes['blockAdvanceOptions']['hasPagination'] ) && true === $attributes['blockAdvanceOptions']['hasPagination'];
9
10 $client_id = ! empty( $attributes['blockClientId'] ) ? $attributes['blockClientId'] : '';
11 $class_name = array();
12
13 $layout = ! empty( $attributes['blockAdvanceOptions']['layout'] ) ? $attributes['blockAdvanceOptions']['layout'] : 'layout-1';
14 array_push( $class_name, 'wp-block-gutenify-advance-slider', 'gutenify-advance-slider', 'gutenify-section-' . $attributes['blockClientId'], 'gutenify-section-' . $layout );
15
16 if ( isset( $attributes['className'] ) ) {
17 array_push( $class_name, $attributes['className'] );
18 }
19
20 if ( isset( $attributes['align'] ) ) {
21 array_push( $class_name, 'align' . $attributes['align'] );
22 }
23
24 $class_name = apply_filters( 'gutenify--slider--wrapper-class', $class_name, $props );
25 $block_content = sprintf(
26 '<div class="%1$s">',
27 esc_attr( implode( ' ', $class_name ) ),
28 );
29
30 $block_content .= '<div class="swiper-wrapper">';
31
32 $block_content .= $content;
33 $block_content .= '</div>';
34 if ( $has_navigation ) {
35 $block_content .= '<div class="swiper-button-next"></div>
36 <div class="swiper-button-prev"></div>';
37 }
38 if ( $has_pagination ) {
39 $block_content .= '<div class="swiper-pagination"></div>';
40 }
41 $block_content .= '</div>';
42
43 $columns = ! empty( $attributes['blockAdvanceOptions']['columns'] ) ? $attributes['blockAdvanceOptions']['columns'] : 1;
44 $space_between = ! empty( $attributes['blockAdvanceOptions']['spaceBetween'] ) ? $attributes['blockAdvanceOptions']['spaceBetween'] : 0;
45 $block_client_id = ! empty( $attributes['blockClientId'] ) ? $attributes['blockClientId'] : 1;
46 ob_start();
47 wp_enqueue_script( 'gutenify-swiper' );
48 $config = '{
49 loop: true,
50 slidesPerView: ' . $columns . ',
51 breakpoints: {
52 // when window width is >= 320px
53 320: {
54 slidesPerView: 1,
55 spaceBetween: 20
56 },
57 // when window width is >= 640px
58 640: {
59 slidesPerView: 1,
60 spaceBetween: 15
61 },
62 1024: {
63 slidesPerView: ' . $columns . ',
64 spaceBetween: ' . $space_between . '
65 }
66 },';
67 $config .= ' spaceBetween:' . $space_between . ',';
68 if ( $has_navigation ) {
69 $config .= ' navigation:{
70 nextEl: ".swiper-button-next",
71 prevEl: ".swiper-button-prev",
72 },';
73 }
74 $config .= '
75 pagination:{
76 el: ".swiper-pagination",
77 clickable: true,
78 },
79 ';
80 $config .= '
81 scrollbar:{ draggable: true },
82 on: {
83 init: function () {
84 jQuery(document).trigger("gutenifySlideinit" );
85 },
86 },
87 }';
88 $slider_var = 'slider_' . str_replace( '-', '_', $block_client_id );
89 $slider_function_name = 'reinitSlider' . $slider_var;
90 $block_content .= '<script>
91 jQuery(function($){
92 function ' . $slider_function_name . '() {
93 var swiperWrapper = $(".gutenify-section-' . $block_client_id . ' .swiper-wrapper");
94 var newSlides = swiperWrapper.children(".swiper-slide").clone(true);
95 ' . $slider_var . '.destroy();
96 swiperWrapper.empty().append(newSlides);
97 swiperWrapper.attr("style", "");
98 mySwiper = new Swiper(".gutenify-section-' . $block_client_id . '", ' . $config . ');
99 }
100
101 var ' . $slider_var . ' = new Swiper(".gutenify-section-' . $block_client_id . '", ' . $config . ');
102 $(window).on("resize", function(){
103 ' . $slider_function_name . '();
104 });
105 ' . $slider_var . '.on("slideChangeTransitionEnd", function (a,b) {
106 jQuery(document).trigger("gutenifySlideChangeTransitionEnd" );
107 });
108 ' . $slider_var . '.on("slideChangeTransitionStart", function (a,b) {
109 jQuery(document).trigger("gutenifySlideChangeTransitionStart" );
110 });
111 $(document).on("containerStretched", function(){
112 ' . $slider_function_name . '();
113 });
114
115 });</script>';
116 echo $block_content; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
117 $output = ob_get_contents();
118 ob_end_clean();
119 return $output;
120 }
121 function gutenify_register_block_advance_slider() {
122 $handle = 'gutenify-block-advance-slider';
123 $asset = include_once sprintf( '%sdist/' .$handle . '.asset.php', GUTENIFY_PLUGIN_DIR );
124
125 wp_register_script( $handle, GUTENIFY_PLUGIN_URL . 'dist/' . $handle . '.js', $asset['dependencies'], $asset['version'], false );
126 wp_register_style( $handle. '-style', GUTENIFY_PLUGIN_URL . 'dist/' . $handle . '.css', array(), $asset['version'] );
127 wp_register_style( 'style-' . $handle, GUTENIFY_PLUGIN_URL . 'dist/' . 'style-' . $handle . '.css', array(), $asset['version'] );
128
129 // Return early if this function does not exist.
130 if ( ! function_exists( 'register_block_type' ) ) {
131 return;
132 }
133
134 register_block_type( GUTENIFY_PLUGIN_DIR . 'dist/blocks/advance-slider', array(
135 'render_callback' => 'gutenify_render_advance_slider'
136 ));
137 }
138 add_action( 'init', 'gutenify_register_block_advance_slider' );
139