FM

/home/u523506497/domains/mymelon.in/public_html/aggrigate/wp-includes/blocks UP

<?php
/**
 * Server-side rendering of the `core/legacy-widget` block.
 *
 * @package WordPress
 */

/**
 * Renders the 'core/legacy-widget' block.
 *
 * @since 5.8.0
 *
 * @global WP_Widget_Factory $wp_widget_factory.
 *
 * @param array $attributes The block attributes.
 *
 * @return string Rendered block.
 */
function render_block_core_legacy_widget( $attributes ) {
	global $wp_widget_factory;

	if ( isset( $attributes['id'] ) ) {
		$sidebar_id = wp_find_widgets_sidebar( $attributes['id'] );
		return wp_render_widget( $attributes['id'], $sidebar_id );
	}

	if ( ! isset( $attributes['idBase'] ) ) {
		return '';
	}

	$id_base       = $attributes['idBase'];
	$widget_key    = $wp_widget_factory->get_widget_key( $id_base );
	$widget_object = $wp_widget_factory->get_widget_object( $id_base );

	if ( ! $widget_key || ! $widget_object ) {
		return '';
	}

	if ( isset( $attributes['instance']['encoded'], $attributes['instance']['hash'] ) ) {
		$serialized_instance = base64_decode( $attributes['instance']['encoded'] );
		if ( ! hash_equals( wp_hash( $serialized_instance ), (string) $attributes['instance']['hash'] ) ) {
			return '';
		}
		$instance = unserialize( $serialized_instance );
	} else {
		$instance = array();
	}

	$args = array(
		'widget_id'   => $widget_object->id,
		'widget_name' => $widget_object->name,
	);

	ob_start();
	the_widget( $widget_key, $instance, $args );
	return ob_get_clean();
}

/**
 * Registers the 'core/legacy-widget' block.
 *
 * @since 5.8.0
 */
function register_block_core_legacy_widget() {
	register_block_type_from_metadata(
		__DIR__ . '/legacy-widget',
		array(
			'render_callback' => 'render_block_core_legacy_widget',
		)
	);
}

add_action( 'init', 'register_block_core_legacy_widget' );

/**
 * Intercepts any request with legacy-widget-preview in the query param and, if
 * set, renders a page containing a preview of the requested Legacy Widget
 * block.
 *
 * @since 5.8.0
 */
function handle_legacy_widget_preview_iframe() {
	if ( empty( $_GET['legacy-widget-preview'] ) ) {
		return;
	}

	if ( ! current_user_can( 'edit_theme_options' ) ) {
		return;
	}

	define( 'IFRAME_REQUEST', true );

	?>
	<!doctype html>
	<html <?php language_attributes(); ?>>
	<head>
		<meta charset="<?php bloginfo( 'charset' ); ?>" />
		<meta name="viewport" content="width=device-width, initial-scale=1" />
		<link rel="profile" href="https://gmpg.org/xfn/11" />
		<?php wp_head(); ?>
		<style>
			/* Reset theme styles */
			html, body, #page, #content {
				padding: 0 !important;
				margin: 0 !important;
			}

			/* Hide root level text nodes */
			body {
				font-size: 0 !important;
			}

			/* Hide non-widget elements */
			body *:not(#page):not(#content):not(.widget):not(.widget *) {
				display: none !important;
				font-size: 0 !important;
				height: 0 !important;
				left: -9999px !important;
				max-height: 0 !important;
				max-width: 0 !important;
				opacity: 0 !important;
				pointer-events: none !important;
				position: absolute !important;
				top: -9999px !important;
				transform: translate(-9999px, -9999px) !important;
				visibility: hidden !important;
				z-index: -999 !important;
			}

			/* Restore widget font-size */
			.widget {
				font-size: var(--global--font-size-base);
			}
		</style>
	</head>
	<body <?php body_class(); ?>>
		<div id="page" class="site">
			<div id="content" class="site-content">
				<?php
				$registry = WP_Block_Type_Registry::get_instance();
				$block    = $registry->get_registered( 'core/legacy-widget' );
				echo $block->render( $_GET['legacy-widget-preview'] );
				?>
			</div><!-- #content -->
		</div><!-- #page -->
		<?php wp_footer(); ?>
	</body>
	</html>
	<?php

	exit;
}

