Server IP : 149.255.58.128 / Your IP : 216.73.216.55
System : Linux cloud516.thundercloud.uk 5.14.0-427.26.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jul 17 15:51:13 EDT 2024 x86_64
PHP Version : 8.2.28
Disable Function : allow_url_include, apache_child_terminate, apache_setenv, exec, passthru, pcntl_exec, posix_kill, posix_mkfifo, posix_getpwuid, posix_setpgid, posix_setsid, posix_setuid, posix_setgid, posix_seteuid, posix_setegid, posix_uname, proc_close, proc_get_status, proc_open, proc_terminate, shell_exec, show_source, system
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Upload Files :
Command :
Current File : /home/wheelch2/antalyamobilityscooter.com/wp-includes/block-supports//dimensions.php
<?php
/**
* Dimensions block support flag.
*
* This does not include the `spacing` block support even though that visually
* appears under the "Dimensions" panel in the editor. It remains in its
* original `spacing.php` file for compatibility with core.
*
* @package WordPress
* @since 5.9.0
*/
/**
* Registers the style block attribute for block types that support it.
*
* @since 5.9.0
* @access private
*
* @param WP_Block_Type $block_type Block Type.
*/
function wp_register_dimensions_support( $block_type ) {
// Setup attributes and styles within that if needed.
if ( ! $block_type->attributes ) {
$block_type->attributes = array();
}
// Check for existing style attribute definition e.g. from block.json.
if ( array_key_exists( 'style', $block_type->attributes ) ) {
return;
}
$has_dimensions_support = block_has_support( $block_type, 'dimensions', false );
if ( $has_dimensions_support ) {
$block_type->attributes['style'] = array(
'type' => 'object',
);
}
}
/**
* Adds CSS classes for block dimensions to the incoming attributes array.
* This will be applied to the block markup in the front-end.
*
* @since 5.9.0
* @since 6.2.0 Added `minHeight` support.
* @access private
*
* @param WP_Block_Type $block_type Block Type.
* @param array $block_attributes Block attributes.
* @return array Block dimensions CSS classes and inline styles.
*/
function wp_apply_dimensions_support( $block_type, $block_attributes ) {
if ( wp_should_skip_block_supports_serialization( $block_type, 'dimensions' ) ) {
return array();
}
$attributes = array();
// Width support to be added in near future.
$has_min_height_support = block_has_support( $block_type, array( 'dimensions', 'minHeight' ), false );
$block_styles = isset( $block_attributes['style'] ) ? $block_attributes['style'] : null;
if ( ! $block_styles ) {
return $attributes;
}
$skip_min_height = wp_should_skip_block_supports_serialization( $block_type, 'dimensions', 'minHeight' );
$dimensions_block_styles = array();
$dimensions_block_styles['minHeight'] = null;
if ( $has_min_height_support && ! $skip_min_height ) {
$dimensions_block_styles['minHeight'] = isset( $block_styles['dimensions']['minHeight'] )
? $block_styles['dimensions']['minHeight']
: null;
}
$styles = wp_style_engine_get_styles( array( 'dimensions' => $dimensions_block_styles ) );
if ( ! empty( $styles['css'] ) ) {
$attributes['style'] = $styles['css'];
}
return $attributes;
}
/**
* Renders server-side dimensions styles to the block wrapper.
* This block support uses the `render_block` hook to ensure that
* it is also applied to non-server-rendered blocks.
*
* @since 6.5.0
* @access private
*
* @param string $block_content Rendered block content.
* @param array $block Block object.
* @return string Filtered block content.
*/
function wp_render_dimensions_support( $block_content, $block ) {
$block_type = WP_Block_Type_Registry::get_instance()->get_registered( $block['blockName'] );
$block_attributes = ( isset( $block['attrs'] ) && is_array( $block['attrs'] ) ) ? $block['attrs'] : array();
$has_aspect_ratio_support = block_has_support( $block_type, array( 'dimensions', 'aspectRatio' ), false );
if (
! $has_aspect_ratio_support ||
wp_should_skip_block_supports_serialization( $block_type, 'dimensions', 'aspectRatio' )
) {
return $block_content;
}
$dimensions_block_styles = array();
$dimensions_block_styles['aspectRatio'] = $block_attributes['style']['dimensions']['aspectRatio'] ?? null;
// To ensure the aspect ratio does not get overridden by `minHeight` unset any existing rule.
if (
isset( $dimensions_block_styles['aspectRatio'] )
) {
$dimensions_block_styles['minHeight'] = 'unset';
} elseif (
isset( $block_attributes['style']['dimensions']['minHeight'] ) ||
isset( $block_attributes['minHeight'] )
) {
$dimensions_block_styles['aspectRatio'] = 'unset';
}
$styles = wp_style_engine_get_styles( array( 'dimensions' => $dimensions_block_styles ) );
if ( ! empty( $styles['css'] ) ) {
// Inject dimensions styles to the first element, presuming it's the wrapper, if it exists.
$tags = new WP_HTML_Tag_Processor( $block_content );
if ( $tags->next_tag() ) {
$existing_style = $tags->get_attribute( 'style' );
$updated_style = '';
if ( ! empty( $existing_style ) ) {
$updated_style = $existing_style;
if ( ! str_ends_with( $existing_style, ';' ) ) {
$updated_style .= ';';
}
}
$updated_style .= $styles['css'];
$tags->set_attribute( 'style', $updated_style );
if ( ! empty( $styles['classnames'] ) ) {
foreach ( explode( ' ', $styles['classnames'] ) as $class_name ) {
if (
str_contains( $class_name, 'aspect-ratio' ) &&
! isset( $block_attributes['style']['dimensions']['aspectRatio'] )
) {
continue;
}
$tags->add_class( $class_name );
}
}
}
return $tags->get_updated_html();
}
return $block_content;
}
add_filter( 'render_block', 'wp_render_dimensions_support', 10, 2 );
// Register the block support.
WP_Block_Supports::get_instance()->register(
'dimensions',
array(
'register_attribute' => 'wp_register_dimensions_support',
'apply' => 'wp_apply_dimensions_support',
)
);
Name |
Size |
Last Modified |
Owner / Group |
Permissions |
Options |
.. | -- | May 20 2025 03:29:06 | 1032 / wheelch2 | 0755 | |
| | | | | |
.htaccess | 0 KB | March 26 2025 13:44:20 | 1032 / wheelch2 | 0444 | |
align.php | 1.668 KB | November 08 2023 06:52:05 | 1032 / wheelch2 | 0644 | |
aria-label.php | 1.573 KB | April 16 2025 03:36:53 | 1032 / wheelch2 | 0644 | |
background.php | 4.019 KB | November 13 2024 04:42:28 | 1032 / wheelch2 | 0644 | |
block-style-variations.php | 9.197 KB | April 16 2025 03:36:53 | 1032 / wheelch2 | 0644 | |
border.php | 6.271 KB | November 08 2023 06:52:05 | 1032 / wheelch2 | 0644 | |
colors.php | 5.811 KB | November 08 2023 06:52:05 | 1032 / wheelch2 | 0644 | |
custom-classname.php | 1.636 KB | November 08 2023 06:52:05 | 1032 / wheelch2 | 0644 | |
dimensions.php | 5.28 KB | April 03 2024 05:39:17 | 1032 / wheelch2 | 0644 | |
duotone.php | 2.667 KB | July 16 2024 18:02:44 | 1032 / wheelch2 | 0644 | |
elements.php | 8.461 KB | July 16 2024 18:02:44 | 1032 / wheelch2 | 0644 | |
generated-classname.php | 1.704 KB | November 08 2023 06:52:05 | 1032 / wheelch2 | 0644 | |
layout.php | 38.505 KB | April 16 2025 03:36:53 | 1032 / wheelch2 | 0644 | |
position.php | 4.235 KB | November 08 2023 06:52:05 | 1032 / wheelch2 | 0644 | |
settings.php | 4.521 KB | November 08 2023 06:52:05 | 1032 / wheelch2 | 0644 | |
shadow.php | 2.044 KB | July 16 2024 18:02:44 | 1032 / wheelch2 | 0644 | |
spacing.php | 2.809 KB | November 08 2023 06:52:05 | 1032 / wheelch2 | 0644 | |
typography.php | 28.134 KB | November 13 2024 04:42:28 | 1032 / wheelch2 | 0644 | |
utils.php | 0.987 KB | November 08 2023 06:52:05 | 1032 / wheelch2 | 0644 | |