|
@@ -210,12 +210,29 @@ add_filter('block_categories_all', 'srh_block_categories', 10, 2);
|
|
|
function register_offcanvas_menu_block() {
|
|
|
register_block_type( __DIR__ . '/blocks/offcanvas-menu', array(
|
|
|
'render_callback' => 'render_offcanvas_menu',
|
|
|
+ 'editor_script' => 'offcanvas-menu-editor',
|
|
|
+ 'editor_style' => 'offcanvas-menu-editor',
|
|
|
'supports' => array(
|
|
|
'inserter' => true,
|
|
|
'multiple' => true,
|
|
|
'parent' => array('core/navigation')
|
|
|
)
|
|
|
));
|
|
|
+
|
|
|
+ // Register editor assets
|
|
|
+ wp_register_script(
|
|
|
+ 'offcanvas-menu-editor',
|
|
|
+ get_stylesheet_directory_uri() . '/js/offcanvas-menu-editor.js',
|
|
|
+ array('wp-blocks', 'wp-element'),
|
|
|
+ '1.0.0'
|
|
|
+ );
|
|
|
+
|
|
|
+ wp_register_style(
|
|
|
+ 'offcanvas-menu-editor',
|
|
|
+ get_stylesheet_directory_uri() . '/css/offcanvas-menu-editor.css',
|
|
|
+ array(),
|
|
|
+ '1.0.0'
|
|
|
+ );
|
|
|
}
|
|
|
add_action('init', 'register_offcanvas_menu_block');
|
|
|
|
|
@@ -239,24 +256,24 @@ function enqueue_offcanvas_menu_assets() {
|
|
|
add_action('wp_enqueue_scripts', 'enqueue_offcanvas_menu_assets');
|
|
|
|
|
|
function render_offcanvas_menu($attributes, $content) {
|
|
|
- ob_start(); ?>
|
|
|
- <div class="wp-block-srh-offcanvas-menu">
|
|
|
- <button class="hamburger-toggle" aria-label="Toggle Menu">
|
|
|
- <div class="hamburger-lines">
|
|
|
- <span></span>
|
|
|
- <span></span>
|
|
|
- <span></span>
|
|
|
- </div>
|
|
|
- <span class="menu-text">Menu</span>
|
|
|
- </button>
|
|
|
- <div class="offcanvas-menu">
|
|
|
- <div class="offcanvas-menu-inner">
|
|
|
- <?php echo do_blocks('<!-- wp:template-part {"slug":"offcanvas-content","theme":"edit-srh"} /-->'); ?>
|
|
|
+ $template_part = do_blocks('<!-- wp:template-part {"slug":"offcanvas-content","theme":"edit-srh"} /-->');
|
|
|
+
|
|
|
+ return sprintf(
|
|
|
+ '<div class="wp-block-srh-offcanvas-menu">
|
|
|
+ <button class="hamburger-toggle" aria-label="Toggle Menu">
|
|
|
+ <div class="hamburger-lines">
|
|
|
+ <span></span>
|
|
|
+ <span></span>
|
|
|
+ <span></span>
|
|
|
+ </div>
|
|
|
+ <span class="menu-text">Menu</span>
|
|
|
+ </button>
|
|
|
+ <div class="offcanvas-menu">
|
|
|
+ <div class="offcanvas-menu-inner">%s</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <?php
|
|
|
- return ob_get_clean();
|
|
|
+ </div>',
|
|
|
+ $template_part
|
|
|
+ );
|
|
|
}
|
|
|
|
|
|
/***********************************************************
|