File: /home/icsla/public_html/wp-content/plugins/simple-sitemap/lib/classes/register-blocks.php
<?php
namespace WPGO_Plugins\Simple_Sitemap;
/**
* Register blocks
*/
class Register_Blocks {
/**
* Common root paths/directories.
*
* @var $module_roots
*/
protected $module_roots;
/**
* Main class constructor.
*
* @param array $module_roots Root plugin path/dir.
*/
public function __construct( $module_roots ) {
$this->module_roots = $module_roots;
add_filter(
'block_categories_all',
array(&$this, 'add_block_category'),
10,
2
);
add_action( 'plugins_loaded', array(&$this, 'register_blocks') );
}
/**
* Add custom block category.
*
* @param array $categories Current block categories.
* @param object $post Post object.
* @return array Result of array merge.
*/
public function add_block_category( $categories, $post ) {
return array_merge( $categories, array(array(
'slug' => 'simple-sitemap',
'title' => __( 'Simple Sitemap', 'simple-sitemap' ),
)) );
}
/**
* Register dynamic blocks.
*/
public function register_blocks() {
// Only register block if gutenberg enabled.
if ( function_exists( 'register_block_type' ) ) {
$simple_sitemap_block_attr = array(
'id' => array(
'type' => 'string',
'default' => '',
),
'render_tab' => array(
'type' => 'boolean',
'default' => false,
),
'page_depth' => array(
'type' => 'number',
'default' => 0,
),
'orderby' => array(
'type' => 'string',
'default' => 'title',
),
'order' => array(
'type' => 'string',
'default' => 'asc',
),
'show_excerpt' => array(
'type' => 'boolean',
'default' => false,
),
'show_label' => array(
'type' => 'boolean',
'default' => true,
),
'links' => array(
'type' => 'boolean',
'default' => true,
),
'title_tag' => array(
'type' => 'string',
'default' => '',
),
'post_type_tag' => array(
'type' => 'string',
'default' => 'h3',
),
'excerpt_tag' => array(
'type' => 'string',
'default' => 'div',
),
'container_tag' => array(
'type' => 'string',
'default' => 'ul',
),
'block_post_types' => array(
'type' => 'string',
'default' => '[{ "value": "page", "label": "Pages" }]',
),
'gutenberg_block' => array(
'type' => 'boolean',
'default' => true,
),
'target_blank' => array(
'type' => 'boolean',
'default' => false,
),
'post_type_label' => array(
'type' => 'object',
),
);
// Register the sitemap block and define the attributes.
register_block_type( 'wpgoplugins/simple-sitemap-block', array(
'attributes' => $simple_sitemap_block_attr,
'style' => 'simple-sitemap-css',
'render_callback' => array(Simple_Sitemap_Shortcode::get_instance(), 'render_block'),
) );
$simple_sitemap_group_block_attr = array(
'id' => array(
'type' => 'string',
'default' => '',
),
'block_taxonomy' => array(
'type' => 'string',
'default' => 'category',
),
'title_tag' => array(
'type' => 'string',
'default' => '',
),
'show_excerpt' => array(
'type' => 'boolean',
'default' => false,
),
'excerpt_tag' => array(
'type' => 'string',
'default' => 'div',
),
'links' => array(
'type' => 'boolean',
'default' => true,
),
'orderby' => array(
'type' => 'string',
'default' => 'title',
),
'order' => array(
'type' => 'string',
'default' => 'asc',
),
'post_type_tag' => array(
'type' => 'string',
'default' => 'h3',
),
'show_label' => array(
'type' => 'boolean',
'default' => true,
),
'page_depth' => array(
'type' => 'number',
'default' => 0,
),
'container_tag' => array(
'type' => 'string',
'default' => 'ul',
),
'block_post_type' => array(
'type' => 'string',
'default' => 'post',
),
'num_terms' => array(
'type' => 'number',
'default' => 0,
),
'gutenberg_block' => array(
'type' => 'boolean',
'default' => true,
),
);
// Register the sitemap group block and define the attributes.
register_block_type( 'wpgoplugins/simple-sitemap-group-block', array(
'attributes' => $simple_sitemap_group_block_attr,
'style' => 'simple-sitemap-css',
'render_callback' => array(Simple_Sitemap_Group_Shortcode::get_instance(), 'render_block'),
) );
}
}
}
/* End class definition */