This commit is contained in:
2026-07-02 15:54:39 -06:00
commit 9883323161
17470 changed files with 4470592 additions and 0 deletions
@@ -0,0 +1,50 @@
<?php
/**
* Handles the Content block.
*
* @package GenerateBlocksPro
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
/**
* Content block class.
*/
class GenerateBlocks_Block_Navigation extends GenerateBlocks_Block {
/**
* Keep track of all blocks of this type on the page.
*
* @var array $block_ids The current block id.
*/
protected static $block_ids = [];
/**
* Store our block name.
*
* @var string $block_name The block name.
*/
public static $block_name = 'generateblocks-pro/navigation';
/**
* Render the Element block.
*
* @param array $attributes The block attributes.
* @param string $block_content The block content.
* @param array $block The block.
*/
public static function render_block( $attributes, $block_content, $block ) {
// Add styles to this block if needed.
$block_content = generateblocks_maybe_add_block_css(
$block_content,
[
'class_name' => __CLASS__,
'attributes' => $attributes,
'block_ids' => self::$block_ids,
]
);
return $block_content;
}
}
@@ -0,0 +1,62 @@
<?php
/**
* Handle the navigation block.
*
* @package GenerateBlocks Pro
*/
// Include our files.
require_once 'class-navigation.php';
add_filter( 'block_editor_settings_all', 'generateblocks_pro_navigation_block_editor_settings', 20 );
/**
* Add block editor settings for the navigation block.
*
* @param array $settings The block editor settings.
*/
function generateblocks_pro_navigation_block_editor_settings( $settings ) {
$blocks_to_reset = [
'.editor-styles-wrapper .wp-block-generateblocks-pro-classic-menu',
'.editor-styles-wrapper .wp-block-generateblocks-pro-menu-container',
'.editor-styles-wrapper .wp-block-generateblocks-pro-menu-toggle',
'.editor-styles-wrapper .wp-block-generateblocks-pro-navigation',
];
$css = implode( ',', $blocks_to_reset ) . ' {max-width:unset;margin:0}';
$settings['styles'][] = [ 'css' => $css ];
return $settings;
}
add_filter( 'generateblocks_block_css', 'generateblocks_pro_navigation_block_css', 10, 2 );
/**
* Add block CSS for the navigation block.
*
* @param string $css The CSS to add.
* @param array $block The block data.
*
* @return string
*/
function generateblocks_pro_navigation_block_css( $css, $block ) {
if ( ! isset( $block['attributes']['uniqueId'] ) ) {
return $css;
}
$block_name = $block['block_name'] ?? '';
if ( 'generateblocks-pro/navigation' !== $block_name ) {
return $css;
}
$selector = '.gb-navigation-' . $block['attributes']['uniqueId'];
$mobile_breakpoint = $block['attributes']['htmlAttributes']['data-gb-mobile-breakpoint'] ?? '';
if ( $mobile_breakpoint ) {
$css .= "@media (width > {$mobile_breakpoint}) {{$selector} .gb-menu-toggle {display: none;}}";
$css .= "@media (max-width: {$mobile_breakpoint}) {{$selector} .gb-menu-container:not(.gb-menu-container--toggled) {display: none;}}";
} else {
$css .= "{$selector} .gb-menu-toggle {display: none;}";
}
return $css;
}