WordPress/wp-includes/blocks/comment-reply-link.php
youknowriad a41c798835 Block Editor: Updated the WordPress packages to include Gutenberg 15.1.0 changes.
In addition to all the packages being updated to the latest versions, 
this commit also includes some mandatory changes to avoid editor breakage:

 - Update React to to 18.2.0.
 - Add the right stylesheets to support iframed block editors.

Props ntsekouras, mamaduka, flixos90, desrosj, peterwilsoncc.
See #57471.

Built from https://develop.svn.wordpress.org/trunk@55246


git-svn-id: http://core.svn.wordpress.org/trunk@54779 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-02-07 07:04:52 +00:00

84 lines
2.0 KiB
PHP

<?php
/**
* Server-side rendering of the `core/comment-reply-link` block.
*
* @package WordPress
*/
/**
* Renders the `core/comment-reply-link` block on the server.
*
* @param array $attributes Block attributes.
* @param string $content Block default content.
* @param WP_Block $block Block instance.
* @return string Return the post comment's reply link.
*/
function render_block_core_comment_reply_link( $attributes, $content, $block ) {
if ( ! isset( $block->context['commentId'] ) ) {
return '';
}
$thread_comments = get_option( 'thread_comments' );
if ( ! $thread_comments ) {
return '';
}
$comment = get_comment( $block->context['commentId'] );
if ( empty( $comment ) ) {
return '';
}
$depth = 1;
$max_depth = get_option( 'thread_comments_depth' );
$parent_id = $comment->comment_parent;
// Compute comment's depth iterating over its ancestors.
while ( ! empty( $parent_id ) ) {
++$depth;
$parent_id = get_comment( $parent_id )->comment_parent;
}
$comment_reply_link = get_comment_reply_link(
array(
'depth' => $depth,
'max_depth' => $max_depth,
),
$comment
);
// Render nothing if the generated reply link is empty.
if ( empty( $comment_reply_link ) ) {
return;
}
$classes = array();
if ( isset( $attributes['textAlign'] ) ) {
$classes[] = 'has-text-align-' . $attributes['textAlign'];
}
if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) {
$classes[] = 'has-link-color';
}
$wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) );
return sprintf(
'<div %1$s>%2$s</div>',
$wrapper_attributes,
$comment_reply_link
);
}
/**
* Registers the `core/comment-reply-link` block on the server.
*/
function register_block_core_comment_reply_link() {
register_block_type_from_metadata(
__DIR__ . '/comment-reply-link',
array(
'render_callback' => 'render_block_core_comment_reply_link',
)
);
}
add_action( 'init', 'register_block_core_comment_reply_link' );