atfpp_render_support_blocks_page();
$this->enqueue_editor_assets();
}
}
/**
* Enqueue editor CSS for the supported blocks page.
*/
public function enqueue_editor_assets( ) {
wp_enqueue_script( 'atfp-datatable-script', ATFPP_URL . 'assets/js/dataTables.min.js', array(), ATFPP_V, true );
wp_enqueue_script( 'atfp-datatable-style', ATFPP_URL . 'assets/js/dataTables.min.js', array(), ATFPP_V, true );
wp_enqueue_style( 'atfp-custom-data-table', ATFPP_URL . 'assets/css/atfp-custom-data-table.min.css', array(), ATFPP_V );
wp_enqueue_script( 'atfp-custom-data-table', ATFPP_URL . 'assets/js/atfp-custom-data-table.min.js', array('atfp-datatable-script'), ATFPP_V, true );
}
/**
* Add submenu page under the Polylang menu.
*/
public function atfpp_add_submenu_page() {
add_submenu_page(
'mlang', // Parent slug
__( 'Support Blocks', 'autopoly-ai-translation-for-polylang-pro' ), // Page title
__( '↳ Support Blocks', 'autopoly-ai-translation-for-polylang-pro' ), // Menu title
'manage_options', // Capability
'atfp-supported-blocks', // Menu slug
array( $this, 'atfpp_render_support_blocks_page' ) // Callback function
);
}
/**
* Render the support blocks page.
*/
public function atfpp_render_support_blocks_page() {
?>
|
|
|
|
|
atfpp_get_supported_blocks_table()
?>
get_all_registered();
$filter_blocks_data = array_filter( $blocks_data, function( $block ) {
return !in_array($block->category, array( 'media', 'reusable' ));
} );
foreach ( $filter_blocks_data as $block ) {
$plugin_name = explode('/', $block->name);
$plugin_name = isset($plugin_name[0]) ? $plugin_name[0] : '';
if(!empty($plugin_name)){
$filter_plugin_name = $this->atfpp_supported_block_name($plugin_name);
$filter_plugin_name=str_replace('-',' ',$filter_plugin_name);
$filter_plugin_name=ucwords($filter_plugin_name);
if(in_array($plugin_name, $this->atfpp_plugin_category) || $plugin_name === 'core'){
continue;
}
$this->atfpp_plugin_category[] = $plugin_name;
echo '';
}
}
}
/**
* Get the supported blocks.
*/
public function atfpp_get_supported_blocks_table() {
if ( class_exists( 'WP_Block_Type_Registry' ) && method_exists( 'WP_Block_Type_Registry', 'get_all_registered' ) ) {
$atfp_block_parse_rules = ATFPP_Helper::get_instance()->get_block_parse_rules();
$blocks_data = WP_Block_Type_Registry::get_instance()->get_all_registered();
$atfp_supported_blocks = isset($atfp_block_parse_rules['AtfpBlockParseRules']) ? $atfp_block_parse_rules['AtfpBlockParseRules'] : array();
$atfp_supported_blocks_names = array_keys( $atfp_supported_blocks );
$s_no = 1;
$atfp_post_id = ATFPP_Helper::get_custom_block_post_id();
$filter_blocks_data=$blocks_data;
foreach ( $filter_blocks_data as $block ) {
$block_name = esc_html( $block->name );
$block_title = esc_html( $block->title );
$status = ! in_array( $block_name, $atfp_supported_blocks_names ) ? 'Unsupported' : 'Supported'; // You can modify this logic based on your requirements
$modify_text = ! in_array( $block_name, $atfp_supported_blocks_names ) ? esc_html__( 'Add', 'autopoly-ai-translation-for-polylang-pro' ) : esc_html__( 'Edit', 'autopoly-ai-translation-for-polylang-pro' );
$modify_link = '' . $modify_text . ''; // Modify link
$modify_link = '' . $modify_text . ''; // Modify link
echo '';
echo '| ' . esc_html($s_no++) . ' | ';
echo '' . esc_html($block_name) . ' | ';
echo '' . esc_html($block_title) . ' | ';
echo '' . esc_html($status) . ' | ';
echo '' . wp_kses($modify_link, array('a' => array('href' => array(), 'target' => array(), 'rel' => array()))) . ' | ';
echo '
';
}
}
}
private function atfpp_supported_block_name($block_name){
$predfined_blocks = array(
'ub' => 'Ultimate Blocks',
'uagb' => 'Spectra',
'themeisle-blocks' => 'Otter Blocks'
);
if(array_key_exists($block_name, $predfined_blocks)){
return $predfined_blocks[$block_name];
}
return $block_name;
}
}
ATFP_Supported_Blocks::get_instance();
}