• File: class-uagb-block.php
  • Full Path: /home/matthif/www/wp-content/plugins/ultimate-addons-for-gutenberg/classes/class-uagb-block.php
  • Date Modified: 02/24/2024 11:29 PM
  • File size: 1.64 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php
/**
 * UAGB Block.
 *
 * @since 2.1.0
 *
 * @package uagb
 */

// Exit if accessed directly.
if ( ! defined'ABSPATH' ) ) {
    exit;
}

if ( ! 
class_exists'UAGB_Block' ) ) {

    
/**
     * Class doc
     */
    
class UAGB_Block {

        
/**
         * Member Variable
         *
         * @var instance
         */
        
private static $instance;

        
/**
         * Block Attributes
         *
         * @var block_attributes
         */
        
private static $blocks null;

        
/**
         *  Initiator
         */
        
public static function get_instance() {
            if ( ! isset( 
self::$instance ) ) {
                
self::$instance = new self();
            }
            return 
self::$instance;
        }

        
/**
         * Register a Block.
         *
         * @since 2.1.0
         * @param string $block_file Block File Path.
         */
        
public function register$block_file ) {

            
$block_slug '';
            
$block_data = array();

            include 
$block_file;
            
            if ( ! empty( 
$block_slug ) && ! empty( $block_data ) ) {
                
self::$blocks$block_slug ] = apply_filters"spectra_{$block_slug}_blockdata"$block_data );
            }
        }

        
/**
         * Register all UAG Lite Blocks.
         *
         * @since 2.1.0
         */
        
public function register_blocks() {

            
self::$blocks = array();

            
$block_files globUAGB_DIR 'includes/blocks/*/block.php' );

            foreach ( 
$block_files as $block_file ) {
                
$this->register$block_file );
            }

            
do_action'uag_register_block'$this );
        }

        
/**
         * Gives all Blocks.
         *
         * @since 2.1.0
         */
        
public function get_blocks() {

            if ( 
null === self::$blocks ) {

                
$this->register_blocks();
            }

            return 
self::$blocks;
        }
    }

    
/**
     * Gives UAGB_Block object
     *
     * @since 2.1.0
     *
     * @return object
     */
    
function uagb_block() {
        return 
UAGB_Block::get_instance();
    }
}