<?php
/**
* Contains Crowdsignal_Forms\Frontend\Crowdsignal_Forms_Blocks
*
* @package Crowdsignal_Forms\Frontend
* @since 0.9.0
*/
namespace Crowdsignal_Forms\Frontend;
use Crowdsignal_Forms\Frontend\Blocks as Blocks;
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Handles Crowdsignal Forms' Gutenberg blocks.
*
* @package Crowdsignal_Forms\Frontend
* @since 0.9.0
*/
class Crowdsignal_Forms_Blocks {
/**
* Collection of blocks to be registered.
*
* @var Blocks\Crowdsignal_Forms_Poll_Block[]
*/
private static $blocks = array();
/**
* Returns a list containing all block classes
*
* @return array
*/
public static function blocks() {
if ( count( self::$blocks ) > 0 ) {
return self::$blocks;
}
self::$blocks = array(
new Blocks\Crowdsignal_Forms_Poll_Block(),
new Blocks\Crowdsignal_Forms_Vote_Block(),
new Blocks\Crowdsignal_Forms_Vote_Item_Block(),
new Blocks\Crowdsignal_Forms_Applause_Block(),
new Blocks\Crowdsignal_Forms_Nps_Block(),
new Blocks\Crowdsignal_Forms_Feedback_Block(),
);
return self::$blocks;
}
/**
* Registers Crowdsignal Forms' custom Gutenberg blocks
*/
public function register() {
foreach ( self::blocks() as $block ) {
$block->register();
}
}
}