PluginProbe
Getwid – Gutenberg Blocks / 3.0.2
Getwid – Gutenberg Blocks v3.0.2
3.0.2 3.0.1 3.0.0 2.1.0 2.1.1 2.1.2 2.1.3 2.2.0 trunk 1.8.7 1.9.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9
← All changes | includes/blocks/images-slider.php +10 -150 2.1.03.0.2 View file →
@@ -1,163 +1,23 @@
1 1 <?php
2 2
3 3 namespace Getwid\Blocks;
4 4
5 -class ImageSlider extends \Getwid\Blocks\AbstractBlock {
5 +class ImageSlider extends AbstractBlock {
6 6
7 - protected static $blockName = 'getwid/images-slider';
8 - private $assetsAlreadyEnqueued = false;
7 + public function __construct() {
9 8
10 - public function __construct() {
9 + parent::__construct( 'getwid/images-slider' );
11 10
12 - parent::__construct( self::$blockName );
11 + register_block_type(
12 + getwid_get_plugin_path( 'assets/blocks/images-slider' )
13 + );
14 + }
13 15
14 - register_block_type(
15 - 'getwid/images-slider',
16 - array(
17 - 'render_callback' => [ $this, 'render_callback' ]
18 - )
19 - );
20 -
21 - if ( $this->isEnabled() ) {
22 -
23 - add_filter( 'getwid/editor_blocks_js/dependencies', [ $this, 'block_editor_scripts'] );
24 - add_filter( 'getwid/blocks_style_css/dependencies', [ $this, 'block_frontend_styles' ] );
25 -
26 - //Register JS/CSS assets
27 - wp_register_script(
28 - 'slick',
29 - getwid_get_plugin_url( 'vendors/slick/slick/slick.min.js' ),
30 - [ 'jquery' ],
31 - '1.9.0',
32 - true
33 - );
34 -
35 - wp_register_style(
36 - 'slick',
37 - getwid_get_plugin_url( 'vendors/slick/slick/slick.min.css' ),
38 - [],
39 - '1.9.0'
40 - );
41 -
42 - wp_register_style(
43 - 'slick-theme',
44 - getwid_get_plugin_url( 'vendors/slick/slick/slick-theme.min.css' ),
45 - [],
46 - '1.9.0'
47 - );
48 - }
49 - }
50 -
51 - public function getLabel() {
52 - return __('Image Slider', 'getwid');
16 + public function get_label() {
17 + return __( 'Image Slider', 'getwid' );
53 18 }
54 -
55 - public function block_frontend_styles($styles) {
56 -
57 - //slick.min.css
58 - if ( ! in_array( 'slick', $styles ) ) {
59 - array_push( $styles, 'slick' );
60 - }
61 -
62 - //slick-theme.min.css
63 - if ( ! in_array( 'slick-theme', $styles ) ) {
64 - array_push( $styles, 'slick-theme' );
65 - }
66 -
67 - return $styles;
68 - }
69 -
70 - public function block_editor_scripts($scripts) {
71 -
72 - //imagesloaded.min.js
73 - if ( ! in_array( 'imagesloaded', $scripts ) ) {
74 - array_push( $scripts, 'imagesloaded' );
75 - }
76 -
77 - //slick.min.js
78 - if ( ! in_array( 'slick', $scripts ) ) {
79 - array_push( $scripts, 'slick' );
80 - }
81 -
82 - return $scripts;
83 - }
84 -
85 - public function block_frontend_assets() {
86 -
87 - if ( is_admin() ) {
88 - return;
89 - }
90 -
91 - //slick.min.js
92 - if ( ! wp_script_is( 'slick', 'enqueued' ) ) {
93 - wp_enqueue_script('slick');
94 - }
95 -
96 - //imagesloaded.min.js
97 - if ( ! wp_script_is( 'imagesloaded', 'enqueued' ) ) {
98 - wp_enqueue_script('imagesloaded');
99 - }
100 -
101 - if ( FALSE == getwid()->assetsOptimization()->load_assets_on_demand() ) {
102 - return;
103 - }
104 -
105 - $deps = [
106 - 'slick', 'slick-theme'
107 - ];
108 -
109 - add_filter( 'getwid/optimize/assets',
110 - function ( $assets ) {
111 - $assets[] = 'slick';
112 - $assets[] = 'slick-theme';
113 - $assets[] = getwid()->settings()->getPrefix() . '-blocks-common';
114 -
115 - return $assets;
116 - }
117 - );
118 -
119 - add_filter( 'getwid/optimize/should_load_common_css', '__return_true' );
120 -
121 - $rtl = is_rtl() ? '.rtl' : '';
122 -
123 - wp_enqueue_style(
124 - self::$blockName,
125 - getwid_get_plugin_url( 'assets/blocks/images-slider/style' . $rtl . '.css' ),
126 - $deps,
127 - getwid()->settings()->getVersion()
128 - );
129 -
130 - wp_enqueue_script(
131 - self::$blockName,
132 - getwid_get_plugin_url( 'assets/blocks/images-slider/frontend.js' ),
133 - [ 'jquery', 'imagesloaded', 'slick' ],
134 - getwid()->settings()->getVersion(),
135 - true
136 - );
137 -
138 - if ( !$this->assetsAlreadyEnqueued ) {
139 - $inline_script =
140 - 'var Getwid = Getwid || {};' .
141 - 'Getwid["isRTL"] = ' . json_encode( is_rtl() ) . ';';
142 -
143 - wp_add_inline_script(
144 - self::$blockName,
145 - $inline_script,
146 - 'before'
147 - );
148 - }
149 -
150 - $this->assetsAlreadyEnqueued = true;
151 - }
152 -
153 - public function render_callback( $attributes, $content ) {
154 -
155 - $this->block_frontend_assets();
156 -
157 - return $content;
158 - }
159 19 }
160 20
161 21 getwid()->blocksManager()->addBlock(
162 - new \Getwid\Blocks\ImageSlider()
22 + new ImageSlider()
163 23 );