From 59936a17e9fa7d4393d2ec60ac375f8c4abcc61d Mon Sep 17 00:00:00 2001 From: George Mamadashvili Date: Wed, 20 Apr 2022 14:52:32 +0400 Subject: [PATCH 1/3] Block Locking: Register the 'lock' attribute on the server --- lib/block-supports/lock.php | 35 +++++++++++++++++++++++++++++++++++ lib/load.php | 1 + 2 files changed, 36 insertions(+) create mode 100644 lib/block-supports/lock.php diff --git a/lib/block-supports/lock.php b/lib/block-supports/lock.php new file mode 100644 index 00000000000000..2ba500c9eb0b0c --- /dev/null +++ b/lib/block-supports/lock.php @@ -0,0 +1,35 @@ +attributes ) { + $block_type->attributes = array(); + } + + if ( ! array_key_exists( 'lock', $block_type->attributes ) ) { + $block_type->attributes['lock'] = array( + 'type' => 'object', + ); + } +} + +// Register the block support. +WP_Block_Supports::get_instance()->register( + 'lock', + array( + 'register_attribute' => 'gutenberg_register_lock_support', + ) +); diff --git a/lib/load.php b/lib/load.php index 20ec36d6a7a305..7d249deb3e0b9b 100644 --- a/lib/load.php +++ b/lib/load.php @@ -156,6 +156,7 @@ function gutenberg_is_experiment_enabled( $name ) { require __DIR__ . '/block-supports/typography.php'; require __DIR__ . '/block-supports/border.php'; require __DIR__ . '/block-supports/layout.php'; +require __DIR__ . '/block-supports/lock.php'; require __DIR__ . '/block-supports/spacing.php'; require __DIR__ . '/block-supports/dimensions.php'; require __DIR__ . '/block-supports/duotone.php'; From 1212c56d9806e133ff1ad98ced46e30ffd42acd9 Mon Sep 17 00:00:00 2001 From: George Mamadashvili Date: Wed, 20 Apr 2022 23:23:40 +0400 Subject: [PATCH 2/3] Update registration method --- lib/block-supports/lock.php | 35 ----------------------------- lib/compat/wordpress-6.0/blocks.php | 27 ++++++++++++++++++++++ lib/load.php | 1 - 3 files changed, 27 insertions(+), 36 deletions(-) delete mode 100644 lib/block-supports/lock.php diff --git a/lib/block-supports/lock.php b/lib/block-supports/lock.php deleted file mode 100644 index 2ba500c9eb0b0c..00000000000000 --- a/lib/block-supports/lock.php +++ /dev/null @@ -1,35 +0,0 @@ -attributes ) { - $block_type->attributes = array(); - } - - if ( ! array_key_exists( 'lock', $block_type->attributes ) ) { - $block_type->attributes['lock'] = array( - 'type' => 'object', - ); - } -} - -// Register the block support. -WP_Block_Supports::get_instance()->register( - 'lock', - array( - 'register_attribute' => 'gutenberg_register_lock_support', - ) -); diff --git a/lib/compat/wordpress-6.0/blocks.php b/lib/compat/wordpress-6.0/blocks.php index 547d3246319fde..0249caf6d87c0e 100644 --- a/lib/compat/wordpress-6.0/blocks.php +++ b/lib/compat/wordpress-6.0/blocks.php @@ -269,3 +269,30 @@ function ( $response ) { ); } add_action( 'rest_api_init', 'gutenberg_rest_comment_set_children_as_embeddable' ); + +/** + * Registers the lock block attribute for block types. + * + * Once 6.0 is the minimum supported WordPress version for the Gutenberg + * plugin, this shim can be removed + * + * Doesn't need to be backported into Core. + * + * @param array $args Array of arguments for registering a block type. + * @return array $args + */ +function gutenberg_register_lock_attribute( $args ) { + // Setup attributes if needed. + if ( empty( $args['attributes'] ) ) { + $args['attributes'] = array(); + } + + if ( ! array_key_exists( 'lock', $args['attributes'] ) ) { + $args['attributes']['lock'] = array( + 'type' => 'object', + ); + } + + return $args; +} +add_filter( 'register_block_type_args', 'gutenberg_register_lock_attribute' ); diff --git a/lib/load.php b/lib/load.php index 7d249deb3e0b9b..20ec36d6a7a305 100644 --- a/lib/load.php +++ b/lib/load.php @@ -156,7 +156,6 @@ function gutenberg_is_experiment_enabled( $name ) { require __DIR__ . '/block-supports/typography.php'; require __DIR__ . '/block-supports/border.php'; require __DIR__ . '/block-supports/layout.php'; -require __DIR__ . '/block-supports/lock.php'; require __DIR__ . '/block-supports/spacing.php'; require __DIR__ . '/block-supports/dimensions.php'; require __DIR__ . '/block-supports/duotone.php'; From 78983eda312db7fd1a7214854d2ac7e6e1a6236d Mon Sep 17 00:00:00 2001 From: George Mamadashvili Date: Thu, 21 Apr 2022 12:30:02 +0400 Subject: [PATCH 3/3] Update check --- lib/compat/wordpress-6.0/blocks.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/compat/wordpress-6.0/blocks.php b/lib/compat/wordpress-6.0/blocks.php index 0249caf6d87c0e..d839257a6ff643 100644 --- a/lib/compat/wordpress-6.0/blocks.php +++ b/lib/compat/wordpress-6.0/blocks.php @@ -283,7 +283,7 @@ function ( $response ) { */ function gutenberg_register_lock_attribute( $args ) { // Setup attributes if needed. - if ( empty( $args['attributes'] ) ) { + if ( ! isset( $args['attributes'] ) ) { $args['attributes'] = array(); }