<?php

function render_block_core_archives($attributes)
{
    $show_post_count = !empty($attributes['showPostCounts']);
    $class = '';
    if (!empty($attributes['displayAsDropdown'])) {
        $class .= ' wp-block-archives-dropdown';
        $dropdown_id = esc_attr(uniqid('wp-block-archives-'));
        $title = __('Archives');
        $dropdown_args = apply_filters('widget_archives_dropdown_args', array('type' => 'monthly', 'format' => 'option', 'show_post_count' => $show_post_count));
        $dropdown_args['echo'] = 0;
        $archives = wp_get_archives($dropdown_args);
        switch ($dropdown_args['type']) {
            case 'yearly':
                $label = __('Select Year');
                break;
            case 'monthly':
                $label = __('Select Month');
                break;
            case 'daily':
                $label = __('Select Day');
                break;
            case 'weekly':
                $label = __('Select Week');
                break;
            default:
                $label = __('Select Post');
                break;
        }
        $label = esc_html($label);
        $block_content = '<label class="screen-reader-text" for="' . $dropdown_id . '">' . $title . '</label>
	<select id="' . $dropdown_id . '" name="archive-dropdown" onchange="document.location.href=this.options[this.selectedIndex].value;">
	<option value="">' . $label . '</option>' . $archives . '</select>';
        return sprintf('<div class="%1$s">%2$s</div>', esc_attr($class), $block_content);
    }
    $class .= ' wp-block-archives-list';
    $archives_args = apply_filters('widget_archives_args', array('type' => 'monthly', 'show_post_count' => $show_post_count));
    $archives_args['echo'] = 0;
    $archives = wp_get_archives($archives_args);
    $classnames = esc_attr($class);
    $wrapper_attributes = get_block_wrapper_attributes(array('class' => $classnames));
    if (empty($archives)) {
        return sprintf('<div %1$s>%2$s</div>', $wrapper_attributes, __('No archives to show.'));
    }
    return sprintf('<ul %1$s>%2$s</ul>', $wrapper_attributes, $archives);
}
function register_block_core_archives()
{
    register_block_type_from_metadata(__DIR__ . '/archives', array('render_callback' => 'render_block_core_archives'));
}
add_action('init', 'register_block_core_archives');