// Use admin_init instead of init to ensure get_current_screen function is already available.
// This isn't strictly required, but enables better compatibility with existing plugins.
// See: https://github.com/WordPress/gutenberg/issues/32624.
add_action( 'admin_init', 'handle_legacy_widget_preview_iframe', 20 );
accordion-
accordion-heading-
accordion-item-
accordion-item.php3052V
accordion-panel-
accordion.php1147V
archives-
archives.php4385V
audio-
avatar-
avatar.php5638V
block-
block.php3122V
blocks-json.php210661V
breadcrumbs-
breadcrumbs.php19057V
button-
button.php4211V
buttons-
calendar-
calendar.php6075V
categories-
categories.php4938V
code-
column-
columns-
comment-author-name-
comment-author-name.php2136V
comment-content-
comment-content.php2459V
comment-date-
comment-date.php1865V
comment-edit-link-
comment-edit-link.php1713V
comment-reply-link-
comment-reply-link.php2075V
comment-template-
comment-template.php4494V
comments-
comments-pagination-
comments-pagination-next-
comments-pagination-next.php1924V
comments-pagination-numbers-
comments-pagination-numbers.php1632V
comments-pagination-previous-
comments-pagination-previous.php1790V
comments-pagination.php1261V
comments-title-
comments-title.php2787V
comments.php6784V
cover-
cover.php7404V
details-
details.php1498V
embed-
file-
file.php1879V
footnotes-
footnotes.php3818V
freeform-
gallery-
gallery.php22345V
group-
heading-
heading.php1301V
home-link-
home-link.php4703V
html-
icon-
icon.php4374V
image-
image.php17642V
index.php5104V
latest-comments-
latest-comments.php5622V
latest-posts-
latest-posts.php10459V
legacy-widget-
legacy-widget.php4011V
list-
list-item-
list.php1273V
loginout-
loginout.php2123V
math-
media-text-
media-text.php4298V
missing-
more-
navigation-
navigation-link-
navigation-link.php16654V
navigation-overlay-close-
navigation-overlay-close.php1765V
navigation-submenu-
navigation-submenu.php11050V
navigation.php70892V
nextpage-
page-list-
page-list-item-
page-list-item.php361V
page-list.php13863V
paragraph-
paragraph.php1139V
pattern-
pattern.php1788V
playlist-
playlist-track-
playlist-track.php2487V
playlist.php6616V
post-author-
post-author-biography-
post-author-biography.php1524V
post-author-name-
post-author-name.php1962V
post-author.php2734V
post-comments-count-
post-comments-count.php1275V
post-comments-form-
post-comments-form.php2805V
post-comments-link-
post-comments-link.php2237V
post-content-
post-content.php2668V
post-date-
post-date.php3692V
post-excerpt-
post-excerpt.php4315V
post-featured-image-
post-featured-image.php9452V
post-navigation-link-
post-navigation-link.php4807V
post-template-
post-template.php5940V
post-terms-
post-terms.php3640V
post-time-to-read-
post-time-to-read.php6411V
post-title-
post-title.php2138V
preformatted-
pullquote-
query-
query-no-results-
query-no-results.php1847V
query-pagination-
query-pagination-next-
query-pagination-next.php3676V
query-pagination-numbers-
query-pagination-numbers.php4700V
query-pagination-previous-
query-pagination-previous.php3473V
query-pagination.php1176V
query-title-
query-title.php2771V
query-total-
query-total.php2471V
query.php5690V
quote-
read-more-
read-more.php1846V
require-dynamic-blocks.php5256V
require-static-blocks.php535V
rss-
rss.php4609V
search-
search.php25600V
separator-
shortcode-
shortcode.php735V
site-logo-
site-logo.php6334V
site-tagline-
site-tagline.php1203V
site-title-
site-title.php1864V
social-link-
social-link.php67602V
social-links-
spacer-
tab-list-
tab-list.php2322V
tab-panel-
tab-panel.php1669V
tab-panels-
table-
tabs-
tabs.php3949V
tag-cloud-
tag-cloud.php1586V
template-part-
template-part.php9964V
term-count-
term-count.php1843V
term-description-
term-description.php1770V
term-name-
term-name.php2038V
term-template-
term-template.php4518V
terms-query-
text-columns-
verse-
video-
video.php2733V
widget-group-
widget-group.php2438V
Blog - My Melon - Digital Marketing & Creative Agency
Skip to content Skip to footer