PluginProbe
GutSlider – All in One Slider and Carousel Blocks for Gutenberg / 2.9.7
GutSlider – All in One Slider and Carousel Blocks for Gutenberg v2.9.7
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
← All changes | includes/classes/class-register-blocks.php +64 -36 2.3.02.9.7 View file →
@@ -3,59 +3,87 @@
3 3 * Register Blocks
4 4 * @package GutSliderBlocks
5 5 */
6 6
7 - if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly.
8 -
9 - if( ! class_exists( 'GutSlider_Register_Blocks' ) ) {
7 + if( ! defined( 'ABSPATH' ) ) {
8 + exit;
9 + }
10 10
11 - class GutSlider_Register_Blocks {
11 + if( ! class_exists( 'GutSliderBlocks_Registration' ) ) {
12 12
13 + /**
14 + * @since 1.0.0
15 + * @package GutSlider Blocks
16 + */
17 + class GutSliderBlocks_Registration {
18 +
13 19 /**
14 20 * Constructor
15 - * return void
21 + *
22 + * @since 1.0.0
23 + * @return void
16 24 */
17 25 public function __construct() {
18 - add_action( 'init', [ $this, 'register_blocks' ] );
26 + $this->init();
19 27 }
20 28
21 29 /**
30 + * Initialize the Class
31 + *
32 + * @since 1.0.0
33 + * @return void
34 + */
35 + private function init() {
36 + add_action( 'init', array ( $this, 'register_blocks' ) );
37 + }
38 +
39 + /**
22 40 * Register Blocks
23 - * return void
41 + *
42 + * @since 1.0.0
43 + * @return void
24 44 */
25 45 public function register_blocks() {
26 - $blocks = [
27 - 'content-slider',
28 - 'any-content',
29 - 'testimonial-slider',
30 - 'post-slider',
31 - ];
32 -
33 - $active_blocks = [];
34 -
35 - $block_options = [
36 - 'content-slider' => 'gut_fixed_content_slider',
37 - 'any-content' => 'gut_any_content_slider',
38 - 'testimonial-slider' => 'gut_testimonial_slider',
39 - 'post-slider' => 'gut_post_slider',
40 - ];
41 -
42 - foreach ($blocks as $block) {
43 - $option_name = $block_options[$block];
44 - $block_enabled = get_option($option_name, true);
45 -
46 - if ($block_enabled) {
47 - $active_blocks[] = $block;
46 +
47 + $blocks = get_option( 'gutslider_blocks', $this->get_gutslider_blocks() );
48 +
49 + if ( ! empty( $blocks ) && is_array( $blocks ) ) {
50 + foreach ( $blocks as $block ) {
51 + $path = GUTSLIDER_DIR_PATH;
52 +
53 + if( isset( $block['is_pro'] ) && $block['is_pro'] === true && defined( 'GUTSLIDER_PRO_PATH' ) ) {
54 + $path = GUTSLIDER_PRO_PATH;
55 + }
56 +
57 + $block_name = trailingslashit( $path ) . 'build/blocks/' . $block['name'];
58 + $full_block_name = 'gutsliders/' . $block['name'];
59 +
60 + if ( isset( $block['active'] ) && $block['active'] === false ) {
61 + // Check if the block type is registered before trying to unregister it
62 + if( WP_Block_Type_Registry::get_instance()->is_registered( $full_block_name ) ) {
63 + unregister_block_type( $full_block_name );
64 + }
65 + } else {
66 + if( file_exists( $block_name ) ) {
67 + // Check if the block is not already registered
68 + if ( ! WP_Block_Type_Registry::get_instance()->is_registered( $full_block_name ) ) {
69 + register_block_type( $block_name );
70 + }
71 + }
72 + }
48 73 }
49 74 }
75 + }
50 76
51 - if ( ! empty( $active_blocks ) ) {
52 - foreach ( $active_blocks as $block ) {
53 - register_block_type( trailingslashit( GUTSLIDER_DIR ) . '/build/blocks/' . $block);
54 - }
55 - }
56 - }
77 + /**
78 + * Get GutSlider Blocks
79 + */
80 + public function get_gutslider_blocks() {
81 + return require GUTSLIDER_DIR_PATH . 'includes/api/blocks.php';
82 + }
83 +
84 +
57 85 }
58 86
59 87 }
60 88
61 - new GutSlider_Register_Blocks(); // Initialize the class
89 + new GutSliderBlocks_Registration(); // Initialize the class.