added additional plugins

This commit is contained in:
Rodolfo Martinez 2025-12-12 19:05:48 -05:00
parent c85895d306
commit 00e60ec1b7
132 changed files with 27514 additions and 0 deletions

View file

@ -0,0 +1,82 @@
<?php
/**
* Simplified Gutenberg Block Registration for Maple Code Blocks
*/
class MCB_Simple_Block {
public static function init() {
// Register block on init
add_action('init', array(__CLASS__, 'register_block'));
// Make sure script is enqueued in editor
add_action('enqueue_block_editor_assets', array(__CLASS__, 'enqueue_editor_assets'));
}
public static function register_block() {
// Only register if Gutenberg is available
if (!function_exists('register_block_type')) {
return;
}
// Register the block
register_block_type('maple-code-blocks/code-block', array(
'render_callback' => array(__CLASS__, 'render_block'),
'attributes' => array(
'repository' => array(
'type' => 'string',
'default' => ''
),
'theme' => array(
'type' => 'string',
'default' => 'dark'
),
'height' => array(
'type' => 'string',
'default' => '600px'
)
)
));
}
public static function enqueue_editor_assets() {
// Enqueue the block editor script
wp_enqueue_script(
'maple-code-blocks-editor',
MCB_PLUGIN_URL . 'assets/js/simple-block.js',
array('wp-blocks', 'wp-element', 'wp-editor', 'wp-components', 'wp-i18n'),
MCB_PLUGIN_VERSION,
false // Load in header, not footer
);
// Add inline script to ensure registration happens
wp_add_inline_script('maple-code-blocks-editor', '
console.log("Maple Code Blocks: Script loaded");
if (typeof wp !== "undefined" && wp.blocks) {
console.log("Maple Code Blocks: wp.blocks is available");
} else {
console.error("Maple Code Blocks: wp.blocks not available");
}
', 'after');
}
public static function render_block($attributes) {
$repository = isset($attributes['repository']) ? $attributes['repository'] : '';
$theme = isset($attributes['theme']) ? $attributes['theme'] : 'dark';
$height = isset($attributes['height']) ? $attributes['height'] : '600px';
if (empty($repository)) {
return '<div class="notice notice-warning">Please enter a repository (e.g., facebook/react)</div>';
}
// Use the shortcode for rendering
return do_shortcode(sprintf(
'[maple_code_block repo="%s" theme="%s" height="%s"]',
esc_attr($repository),
esc_attr($theme),
esc_attr($height)
));
}
}
MCB_Simple_Block::init();