2021-12-13 20:57:26 -05:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* Server-side rendering of the `core/image` block.
|
|
|
|
*
|
|
|
|
* @package WordPress
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Renders the `core/image` block on the server,
|
|
|
|
* adding a data-id attribute to the element if core/gallery has added on pre-render.
|
|
|
|
*
|
2024-05-23 15:39:28 -04:00
|
|
|
* @since 5.9.0
|
|
|
|
*
|
Update npm packages to latest versions for 6.4 beta 3.
The npm packages needed a further update for beta 3 in preparation for 6.4.
Props @richtabor, @mmaattiiaass, @tellthemachines, @mamaduka, @swissspidy, @scruffian, @andraganescu, @andrewserong, @mujuonly, @get_dave, @ntsekouras, @carlosgprim, @ramonopoly, @jameskoster, @wildworks, @aaronrobertshaw, @czapla, @santosguillamot, @artemiosans, @afercia, @glendaviesnz, @kevin940726, @mikachan, @siobhyb.
See #59411.
Built from https://develop.svn.wordpress.org/trunk@56808
git-svn-id: http://core.svn.wordpress.org/trunk@56320 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-10-09 13:24:24 -04:00
|
|
|
* @param array $attributes The block attributes.
|
|
|
|
* @param string $content The block content.
|
|
|
|
* @param WP_Block $block The block object.
|
|
|
|
*
|
|
|
|
* @return string The block content with the data-id attribute added.
|
2021-12-13 20:57:26 -05:00
|
|
|
*/
|
2023-09-26 10:23:26 -04:00
|
|
|
function render_block_core_image( $attributes, $content, $block ) {
|
Editor: Update npm packages ahead of 6.4 RC1.
Updates the npm packages and code for:
* [https://github.com/WordPress/gutenberg/pull/55121 List: fix forward merging of nested list]
* [https://github.com/WordPress/gutenberg/pull/55182 Update consent string for using private APIs.]
* [https://github.com/WordPress/gutenberg/pull/55204 useBlockSettings: add missing useMemo dependencies]
* [https://github.com/WordPress/gutenberg/pull/55120 Remove the lightbox filter and view file when the lightbox setting is disabled.]
* [https://github.com/WordPress/gutenberg/pull/55245 Patterns: Remove the version enforcement for npm in engines field]
* [https://github.com/WordPress/gutenberg/pull/55237 Remove `@return void` from PHP function docs]
* [https://github.com/WordPress/gutenberg/pull/55141 Image: Disable lightbox editor UI for linked images]
* [https://github.com/WordPress/gutenberg/pull/55269 Image: Stop crashing with Lightbox on image blocks without an image]
* [https://github.com/WordPress/gutenberg/pull/55021 Update fullscreen icon]
* [https://github.com/WordPress/gutenberg/pull/55217 Template Part block: Fall back to current theme if no theme attribute is given.] This change is part of fix for a performance regression re-introduced by [56818].
References:
* [https://github.com/WordPress/gutenberg/pull/55298 Gutenberg PR 55298] Cherry-pick commits
Follow-up to [56818], [56816].
Props ellatrix, peterwilsoncc, jsnajdr, afercia, gziolo, isabel_brison, artemiosans, richtabor, bernhard-reiter, flixos90, mikachan, spacedmonkey, hellofromTonya.
See #59583, #59411.
Built from https://develop.svn.wordpress.org/trunk@56849
git-svn-id: http://core.svn.wordpress.org/trunk@56361 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-10-12 09:58:15 -04:00
|
|
|
if ( false === stripos( $content, '<img' ) ) {
|
|
|
|
return '';
|
|
|
|
}
|
2023-06-27 10:24:19 -04:00
|
|
|
|
2024-02-09 13:22:22 -05:00
|
|
|
$p = new WP_HTML_Tag_Processor( $content );
|
2023-06-27 10:24:19 -04:00
|
|
|
|
2024-02-09 13:22:22 -05:00
|
|
|
if ( ! $p->next_tag( 'img' ) || null === $p->get_attribute( 'src' ) ) {
|
2023-06-27 10:24:19 -04:00
|
|
|
return '';
|
|
|
|
}
|
|
|
|
|
2024-07-09 09:45:25 -04:00
|
|
|
$has_id_binding = isset( $attributes['metadata']['bindings']['id'] ) && isset( $attributes['id'] );
|
|
|
|
|
|
|
|
// Ensure the `wp-image-id` classname on the image block supports block bindings.
|
|
|
|
if ( $has_id_binding ) {
|
|
|
|
// If there's a mismatch with the 'wp-image-' class and the actual id, the id was
|
|
|
|
// probably overridden by block bindings. Update it to the correct value.
|
|
|
|
// See https://github.com/WordPress/gutenberg/issues/62886 for why this is needed.
|
|
|
|
$id = $attributes['id'];
|
|
|
|
$image_classnames = $p->get_attribute( 'class' );
|
|
|
|
$class_with_binding_value = "wp-image-$id";
|
|
|
|
if ( is_string( $image_classnames ) && ! str_contains( $image_classnames, $class_with_binding_value ) ) {
|
|
|
|
$image_classnames = preg_replace( '/wp-image-(\d+)/', $class_with_binding_value, $image_classnames );
|
|
|
|
$p->set_attribute( 'class', $image_classnames );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// For backwards compatibility, the data-id html attribute is only set for
|
|
|
|
// image blocks nested in a gallery. Detect if the image is in a gallery by
|
|
|
|
// checking the data-id attribute.
|
|
|
|
// See the `block_core_gallery_data_id_backcompatibility` function.
|
2021-12-13 20:57:26 -05:00
|
|
|
if ( isset( $attributes['data-id'] ) ) {
|
2024-07-09 09:45:25 -04:00
|
|
|
// If there's a binding for the `id`, the `id` attribute is used for the
|
|
|
|
// value, since `data-id` does not support block bindings.
|
|
|
|
// Else the `data-id` is used for backwards compatibility, since
|
|
|
|
// third parties may be filtering its value.
|
|
|
|
$data_id = $has_id_binding ? $attributes['id'] : $attributes['data-id'];
|
|
|
|
$p->set_attribute( 'data-id', $data_id );
|
2021-12-13 20:57:26 -05:00
|
|
|
}
|
|
|
|
|
2023-09-26 10:23:26 -04:00
|
|
|
$link_destination = isset( $attributes['linkDestination'] ) ? $attributes['linkDestination'] : 'none';
|
|
|
|
$lightbox_settings = block_core_image_get_lightbox_settings( $block->parsed_block );
|
|
|
|
|
Editor: Update npm packages ahead of 6.4 RC1.
Updates the npm packages and code for:
* [https://github.com/WordPress/gutenberg/pull/55121 List: fix forward merging of nested list]
* [https://github.com/WordPress/gutenberg/pull/55182 Update consent string for using private APIs.]
* [https://github.com/WordPress/gutenberg/pull/55204 useBlockSettings: add missing useMemo dependencies]
* [https://github.com/WordPress/gutenberg/pull/55120 Remove the lightbox filter and view file when the lightbox setting is disabled.]
* [https://github.com/WordPress/gutenberg/pull/55245 Patterns: Remove the version enforcement for npm in engines field]
* [https://github.com/WordPress/gutenberg/pull/55237 Remove `@return void` from PHP function docs]
* [https://github.com/WordPress/gutenberg/pull/55141 Image: Disable lightbox editor UI for linked images]
* [https://github.com/WordPress/gutenberg/pull/55269 Image: Stop crashing with Lightbox on image blocks without an image]
* [https://github.com/WordPress/gutenberg/pull/55021 Update fullscreen icon]
* [https://github.com/WordPress/gutenberg/pull/55217 Template Part block: Fall back to current theme if no theme attribute is given.] This change is part of fix for a performance regression re-introduced by [56818].
References:
* [https://github.com/WordPress/gutenberg/pull/55298 Gutenberg PR 55298] Cherry-pick commits
Follow-up to [56818], [56816].
Props ellatrix, peterwilsoncc, jsnajdr, afercia, gziolo, isabel_brison, artemiosans, richtabor, bernhard-reiter, flixos90, mikachan, spacedmonkey, hellofromTonya.
See #59583, #59411.
Built from https://develop.svn.wordpress.org/trunk@56849
git-svn-id: http://core.svn.wordpress.org/trunk@56361 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-10-12 09:58:15 -04:00
|
|
|
/*
|
2024-02-09 13:22:22 -05:00
|
|
|
* If the lightbox is enabled and the image is not linked, adds the filter and
|
|
|
|
* the JavaScript view file.
|
Editor: Update npm packages ahead of 6.4 RC1.
Updates the npm packages and code for:
* [https://github.com/WordPress/gutenberg/pull/55121 List: fix forward merging of nested list]
* [https://github.com/WordPress/gutenberg/pull/55182 Update consent string for using private APIs.]
* [https://github.com/WordPress/gutenberg/pull/55204 useBlockSettings: add missing useMemo dependencies]
* [https://github.com/WordPress/gutenberg/pull/55120 Remove the lightbox filter and view file when the lightbox setting is disabled.]
* [https://github.com/WordPress/gutenberg/pull/55245 Patterns: Remove the version enforcement for npm in engines field]
* [https://github.com/WordPress/gutenberg/pull/55237 Remove `@return void` from PHP function docs]
* [https://github.com/WordPress/gutenberg/pull/55141 Image: Disable lightbox editor UI for linked images]
* [https://github.com/WordPress/gutenberg/pull/55269 Image: Stop crashing with Lightbox on image blocks without an image]
* [https://github.com/WordPress/gutenberg/pull/55021 Update fullscreen icon]
* [https://github.com/WordPress/gutenberg/pull/55217 Template Part block: Fall back to current theme if no theme attribute is given.] This change is part of fix for a performance regression re-introduced by [56818].
References:
* [https://github.com/WordPress/gutenberg/pull/55298 Gutenberg PR 55298] Cherry-pick commits
Follow-up to [56818], [56816].
Props ellatrix, peterwilsoncc, jsnajdr, afercia, gziolo, isabel_brison, artemiosans, richtabor, bernhard-reiter, flixos90, mikachan, spacedmonkey, hellofromTonya.
See #59583, #59411.
Built from https://develop.svn.wordpress.org/trunk@56849
git-svn-id: http://core.svn.wordpress.org/trunk@56361 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-10-12 09:58:15 -04:00
|
|
|
*/
|
|
|
|
if (
|
|
|
|
isset( $lightbox_settings ) &&
|
|
|
|
'none' === $link_destination &&
|
|
|
|
isset( $lightbox_settings['enabled'] ) &&
|
|
|
|
true === $lightbox_settings['enabled']
|
|
|
|
) {
|
2024-09-23 02:52:26 -04:00
|
|
|
wp_enqueue_script_module( '@wordpress/block-library/image/view' );
|
2023-09-26 10:23:26 -04:00
|
|
|
|
Editor: Update npm packages ahead of 6.4 RC1.
Updates the npm packages and code for:
* [https://github.com/WordPress/gutenberg/pull/55121 List: fix forward merging of nested list]
* [https://github.com/WordPress/gutenberg/pull/55182 Update consent string for using private APIs.]
* [https://github.com/WordPress/gutenberg/pull/55204 useBlockSettings: add missing useMemo dependencies]
* [https://github.com/WordPress/gutenberg/pull/55120 Remove the lightbox filter and view file when the lightbox setting is disabled.]
* [https://github.com/WordPress/gutenberg/pull/55245 Patterns: Remove the version enforcement for npm in engines field]
* [https://github.com/WordPress/gutenberg/pull/55237 Remove `@return void` from PHP function docs]
* [https://github.com/WordPress/gutenberg/pull/55141 Image: Disable lightbox editor UI for linked images]
* [https://github.com/WordPress/gutenberg/pull/55269 Image: Stop crashing with Lightbox on image blocks without an image]
* [https://github.com/WordPress/gutenberg/pull/55021 Update fullscreen icon]
* [https://github.com/WordPress/gutenberg/pull/55217 Template Part block: Fall back to current theme if no theme attribute is given.] This change is part of fix for a performance regression re-introduced by [56818].
References:
* [https://github.com/WordPress/gutenberg/pull/55298 Gutenberg PR 55298] Cherry-pick commits
Follow-up to [56818], [56816].
Props ellatrix, peterwilsoncc, jsnajdr, afercia, gziolo, isabel_brison, artemiosans, richtabor, bernhard-reiter, flixos90, mikachan, spacedmonkey, hellofromTonya.
See #59583, #59411.
Built from https://develop.svn.wordpress.org/trunk@56849
git-svn-id: http://core.svn.wordpress.org/trunk@56361 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-10-12 09:58:15 -04:00
|
|
|
/*
|
Editor: Update the WordPress packages to the Gutenberg 16.7 RC2 version.
This patch, somewhat small brings a lot to WordPress.
This includes features like:
- DataViews.
- Customization tools like box shadow, background size and repeat.
- UI improvements in the site editor.
- Preferences sharing between the post and site editors.
- Unified panels and editors between post and site editors.
- Improved template mode in the post editor.
- Iterations to multiple interactive blocks.
- Preparing the blocks and UI for pattern overrides.
- and a lot more.
Props luisherranz, gziolo, isabel_brison, costdev, jonsurrell, peterwilsoncc, get_dave, antonvlasenko, desrosj.
See #60315.
Built from https://develop.svn.wordpress.org/trunk@57377
git-svn-id: http://core.svn.wordpress.org/trunk@56883 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-29 16:07:12 -05:00
|
|
|
* This render needs to happen in a filter with priority 15 to ensure that
|
|
|
|
* it runs after the duotone filter and that duotone styles are applied to
|
|
|
|
* the image in the lightbox. Lightbox has to work with any plugins that
|
2024-02-09 13:22:22 -05:00
|
|
|
* might use filters as well. Removing this can be considered in the future
|
|
|
|
* if the way the blocks are rendered changes, or if a new kind of filter is
|
|
|
|
* introduced.
|
Editor: Update npm packages ahead of 6.4 RC1.
Updates the npm packages and code for:
* [https://github.com/WordPress/gutenberg/pull/55121 List: fix forward merging of nested list]
* [https://github.com/WordPress/gutenberg/pull/55182 Update consent string for using private APIs.]
* [https://github.com/WordPress/gutenberg/pull/55204 useBlockSettings: add missing useMemo dependencies]
* [https://github.com/WordPress/gutenberg/pull/55120 Remove the lightbox filter and view file when the lightbox setting is disabled.]
* [https://github.com/WordPress/gutenberg/pull/55245 Patterns: Remove the version enforcement for npm in engines field]
* [https://github.com/WordPress/gutenberg/pull/55237 Remove `@return void` from PHP function docs]
* [https://github.com/WordPress/gutenberg/pull/55141 Image: Disable lightbox editor UI for linked images]
* [https://github.com/WordPress/gutenberg/pull/55269 Image: Stop crashing with Lightbox on image blocks without an image]
* [https://github.com/WordPress/gutenberg/pull/55021 Update fullscreen icon]
* [https://github.com/WordPress/gutenberg/pull/55217 Template Part block: Fall back to current theme if no theme attribute is given.] This change is part of fix for a performance regression re-introduced by [56818].
References:
* [https://github.com/WordPress/gutenberg/pull/55298 Gutenberg PR 55298] Cherry-pick commits
Follow-up to [56818], [56816].
Props ellatrix, peterwilsoncc, jsnajdr, afercia, gziolo, isabel_brison, artemiosans, richtabor, bernhard-reiter, flixos90, mikachan, spacedmonkey, hellofromTonya.
See #59583, #59411.
Built from https://develop.svn.wordpress.org/trunk@56849
git-svn-id: http://core.svn.wordpress.org/trunk@56361 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-10-12 09:58:15 -04:00
|
|
|
*/
|
Update npm packages to latest.
The npm packages needed a further update for beta 2 in preparation for 6.4.
Props @mmaattiiaass , @wildworks , @aaronrobertshaw, @bartkalisz, @mamaduka, @artemiosans, @youknowriad, @czapla, @richtabor, @glendaviesnz, @pbking, @cbravobernal, @madhudollu, @kevin940726, @adamsilverstein, @get_dave, @ntsekouras, @ramonopoly, @jffng, @swissspidy, @carlosgprim, @siobhyb, @mikachan.
See #59411.
Built from https://develop.svn.wordpress.org/trunk@56755
git-svn-id: http://core.svn.wordpress.org/trunk@56267 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-10-02 14:58:22 -04:00
|
|
|
add_filter( 'render_block_core/image', 'block_core_image_render_lightbox', 15, 2 );
|
Editor: Update npm packages ahead of 6.4 RC1.
Updates the npm packages and code for:
* [https://github.com/WordPress/gutenberg/pull/55121 List: fix forward merging of nested list]
* [https://github.com/WordPress/gutenberg/pull/55182 Update consent string for using private APIs.]
* [https://github.com/WordPress/gutenberg/pull/55204 useBlockSettings: add missing useMemo dependencies]
* [https://github.com/WordPress/gutenberg/pull/55120 Remove the lightbox filter and view file when the lightbox setting is disabled.]
* [https://github.com/WordPress/gutenberg/pull/55245 Patterns: Remove the version enforcement for npm in engines field]
* [https://github.com/WordPress/gutenberg/pull/55237 Remove `@return void` from PHP function docs]
* [https://github.com/WordPress/gutenberg/pull/55141 Image: Disable lightbox editor UI for linked images]
* [https://github.com/WordPress/gutenberg/pull/55269 Image: Stop crashing with Lightbox on image blocks without an image]
* [https://github.com/WordPress/gutenberg/pull/55021 Update fullscreen icon]
* [https://github.com/WordPress/gutenberg/pull/55217 Template Part block: Fall back to current theme if no theme attribute is given.] This change is part of fix for a performance regression re-introduced by [56818].
References:
* [https://github.com/WordPress/gutenberg/pull/55298 Gutenberg PR 55298] Cherry-pick commits
Follow-up to [56818], [56816].
Props ellatrix, peterwilsoncc, jsnajdr, afercia, gziolo, isabel_brison, artemiosans, richtabor, bernhard-reiter, flixos90, mikachan, spacedmonkey, hellofromTonya.
See #59583, #59411.
Built from https://develop.svn.wordpress.org/trunk@56849
git-svn-id: http://core.svn.wordpress.org/trunk@56361 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-10-12 09:58:15 -04:00
|
|
|
} else {
|
|
|
|
/*
|
Editor: Update the WordPress packages to the Gutenberg 16.7 RC2 version.
This patch, somewhat small brings a lot to WordPress.
This includes features like:
- DataViews.
- Customization tools like box shadow, background size and repeat.
- UI improvements in the site editor.
- Preferences sharing between the post and site editors.
- Unified panels and editors between post and site editors.
- Improved template mode in the post editor.
- Iterations to multiple interactive blocks.
- Preparing the blocks and UI for pattern overrides.
- and a lot more.
Props luisherranz, gziolo, isabel_brison, costdev, jonsurrell, peterwilsoncc, get_dave, antonvlasenko, desrosj.
See #60315.
Built from https://develop.svn.wordpress.org/trunk@57377
git-svn-id: http://core.svn.wordpress.org/trunk@56883 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-29 16:07:12 -05:00
|
|
|
* Remove the filter if previously added by other Image blocks.
|
Editor: Update npm packages ahead of 6.4 RC1.
Updates the npm packages and code for:
* [https://github.com/WordPress/gutenberg/pull/55121 List: fix forward merging of nested list]
* [https://github.com/WordPress/gutenberg/pull/55182 Update consent string for using private APIs.]
* [https://github.com/WordPress/gutenberg/pull/55204 useBlockSettings: add missing useMemo dependencies]
* [https://github.com/WordPress/gutenberg/pull/55120 Remove the lightbox filter and view file when the lightbox setting is disabled.]
* [https://github.com/WordPress/gutenberg/pull/55245 Patterns: Remove the version enforcement for npm in engines field]
* [https://github.com/WordPress/gutenberg/pull/55237 Remove `@return void` from PHP function docs]
* [https://github.com/WordPress/gutenberg/pull/55141 Image: Disable lightbox editor UI for linked images]
* [https://github.com/WordPress/gutenberg/pull/55269 Image: Stop crashing with Lightbox on image blocks without an image]
* [https://github.com/WordPress/gutenberg/pull/55021 Update fullscreen icon]
* [https://github.com/WordPress/gutenberg/pull/55217 Template Part block: Fall back to current theme if no theme attribute is given.] This change is part of fix for a performance regression re-introduced by [56818].
References:
* [https://github.com/WordPress/gutenberg/pull/55298 Gutenberg PR 55298] Cherry-pick commits
Follow-up to [56818], [56816].
Props ellatrix, peterwilsoncc, jsnajdr, afercia, gziolo, isabel_brison, artemiosans, richtabor, bernhard-reiter, flixos90, mikachan, spacedmonkey, hellofromTonya.
See #59583, #59411.
Built from https://develop.svn.wordpress.org/trunk@56849
git-svn-id: http://core.svn.wordpress.org/trunk@56361 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-10-12 09:58:15 -04:00
|
|
|
*/
|
|
|
|
remove_filter( 'render_block_core/image', 'block_core_image_render_lightbox', 15 );
|
2023-09-26 10:23:26 -04:00
|
|
|
}
|
|
|
|
|
2024-02-09 13:22:22 -05:00
|
|
|
return $p->get_updated_html();
|
2023-06-27 10:24:19 -04:00
|
|
|
}
|
2021-12-13 20:57:26 -05:00
|
|
|
|
2023-09-26 10:23:26 -04:00
|
|
|
/**
|
Update npm packages to latest versions for 6.4 beta 3.
The npm packages needed a further update for beta 3 in preparation for 6.4.
Props @richtabor, @mmaattiiaass, @tellthemachines, @mamaduka, @swissspidy, @scruffian, @andraganescu, @andrewserong, @mujuonly, @get_dave, @ntsekouras, @carlosgprim, @ramonopoly, @jameskoster, @wildworks, @aaronrobertshaw, @czapla, @santosguillamot, @artemiosans, @afercia, @glendaviesnz, @kevin940726, @mikachan, @siobhyb.
See #59411.
Built from https://develop.svn.wordpress.org/trunk@56808
git-svn-id: http://core.svn.wordpress.org/trunk@56320 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-10-09 13:24:24 -04:00
|
|
|
* Adds the lightboxEnabled flag to the block data.
|
2023-09-26 10:23:26 -04:00
|
|
|
*
|
|
|
|
* This is used to determine whether the lightbox should be rendered or not.
|
|
|
|
*
|
2024-05-23 15:39:28 -04:00
|
|
|
* @since 6.4.0
|
|
|
|
*
|
Update npm packages to latest versions for 6.4 beta 3.
The npm packages needed a further update for beta 3 in preparation for 6.4.
Props @richtabor, @mmaattiiaass, @tellthemachines, @mamaduka, @swissspidy, @scruffian, @andraganescu, @andrewserong, @mujuonly, @get_dave, @ntsekouras, @carlosgprim, @ramonopoly, @jameskoster, @wildworks, @aaronrobertshaw, @czapla, @santosguillamot, @artemiosans, @afercia, @glendaviesnz, @kevin940726, @mikachan, @siobhyb.
See #59411.
Built from https://develop.svn.wordpress.org/trunk@56808
git-svn-id: http://core.svn.wordpress.org/trunk@56320 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-10-09 13:24:24 -04:00
|
|
|
* @param array $block Block data.
|
|
|
|
*
|
|
|
|
* @return array Filtered block data.
|
2023-09-26 10:23:26 -04:00
|
|
|
*/
|
|
|
|
function block_core_image_get_lightbox_settings( $block ) {
|
2024-02-09 13:22:22 -05:00
|
|
|
// Gets the lightbox setting from the block attributes.
|
2023-09-26 10:23:26 -04:00
|
|
|
if ( isset( $block['attrs']['lightbox'] ) ) {
|
|
|
|
$lightbox_settings = $block['attrs']['lightbox'];
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( ! isset( $lightbox_settings ) ) {
|
|
|
|
$lightbox_settings = wp_get_global_settings( array( 'lightbox' ), array( 'block_name' => 'core/image' ) );
|
|
|
|
|
|
|
|
// If not present in global settings, check the top-level global settings.
|
|
|
|
//
|
|
|
|
// NOTE: If no block-level settings are found, the previous call to
|
2024-02-09 13:22:22 -05:00
|
|
|
// `wp_get_global_settings` will return the whole `theme.json` structure in
|
|
|
|
// which case we can check if the "lightbox" key is present at the top-level
|
|
|
|
// of the global settings and use its value.
|
2023-09-26 10:23:26 -04:00
|
|
|
if ( isset( $lightbox_settings['lightbox'] ) ) {
|
|
|
|
$lightbox_settings = wp_get_global_settings( array( 'lightbox' ) );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return $lightbox_settings ?? null;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
Update npm packages to latest versions for 6.4 beta 3.
The npm packages needed a further update for beta 3 in preparation for 6.4.
Props @richtabor, @mmaattiiaass, @tellthemachines, @mamaduka, @swissspidy, @scruffian, @andraganescu, @andrewserong, @mujuonly, @get_dave, @ntsekouras, @carlosgprim, @ramonopoly, @jameskoster, @wildworks, @aaronrobertshaw, @czapla, @santosguillamot, @artemiosans, @afercia, @glendaviesnz, @kevin940726, @mikachan, @siobhyb.
See #59411.
Built from https://develop.svn.wordpress.org/trunk@56808
git-svn-id: http://core.svn.wordpress.org/trunk@56320 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-10-09 13:24:24 -04:00
|
|
|
* Adds the directives and layout needed for the lightbox behavior.
|
|
|
|
*
|
2024-05-23 15:39:28 -04:00
|
|
|
* @since 6.4.0
|
|
|
|
*
|
Update npm packages to latest versions for 6.4 beta 3.
The npm packages needed a further update for beta 3 in preparation for 6.4.
Props @richtabor, @mmaattiiaass, @tellthemachines, @mamaduka, @swissspidy, @scruffian, @andraganescu, @andrewserong, @mujuonly, @get_dave, @ntsekouras, @carlosgprim, @ramonopoly, @jameskoster, @wildworks, @aaronrobertshaw, @czapla, @santosguillamot, @artemiosans, @afercia, @glendaviesnz, @kevin940726, @mikachan, @siobhyb.
See #59411.
Built from https://develop.svn.wordpress.org/trunk@56808
git-svn-id: http://core.svn.wordpress.org/trunk@56320 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-10-09 13:24:24 -04:00
|
|
|
* @param string $block_content Rendered block content.
|
|
|
|
* @param array $block Block object.
|
2023-09-26 10:23:26 -04:00
|
|
|
*
|
Update npm packages to latest versions for 6.4 beta 3.
The npm packages needed a further update for beta 3 in preparation for 6.4.
Props @richtabor, @mmaattiiaass, @tellthemachines, @mamaduka, @swissspidy, @scruffian, @andraganescu, @andrewserong, @mujuonly, @get_dave, @ntsekouras, @carlosgprim, @ramonopoly, @jameskoster, @wildworks, @aaronrobertshaw, @czapla, @santosguillamot, @artemiosans, @afercia, @glendaviesnz, @kevin940726, @mikachan, @siobhyb.
See #59411.
Built from https://develop.svn.wordpress.org/trunk@56808
git-svn-id: http://core.svn.wordpress.org/trunk@56320 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-10-09 13:24:24 -04:00
|
|
|
* @return string Filtered block content.
|
2023-09-26 10:23:26 -04:00
|
|
|
*/
|
|
|
|
function block_core_image_render_lightbox( $block_content, $block ) {
|
Editor: Update npm packages ahead of 6.4 RC1.
Updates the npm packages and code for:
* [https://github.com/WordPress/gutenberg/pull/55121 List: fix forward merging of nested list]
* [https://github.com/WordPress/gutenberg/pull/55182 Update consent string for using private APIs.]
* [https://github.com/WordPress/gutenberg/pull/55204 useBlockSettings: add missing useMemo dependencies]
* [https://github.com/WordPress/gutenberg/pull/55120 Remove the lightbox filter and view file when the lightbox setting is disabled.]
* [https://github.com/WordPress/gutenberg/pull/55245 Patterns: Remove the version enforcement for npm in engines field]
* [https://github.com/WordPress/gutenberg/pull/55237 Remove `@return void` from PHP function docs]
* [https://github.com/WordPress/gutenberg/pull/55141 Image: Disable lightbox editor UI for linked images]
* [https://github.com/WordPress/gutenberg/pull/55269 Image: Stop crashing with Lightbox on image blocks without an image]
* [https://github.com/WordPress/gutenberg/pull/55021 Update fullscreen icon]
* [https://github.com/WordPress/gutenberg/pull/55217 Template Part block: Fall back to current theme if no theme attribute is given.] This change is part of fix for a performance regression re-introduced by [56818].
References:
* [https://github.com/WordPress/gutenberg/pull/55298 Gutenberg PR 55298] Cherry-pick commits
Follow-up to [56818], [56816].
Props ellatrix, peterwilsoncc, jsnajdr, afercia, gziolo, isabel_brison, artemiosans, richtabor, bernhard-reiter, flixos90, mikachan, spacedmonkey, hellofromTonya.
See #59583, #59411.
Built from https://develop.svn.wordpress.org/trunk@56849
git-svn-id: http://core.svn.wordpress.org/trunk@56361 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-10-12 09:58:15 -04:00
|
|
|
/*
|
2024-02-09 13:22:22 -05:00
|
|
|
* If there's no IMG tag in the block then return the given block content
|
|
|
|
* as-is. There's nothing that this code can knowingly modify to add the
|
|
|
|
* lightbox behavior.
|
Editor: Update npm packages ahead of 6.4 RC1.
Updates the npm packages and code for:
* [https://github.com/WordPress/gutenberg/pull/55121 List: fix forward merging of nested list]
* [https://github.com/WordPress/gutenberg/pull/55182 Update consent string for using private APIs.]
* [https://github.com/WordPress/gutenberg/pull/55204 useBlockSettings: add missing useMemo dependencies]
* [https://github.com/WordPress/gutenberg/pull/55120 Remove the lightbox filter and view file when the lightbox setting is disabled.]
* [https://github.com/WordPress/gutenberg/pull/55245 Patterns: Remove the version enforcement for npm in engines field]
* [https://github.com/WordPress/gutenberg/pull/55237 Remove `@return void` from PHP function docs]
* [https://github.com/WordPress/gutenberg/pull/55141 Image: Disable lightbox editor UI for linked images]
* [https://github.com/WordPress/gutenberg/pull/55269 Image: Stop crashing with Lightbox on image blocks without an image]
* [https://github.com/WordPress/gutenberg/pull/55021 Update fullscreen icon]
* [https://github.com/WordPress/gutenberg/pull/55217 Template Part block: Fall back to current theme if no theme attribute is given.] This change is part of fix for a performance regression re-introduced by [56818].
References:
* [https://github.com/WordPress/gutenberg/pull/55298 Gutenberg PR 55298] Cherry-pick commits
Follow-up to [56818], [56816].
Props ellatrix, peterwilsoncc, jsnajdr, afercia, gziolo, isabel_brison, artemiosans, richtabor, bernhard-reiter, flixos90, mikachan, spacedmonkey, hellofromTonya.
See #59583, #59411.
Built from https://develop.svn.wordpress.org/trunk@56849
git-svn-id: http://core.svn.wordpress.org/trunk@56361 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-10-12 09:58:15 -04:00
|
|
|
*/
|
2024-02-09 13:22:22 -05:00
|
|
|
$p = new WP_HTML_Tag_Processor( $block_content );
|
|
|
|
if ( $p->next_tag( 'figure' ) ) {
|
|
|
|
$p->set_bookmark( 'figure' );
|
Editor: Update npm packages ahead of 6.4 RC1.
Updates the npm packages and code for:
* [https://github.com/WordPress/gutenberg/pull/55121 List: fix forward merging of nested list]
* [https://github.com/WordPress/gutenberg/pull/55182 Update consent string for using private APIs.]
* [https://github.com/WordPress/gutenberg/pull/55204 useBlockSettings: add missing useMemo dependencies]
* [https://github.com/WordPress/gutenberg/pull/55120 Remove the lightbox filter and view file when the lightbox setting is disabled.]
* [https://github.com/WordPress/gutenberg/pull/55245 Patterns: Remove the version enforcement for npm in engines field]
* [https://github.com/WordPress/gutenberg/pull/55237 Remove `@return void` from PHP function docs]
* [https://github.com/WordPress/gutenberg/pull/55141 Image: Disable lightbox editor UI for linked images]
* [https://github.com/WordPress/gutenberg/pull/55269 Image: Stop crashing with Lightbox on image blocks without an image]
* [https://github.com/WordPress/gutenberg/pull/55021 Update fullscreen icon]
* [https://github.com/WordPress/gutenberg/pull/55217 Template Part block: Fall back to current theme if no theme attribute is given.] This change is part of fix for a performance regression re-introduced by [56818].
References:
* [https://github.com/WordPress/gutenberg/pull/55298 Gutenberg PR 55298] Cherry-pick commits
Follow-up to [56818], [56816].
Props ellatrix, peterwilsoncc, jsnajdr, afercia, gziolo, isabel_brison, artemiosans, richtabor, bernhard-reiter, flixos90, mikachan, spacedmonkey, hellofromTonya.
See #59583, #59411.
Built from https://develop.svn.wordpress.org/trunk@56849
git-svn-id: http://core.svn.wordpress.org/trunk@56361 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-10-12 09:58:15 -04:00
|
|
|
}
|
2024-02-09 13:22:22 -05:00
|
|
|
if ( ! $p->next_tag( 'img' ) ) {
|
Editor: Update npm packages ahead of 6.4 RC1.
Updates the npm packages and code for:
* [https://github.com/WordPress/gutenberg/pull/55121 List: fix forward merging of nested list]
* [https://github.com/WordPress/gutenberg/pull/55182 Update consent string for using private APIs.]
* [https://github.com/WordPress/gutenberg/pull/55204 useBlockSettings: add missing useMemo dependencies]
* [https://github.com/WordPress/gutenberg/pull/55120 Remove the lightbox filter and view file when the lightbox setting is disabled.]
* [https://github.com/WordPress/gutenberg/pull/55245 Patterns: Remove the version enforcement for npm in engines field]
* [https://github.com/WordPress/gutenberg/pull/55237 Remove `@return void` from PHP function docs]
* [https://github.com/WordPress/gutenberg/pull/55141 Image: Disable lightbox editor UI for linked images]
* [https://github.com/WordPress/gutenberg/pull/55269 Image: Stop crashing with Lightbox on image blocks without an image]
* [https://github.com/WordPress/gutenberg/pull/55021 Update fullscreen icon]
* [https://github.com/WordPress/gutenberg/pull/55217 Template Part block: Fall back to current theme if no theme attribute is given.] This change is part of fix for a performance regression re-introduced by [56818].
References:
* [https://github.com/WordPress/gutenberg/pull/55298 Gutenberg PR 55298] Cherry-pick commits
Follow-up to [56818], [56816].
Props ellatrix, peterwilsoncc, jsnajdr, afercia, gziolo, isabel_brison, artemiosans, richtabor, bernhard-reiter, flixos90, mikachan, spacedmonkey, hellofromTonya.
See #59583, #59411.
Built from https://develop.svn.wordpress.org/trunk@56849
git-svn-id: http://core.svn.wordpress.org/trunk@56361 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-10-12 09:58:15 -04:00
|
|
|
return $block_content;
|
|
|
|
}
|
|
|
|
|
2024-02-09 13:22:22 -05:00
|
|
|
$alt = $p->get_attribute( 'alt' );
|
|
|
|
$img_uploaded_src = $p->get_attribute( 'src' );
|
|
|
|
$img_class_names = $p->get_attribute( 'class' );
|
|
|
|
$img_styles = $p->get_attribute( 'style' );
|
|
|
|
$img_width = 'none';
|
|
|
|
$img_height = 'none';
|
|
|
|
$aria_label = __( 'Enlarge image' );
|
2023-09-26 10:23:26 -04:00
|
|
|
|
2024-02-09 13:22:22 -05:00
|
|
|
if ( $alt ) {
|
2023-09-26 10:23:26 -04:00
|
|
|
/* translators: %s: Image alt text. */
|
2024-02-09 13:22:22 -05:00
|
|
|
$aria_label = sprintf( __( 'Enlarge image: %s' ), $alt );
|
2023-09-26 10:23:26 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
if ( isset( $block['attrs']['id'] ) ) {
|
|
|
|
$img_uploaded_src = wp_get_attachment_url( $block['attrs']['id'] );
|
|
|
|
$img_metadata = wp_get_attachment_metadata( $block['attrs']['id'] );
|
Update editor related npm packages for 6.4 RC1.
The npm packages needed a second part to the update for 6.4 RC1.
Props isabel_brison, andrewserong, jsnajdr, wildworks, joen, mciampini, tyxla, youknowriad, ramonopoly, spacedmonkey, dmsnell, mikachan, kishanjasani, czapla, siobhyb, darerodz, luisherranz
See #59411.
Built from https://develop.svn.wordpress.org/trunk@56945
git-svn-id: http://core.svn.wordpress.org/trunk@56456 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-10-16 15:17:19 -04:00
|
|
|
$img_width = $img_metadata['width'] ?? 'none';
|
|
|
|
$img_height = $img_metadata['height'] ?? 'none';
|
2023-09-26 10:23:26 -04:00
|
|
|
}
|
|
|
|
|
2024-02-09 13:22:22 -05:00
|
|
|
// Figure.
|
|
|
|
$p->seek( 'figure' );
|
|
|
|
$figure_class_names = $p->get_attribute( 'class' );
|
|
|
|
$figure_styles = $p->get_attribute( 'style' );
|
2024-09-19 21:55:35 -04:00
|
|
|
|
|
|
|
// Create unique id and set the image metadata in the state.
|
|
|
|
$unique_image_id = uniqid();
|
|
|
|
|
|
|
|
wp_interactivity_state(
|
|
|
|
'core/image',
|
|
|
|
array(
|
|
|
|
'metadata' => array(
|
|
|
|
$unique_image_id => array(
|
|
|
|
'uploadedSrc' => $img_uploaded_src,
|
|
|
|
'figureClassNames' => $figure_class_names,
|
|
|
|
'figureStyles' => $figure_styles,
|
|
|
|
'imgClassNames' => $img_class_names,
|
|
|
|
'imgStyles' => $img_styles,
|
|
|
|
'targetWidth' => $img_width,
|
|
|
|
'targetHeight' => $img_height,
|
|
|
|
'scaleAttr' => $block['attrs']['scale'] ?? false,
|
|
|
|
'ariaLabel' => $aria_label,
|
|
|
|
'alt' => $alt,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
)
|
|
|
|
);
|
|
|
|
|
2024-02-09 13:22:22 -05:00
|
|
|
$p->add_class( 'wp-lightbox-container' );
|
2024-02-13 08:12:17 -05:00
|
|
|
$p->set_attribute( 'data-wp-interactive', 'core/image' );
|
2024-02-09 13:22:22 -05:00
|
|
|
$p->set_attribute(
|
2023-09-26 10:23:26 -04:00
|
|
|
'data-wp-context',
|
2024-02-09 13:22:22 -05:00
|
|
|
wp_json_encode(
|
|
|
|
array(
|
2024-09-19 21:55:35 -04:00
|
|
|
'imageId' => $unique_image_id,
|
2024-02-09 13:22:22 -05:00
|
|
|
),
|
|
|
|
JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP
|
2023-09-26 10:23:26 -04:00
|
|
|
)
|
|
|
|
);
|
|
|
|
|
2024-02-09 13:22:22 -05:00
|
|
|
// Image.
|
|
|
|
$p->next_tag( 'img' );
|
|
|
|
$p->set_attribute( 'data-wp-init', 'callbacks.setButtonStyles' );
|
2024-05-31 14:59:00 -04:00
|
|
|
$p->set_attribute( 'data-wp-on-async--load', 'callbacks.setButtonStyles' );
|
|
|
|
$p->set_attribute( 'data-wp-on-async-window--resize', 'callbacks.setButtonStyles' );
|
2024-02-09 13:22:22 -05:00
|
|
|
// Sets an event callback on the `img` because the `figure` element can also
|
|
|
|
// contain a caption, and we don't want to trigger the lightbox when the
|
|
|
|
// caption is clicked.
|
2024-05-31 14:59:00 -04:00
|
|
|
$p->set_attribute( 'data-wp-on-async--click', 'actions.showLightbox' );
|
2024-09-19 21:55:35 -04:00
|
|
|
$p->set_attribute( 'data-wp-class--hide', 'state.isContentHidden' );
|
|
|
|
$p->set_attribute( 'data-wp-class--show', 'state.isContentVisible' );
|
2024-02-09 13:22:22 -05:00
|
|
|
|
|
|
|
$body_content = $p->get_updated_html();
|
|
|
|
|
|
|
|
// Adds a button alongside image in the body content.
|
2023-09-26 10:23:26 -04:00
|
|
|
$img = null;
|
|
|
|
preg_match( '/<img[^>]+>/', $body_content, $img );
|
Update npm packages to latest versions for 6.4 beta 3.
The npm packages needed a further update for beta 3 in preparation for 6.4.
Props @richtabor, @mmaattiiaass, @tellthemachines, @mamaduka, @swissspidy, @scruffian, @andraganescu, @andrewserong, @mujuonly, @get_dave, @ntsekouras, @carlosgprim, @ramonopoly, @jameskoster, @wildworks, @aaronrobertshaw, @czapla, @santosguillamot, @artemiosans, @afercia, @glendaviesnz, @kevin940726, @mikachan, @siobhyb.
See #59411.
Built from https://develop.svn.wordpress.org/trunk@56808
git-svn-id: http://core.svn.wordpress.org/trunk@56320 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-10-09 13:24:24 -04:00
|
|
|
|
|
|
|
$button =
|
|
|
|
$img[0]
|
|
|
|
. '<button
|
Update editor related npm packages for 6.4 RC2.
The npm packages needed update for 6.4 RC2.
Props siobhyb, cbravobernal, DAreRodz, luisherranz, artemiosans, afercia, jameskoster, czapla, alexstine, SantosGuillamot, ramonopoly, isabel_brison, andrewserong, jeryj, joedolson
See #59411.
Built from https://develop.svn.wordpress.org/trunk@56987
git-svn-id: http://core.svn.wordpress.org/trunk@56498 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-10-23 13:08:31 -04:00
|
|
|
class="lightbox-trigger"
|
Update npm packages to latest versions for 6.4 beta 3.
The npm packages needed a further update for beta 3 in preparation for 6.4.
Props @richtabor, @mmaattiiaass, @tellthemachines, @mamaduka, @swissspidy, @scruffian, @andraganescu, @andrewserong, @mujuonly, @get_dave, @ntsekouras, @carlosgprim, @ramonopoly, @jameskoster, @wildworks, @aaronrobertshaw, @czapla, @santosguillamot, @artemiosans, @afercia, @glendaviesnz, @kevin940726, @mikachan, @siobhyb.
See #59411.
Built from https://develop.svn.wordpress.org/trunk@56808
git-svn-id: http://core.svn.wordpress.org/trunk@56320 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-10-09 13:24:24 -04:00
|
|
|
type="button"
|
|
|
|
aria-haspopup="dialog"
|
|
|
|
aria-label="' . esc_attr( $aria_label ) . '"
|
Editor: Update the WordPress packages to the Gutenberg 16.7 RC2 version.
This patch, somewhat small brings a lot to WordPress.
This includes features like:
- DataViews.
- Customization tools like box shadow, background size and repeat.
- UI improvements in the site editor.
- Preferences sharing between the post and site editors.
- Unified panels and editors between post and site editors.
- Improved template mode in the post editor.
- Iterations to multiple interactive blocks.
- Preparing the blocks and UI for pattern overrides.
- and a lot more.
Props luisherranz, gziolo, isabel_brison, costdev, jonsurrell, peterwilsoncc, get_dave, antonvlasenko, desrosj.
See #60315.
Built from https://develop.svn.wordpress.org/trunk@57377
git-svn-id: http://core.svn.wordpress.org/trunk@56883 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-01-29 16:07:12 -05:00
|
|
|
data-wp-init="callbacks.initTriggerButton"
|
2024-05-31 14:59:00 -04:00
|
|
|
data-wp-on-async--click="actions.showLightbox"
|
2024-09-19 21:55:35 -04:00
|
|
|
data-wp-style--right="state.imageButtonRight"
|
|
|
|
data-wp-style--top="state.imageButtonTop"
|
Editor: Bugfixes npm packages updates for 6.4 RC1.
Updates for needed bugfixes in RC1:
* [https://github.com/WordPress/gutenberg/pull/55212 Image: Reimplement lightbox trigger as a minimal button in corner of image]
* [https://github.com/WordPress/gutenberg/pull/55403 [Edit Widgets] Only suppress admin notices when JS enabled.]
Follow-up to [56849], [56818], [56816].
Props artemiosans, jameskoster, SantosGuillamot, aristath, czapla, joen, afercia, richtabor, peterwilsoncc, andraganescu, hellofromTonya, siobhyb.
See #59411.
Built from https://develop.svn.wordpress.org/trunk@56961
git-svn-id: http://core.svn.wordpress.org/trunk@56472 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-10-17 12:08:23 -04:00
|
|
|
>
|
Editor: Update of npm packages after 6.4 RC3.
This update includes the following fixes reported after RC3:
* Regression: [https://github.com/WordPress/gutenberg/pull/55858 Fixes patterns not working anymore as a post template for custom post types].
Scenario: When creating a new post for any custom post type registered with its "template" argument set to a pattern.
For this scenario, the pattern template no longer renders in the post editor or the frontend with 6.4, whereas it did render properly in 6.3.2.
This package update resolves the console error raised:
{{{
Uncaught TypeError: select(...).getCurrentTheme() is undefined
}}}
which restores the rendering of the pattern template.
* Regression: [https://github.com/WordPress/gutenberg/pull/55859 Fixes positioning and styles for the new lightbox's trigger] introduced in 6.4.
Follow up to [57048], [57034], [56987], [56961], [56849], [56818], [56816].
Props renathoc, rajinsharwar, richtabor, joen, mikachan, hellofromTonya.
Fixes #59411.
Built from https://develop.svn.wordpress.org/trunk@57063
git-svn-id: http://core.svn.wordpress.org/trunk@56574 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-11-05 12:16:25 -05:00
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
|
|
|
|
<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
|
Editor: Bugfixes npm packages updates for 6.4 RC1.
Updates for needed bugfixes in RC1:
* [https://github.com/WordPress/gutenberg/pull/55212 Image: Reimplement lightbox trigger as a minimal button in corner of image]
* [https://github.com/WordPress/gutenberg/pull/55403 [Edit Widgets] Only suppress admin notices when JS enabled.]
Follow-up to [56849], [56818], [56816].
Props artemiosans, jameskoster, SantosGuillamot, aristath, czapla, joen, afercia, richtabor, peterwilsoncc, andraganescu, hellofromTonya, siobhyb.
See #59411.
Built from https://develop.svn.wordpress.org/trunk@56961
git-svn-id: http://core.svn.wordpress.org/trunk@56472 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-10-17 12:08:23 -04:00
|
|
|
</svg>
|
|
|
|
</button>';
|
Update npm packages to latest versions for 6.4 beta 3.
The npm packages needed a further update for beta 3 in preparation for 6.4.
Props @richtabor, @mmaattiiaass, @tellthemachines, @mamaduka, @swissspidy, @scruffian, @andraganescu, @andrewserong, @mujuonly, @get_dave, @ntsekouras, @carlosgprim, @ramonopoly, @jameskoster, @wildworks, @aaronrobertshaw, @czapla, @santosguillamot, @artemiosans, @afercia, @glendaviesnz, @kevin940726, @mikachan, @siobhyb.
See #59411.
Built from https://develop.svn.wordpress.org/trunk@56808
git-svn-id: http://core.svn.wordpress.org/trunk@56320 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-10-09 13:24:24 -04:00
|
|
|
|
2023-09-26 10:23:26 -04:00
|
|
|
$body_content = preg_replace( '/<img[^>]+>/', $button, $body_content );
|
|
|
|
|
2024-02-09 13:22:22 -05:00
|
|
|
add_action( 'wp_footer', 'block_core_image_print_lightbox_overlay' );
|
2023-09-26 10:23:26 -04:00
|
|
|
|
2024-02-09 13:22:22 -05:00
|
|
|
return $body_content;
|
|
|
|
}
|
2023-09-26 10:23:26 -04:00
|
|
|
|
2024-05-23 15:39:28 -04:00
|
|
|
/**
|
|
|
|
* @since 6.5.0
|
|
|
|
*/
|
2024-02-09 13:22:22 -05:00
|
|
|
function block_core_image_print_lightbox_overlay() {
|
|
|
|
$close_button_label = esc_attr__( 'Close' );
|
2023-09-26 10:23:26 -04:00
|
|
|
|
2024-02-09 13:22:22 -05:00
|
|
|
// If the current theme does NOT have a `theme.json`, or the colors are not
|
|
|
|
// defined, it needs to set the background color & close button color to some
|
|
|
|
// default values because it can't get them from the Global Styles.
|
Update npm packages to latest versions for 6.4 beta 3.
The npm packages needed a further update for beta 3 in preparation for 6.4.
Props @richtabor, @mmaattiiaass, @tellthemachines, @mamaduka, @swissspidy, @scruffian, @andraganescu, @andrewserong, @mujuonly, @get_dave, @ntsekouras, @carlosgprim, @ramonopoly, @jameskoster, @wildworks, @aaronrobertshaw, @czapla, @santosguillamot, @artemiosans, @afercia, @glendaviesnz, @kevin940726, @mikachan, @siobhyb.
See #59411.
Built from https://develop.svn.wordpress.org/trunk@56808
git-svn-id: http://core.svn.wordpress.org/trunk@56320 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-10-09 13:24:24 -04:00
|
|
|
$background_color = '#fff';
|
|
|
|
$close_button_color = '#000';
|
|
|
|
if ( wp_theme_has_theme_json() ) {
|
|
|
|
$global_styles_color = wp_get_global_styles( array( 'color' ) );
|
|
|
|
if ( ! empty( $global_styles_color['background'] ) ) {
|
|
|
|
$background_color = esc_attr( $global_styles_color['background'] );
|
|
|
|
}
|
|
|
|
if ( ! empty( $global_styles_color['text'] ) ) {
|
|
|
|
$close_button_color = esc_attr( $global_styles_color['text'] );
|
|
|
|
}
|
|
|
|
}
|
2023-09-26 10:23:26 -04:00
|
|
|
|
2024-02-09 13:22:22 -05:00
|
|
|
echo <<<HTML
|
2024-05-23 15:39:28 -04:00
|
|
|
<div
|
2024-02-09 13:22:22 -05:00
|
|
|
class="wp-lightbox-overlay zoom"
|
2024-02-13 08:12:17 -05:00
|
|
|
data-wp-interactive="core/image"
|
2024-02-09 13:22:22 -05:00
|
|
|
data-wp-context='{}'
|
|
|
|
data-wp-bind--role="state.roleAttribute"
|
|
|
|
data-wp-bind--aria-label="state.currentImage.ariaLabel"
|
|
|
|
data-wp-bind--aria-modal="state.ariaModal"
|
|
|
|
data-wp-class--active="state.overlayEnabled"
|
|
|
|
data-wp-class--show-closing-animation="state.showClosingAnimation"
|
|
|
|
data-wp-watch="callbacks.setOverlayFocus"
|
|
|
|
data-wp-on--keydown="actions.handleKeydown"
|
2024-05-31 14:59:00 -04:00
|
|
|
data-wp-on-async--touchstart="actions.handleTouchStart"
|
2024-02-09 13:22:22 -05:00
|
|
|
data-wp-on--touchmove="actions.handleTouchMove"
|
2024-05-31 14:59:00 -04:00
|
|
|
data-wp-on-async--touchend="actions.handleTouchEnd"
|
|
|
|
data-wp-on-async--click="actions.hideLightbox"
|
|
|
|
data-wp-on-async-window--resize="callbacks.setOverlayStyles"
|
|
|
|
data-wp-on-async-window--scroll="actions.handleScroll"
|
2024-02-09 13:22:22 -05:00
|
|
|
tabindex="-1"
|
|
|
|
>
|
|
|
|
<button type="button" aria-label="$close_button_label" style="fill: $close_button_color" class="close-button">
|
2024-09-19 21:55:35 -04:00
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" focusable="false"><path d="m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z"></path></svg>
|
2024-02-09 13:22:22 -05:00
|
|
|
</button>
|
|
|
|
<div class="lightbox-image-container">
|
2024-09-19 21:55:35 -04:00
|
|
|
<figure data-wp-bind--class="state.currentImage.figureClassNames" data-wp-bind--style="state.figureStyles">
|
2024-02-09 13:22:22 -05:00
|
|
|
<img data-wp-bind--alt="state.currentImage.alt" data-wp-bind--class="state.currentImage.imgClassNames" data-wp-bind--style="state.imgStyles" data-wp-bind--src="state.currentImage.currentSrc">
|
|
|
|
</figure>
|
|
|
|
</div>
|
|
|
|
<div class="lightbox-image-container">
|
2024-09-19 21:55:35 -04:00
|
|
|
<figure data-wp-bind--class="state.currentImage.figureClassNames" data-wp-bind--style="state.figureStyles">
|
2024-02-09 13:22:22 -05:00
|
|
|
<img data-wp-bind--alt="state.currentImage.alt" data-wp-bind--class="state.currentImage.imgClassNames" data-wp-bind--style="state.imgStyles" data-wp-bind--src="state.enlargedSrc">
|
|
|
|
</figure>
|
|
|
|
</div>
|
|
|
|
<div class="scrim" style="background-color: $background_color" aria-hidden="true"></div>
|
|
|
|
<style data-wp-text="state.overlayStyles"></style>
|
|
|
|
</div>
|
2023-09-26 10:23:26 -04:00
|
|
|
HTML;
|
|
|
|
}
|
|
|
|
|
2021-12-13 20:57:26 -05:00
|
|
|
/**
|
|
|
|
* Registers the `core/image` block on server.
|
2024-05-23 15:39:28 -04:00
|
|
|
*
|
|
|
|
* @since 5.9.0
|
2021-12-13 20:57:26 -05:00
|
|
|
*/
|
|
|
|
function register_block_core_image() {
|
|
|
|
register_block_type_from_metadata(
|
|
|
|
__DIR__ . '/image',
|
|
|
|
array(
|
|
|
|
'render_callback' => 'render_block_core_image',
|
|
|
|
)
|
|
|
|
);
|
|
|
|
}
|
|
|
|
add_action( 'init', 'register_block_core_image' );
|