PluginProbe
GutSlider – All in One Slider and Carousel Blocks for Gutenberg / 2.10.1
GutSlider – All in One Slider and Carousel Blocks for Gutenberg v2.10.1
3.1.0 3.0.0 2.13.2 2.13.1 2.13.0 trunk 1.0.0 2.1.0 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.2.1 2.2.2 2.3.0 2.4.0 2.5.1 2.5.3 2.5.4 2.5.5 2.6.1 All 56 releases
slider-blocks / includes / classes / class-register-blocks.php

class-register-blocks.php in GutSlider – All in One Slider and Carousel Blocks for Gutenberg 2.10.1, at includes/classes/class-register-blocks.php

91 lines 2.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Register Blocks
4 * @package GutSliderBlocks
5 */
6
7 if( ! defined( 'ABSPATH' ) ) {
8 exit;
9 }
10
11 if( ! class_exists( 'GutSliderBlocks_Registration' ) ) {
12
13 /**
14 * @since 1.0.0
15 * @package GutSlider Blocks
16 */
17 class GutSliderBlocks_Registration {
18
19 /**
20 * Constructor
21 *
22 * @since 1.0.0
23 * @return void
24 */
25 public function __construct() {
26 add_action( 'init', array ( $this, 'register_blocks' ) );
27 // check block theme
28 if( ! wp_is_block_theme() ) {
29 add_filter( 'should_load_separate_core_block_assets', '__return_true' );
30 }
31 }
32
33 /**
34 * Register Blocks
35 *
36 * @since 1.0.0
37 * @return void
38 */
39 public function register_blocks() {
40
41 $blocks = get_option( 'gutslider_blocks', $this->get_gutslider_blocks() );
42
43 if ( ! empty( $blocks ) && is_array( $blocks ) ) {
44 foreach ( $blocks as $block ) {
45 $path = GUTSLIDER_DIR_PATH;
46
47 if( isset( $block['is_pro'] ) && $block['is_pro'] === true && defined( 'GUTSLIDER_PRO_PATH' ) ) {
48 $path = GUTSLIDER_PRO_PATH;
49 }
50
51 $block_name = trailingslashit( $path ) . 'build/blocks/' . $block['name'];
52 $block_key = $block['name'];
53
54 if($this->gutslider_is_block_enabled($block_key)) {
55 if( file_exists( $block_name ) ) {
56 // Check if the block is not already registered
57 if ( ! WP_Block_Type_Registry::get_instance()->is_registered( 'gutsliders/' . $block['name'] ) ) {
58 register_block_type( $block_name );
59 }
60 }
61 } else {
62 // Unregister the block if it is disabled
63 if( WP_Block_Type_Registry::get_instance()->is_registered( 'gutsliders/' . $block['name'] ) ) {
64 unregister_block_type( 'gutsliders/' . $block['name'] );
65 }
66 }
67 }
68 }
69 }
70
71 /**
72 * Get GutSlider Blocks
73 */
74 public function get_gutslider_blocks() {
75 return require GUTSLIDER_DIR_PATH . 'includes/api/blocks.php';
76 }
77
78 /**
79 * Check if a block is enabled
80 */
81 public function gutslider_is_block_enabled($block_name) {
82 $option_key = 'gut_' . str_replace('-', '_', $block_name);
83 return (bool) get_option($option_key, true);
84 }
85
86
87 }
88
89 }
90
91 new GutSliderBlocks_Registration(); // Initialize the class.