wip
This commit is contained in:
+33
-28
@@ -10,40 +10,45 @@
|
||||
*
|
||||
* @since 5.8.0
|
||||
*
|
||||
* @param array $attributes The block attributes.
|
||||
* @param string $content The block content.
|
||||
* @param WP_Block $block The parsed block.
|
||||
* @param array $attributes The block attributes.
|
||||
* @param string $content The block content.
|
||||
*
|
||||
* @return string Returns the block content.
|
||||
*/
|
||||
function render_block_core_file( $attributes, $content ) {
|
||||
// If it's interactive, enqueue the script module and add the directives.
|
||||
if ( ! empty( $attributes['displayPreview'] ) ) {
|
||||
wp_enqueue_script_module( '@wordpress/block-library/file/view' );
|
||||
|
||||
$processor = new WP_HTML_Tag_Processor( $content );
|
||||
$processor->next_tag();
|
||||
$processor->set_attribute( 'data-wp-interactive', 'core/file' );
|
||||
$processor->next_tag( 'object' );
|
||||
$processor->set_attribute( 'data-wp-bind--hidden', '!state.hasPdfPreview' );
|
||||
$processor->set_attribute( 'hidden', true );
|
||||
|
||||
$filename = $processor->get_attribute( 'aria-label' );
|
||||
$has_filename = ! empty( $filename ) && 'PDF embed' !== $filename;
|
||||
$label = $has_filename ? sprintf(
|
||||
/* translators: %s: filename. */
|
||||
__( 'Embed of %s.' ),
|
||||
$filename
|
||||
) : __( 'PDF embed' );
|
||||
|
||||
// Update object's aria-label attribute if present in block HTML.
|
||||
// Match an aria-label attribute from an object tag.
|
||||
$processor->set_attribute( 'aria-label', $label );
|
||||
|
||||
return $processor->get_updated_html();
|
||||
if ( empty( $attributes['displayPreview'] ) ) {
|
||||
return $content;
|
||||
}
|
||||
|
||||
return $content;
|
||||
// If it's interactive, enqueue the script module and add the directives.
|
||||
wp_enqueue_script_module( '@wordpress/block-library/file/view' );
|
||||
|
||||
$processor = new WP_HTML_Tag_Processor( $content );
|
||||
if ( $processor->next_tag() ) {
|
||||
$processor->set_attribute( 'data-wp-interactive', 'core/file' );
|
||||
}
|
||||
|
||||
// If there are no OBJECT elements, something might have already modified the block.
|
||||
if ( ! $processor->next_tag( 'OBJECT' ) ) {
|
||||
return $content;
|
||||
}
|
||||
|
||||
$processor->set_attribute( 'data-wp-bind--hidden', '!state.hasPdfPreview' );
|
||||
$processor->set_attribute( 'hidden', true );
|
||||
|
||||
$filename = $processor->get_attribute( 'aria-label' );
|
||||
$has_filename = is_string( $filename ) && ! empty( $filename ) && 'PDF embed' !== $filename;
|
||||
$label = $has_filename ? sprintf(
|
||||
/* translators: %s: filename. */
|
||||
__( 'Embed of %s.' ),
|
||||
$filename
|
||||
) : __( 'PDF embed' );
|
||||
|
||||
// Update object's aria-label attribute if present in block HTML.
|
||||
// Match an aria-label attribute from an object tag.
|
||||
$processor->set_attribute( 'aria-label', $label );
|
||||
|
||||
return $processor->get_updated_html();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user