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(); }