84 lines
1.6 KiB
PHP
84 lines
1.6 KiB
PHP
<?php
|
|
/**
|
|
* Handles block functionality.
|
|
*
|
|
* @package GenerateBlocks
|
|
*/
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit; // Exit if accessed directly.
|
|
}
|
|
|
|
/**
|
|
* The Block class.
|
|
*/
|
|
class GenerateBlocks_Block {
|
|
/**
|
|
* Keep track of all blocks of this type on the page.
|
|
*
|
|
* @var array $block_ids The current block id.
|
|
*/
|
|
protected static $block_ids = [];
|
|
|
|
/**
|
|
* Store our block name.
|
|
*
|
|
* @var string $block_name The block name.
|
|
*/
|
|
public static $block_name = '';
|
|
|
|
/**
|
|
* Store our block ID in memory.
|
|
*
|
|
* @param string $id The block ID to store.
|
|
*/
|
|
public static function store_block_id( $id ) {
|
|
static::$block_ids[] = $id;
|
|
}
|
|
|
|
/**
|
|
* Check if our block ID exists.
|
|
*
|
|
* @param string $id The block ID to check.
|
|
*/
|
|
public static function block_id_exists( $id ) {
|
|
return in_array( $id, (array) static::$block_ids );
|
|
}
|
|
|
|
/**
|
|
* Render the block.
|
|
*
|
|
* @param array $attributes The block attributes.
|
|
* @param string $block_content The block content.
|
|
* @param array $block The block.
|
|
*/
|
|
public static function render_block( $attributes, $block_content, $block ) {
|
|
return $block_content;
|
|
}
|
|
|
|
/**
|
|
* Get the block CSS.
|
|
*
|
|
* @param array $attributes The block attributes.
|
|
*/
|
|
public static function get_css( $attributes ) {
|
|
$id = $attributes['uniqueId'] ?? '';
|
|
|
|
if ( ! $id ) {
|
|
return '';
|
|
}
|
|
|
|
// Store this block ID in memory.
|
|
static::store_block_id( $id );
|
|
|
|
return apply_filters(
|
|
'generateblocks_block_css',
|
|
$attributes['css'] ?? '',
|
|
[
|
|
'attributes' => $attributes ?? [],
|
|
'block_name' => static::$block_name ?? '',
|
|
]
|
|
);
|
|
}
|
|
}
|