120 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			120 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * The Schema Blocks
 | 
						|
 *
 | 
						|
 * @since      0.9.0
 | 
						|
 * @package    RankMath
 | 
						|
 * @subpackage RankMath\Schema
 | 
						|
 * @author     Rank Math <support@rankmath.com>
 | 
						|
 */
 | 
						|
 | 
						|
namespace RankMath\Schema;
 | 
						|
 | 
						|
use RankMath\Helper;
 | 
						|
use RankMath\Traits\Hooker;
 | 
						|
 | 
						|
defined( 'ABSPATH' ) || exit;
 | 
						|
 | 
						|
/**
 | 
						|
 * Blocks class.
 | 
						|
 */
 | 
						|
class Blocks {
 | 
						|
 | 
						|
	use Hooker;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * The Constructor.
 | 
						|
	 */
 | 
						|
	public function __construct() {
 | 
						|
		$this->action( 'init', 'init' );
 | 
						|
 | 
						|
		$filter = version_compare( get_bloginfo( 'version' ), '5.8', '>=' ) ? 'block_categories_all' : 'block_categories';
 | 
						|
		$this->filter( $filter, 'block_categories' );
 | 
						|
		$this->action( 'enqueue_block_editor_assets', 'editor_assets' ); // Backend.
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Init blocks.
 | 
						|
	 */
 | 
						|
	public function init() {
 | 
						|
		if ( ! function_exists( 'register_block_type' ) ) {
 | 
						|
			return;
 | 
						|
		}
 | 
						|
 | 
						|
		wp_register_style(
 | 
						|
			'rank-math-block-admin',
 | 
						|
			rank_math()->plugin_url() . 'assets/admin/css/blocks.css',
 | 
						|
			null,
 | 
						|
			rank_math()->version
 | 
						|
		);
 | 
						|
 | 
						|
		new Blocks\Admin();
 | 
						|
		new Block_FAQ();
 | 
						|
		new Block_HowTo();
 | 
						|
		new Block_TOC();
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Create a new (Rank Math) block category.
 | 
						|
	 *
 | 
						|
	 * @param array $categories Array of block categories.
 | 
						|
	 *
 | 
						|
	 * @return array
 | 
						|
	 */
 | 
						|
	public function block_categories( $categories ) {
 | 
						|
		return array_merge(
 | 
						|
			$categories,
 | 
						|
			[
 | 
						|
				[
 | 
						|
					'slug'  => 'rank-math-blocks',
 | 
						|
					'title' => __( 'Rank Math', 'rank-math' ),
 | 
						|
					'icon'  => 'wordpress',
 | 
						|
				],
 | 
						|
			]
 | 
						|
		);
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Enqueue Styles and Scripts required for blocks at backend.
 | 
						|
	 */
 | 
						|
	public function editor_assets() {
 | 
						|
		if ( ! $this->is_block_faq() && ! $this->is_block_howto() ) {
 | 
						|
			return;
 | 
						|
		}
 | 
						|
 | 
						|
		Helper::add_json(
 | 
						|
			'blocks',
 | 
						|
			[
 | 
						|
				'faq'   => $this->is_block_faq(),
 | 
						|
				'howTo' => $this->is_block_howto(),
 | 
						|
			]
 | 
						|
		);
 | 
						|
 | 
						|
		wp_enqueue_script(
 | 
						|
			'rank-math-block-faq',
 | 
						|
			rank_math()->plugin_url() . 'assets/admin/js/blocks.js',
 | 
						|
			[],
 | 
						|
			rank_math()->version,
 | 
						|
			true
 | 
						|
		);
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Is FAQ Block enabled.
 | 
						|
	 *
 | 
						|
	 * @return boolean
 | 
						|
	 */
 | 
						|
	private function is_block_faq() {
 | 
						|
		return true;
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Is HowTo Block enabled.
 | 
						|
	 *
 | 
						|
	 * @return boolean
 | 
						|
	 */
 | 
						|
	private function is_block_howto() {
 | 
						|
		return true;
 | 
						|
	}
 | 
						|
}
 |