<?php
namespace BwWinner;

class Events {
	public function __construct () {
		add_action( 'add_meta_boxes', array( $this, 'add_meta_boxes' ) );
		add_action( 'save_post', array( $this, 'save_post' ), 10, 2 );
		add_action( 'init', array( $this, 'register_block' ) );
	}
	public function register_block () {
		wp_register_script(
			'multisite-post-slider',
			PLUGIN_URL . 'assets/js/multisite-post-slider.js',
			array(
				'swiper'
			),
			'1.0.0',
			array(
				'in_footer' => true
			)
		);
		wp_register_style(
			'multisite-post-slider',
			PLUGIN_URL . 'assets/css/multisite-post-slider.css',
			array(
				'swiper'
			),
			'1.0.1'
		);
		register_block_type(
			PLUGIN_PATH . 'build/blocks/multisite-post-slider',
			array(
				'render_callback' => array( $this, 'block_render' ),
			)
		);
	}
	public function add_meta_boxes () {
		add_meta_box(
			'event_link_meta_box',
			esc_html__( 'Event URL', 'bw-winner' ),
			array( $this, 'meta_box' ),
			'events',
			'normal',
			'high'
		);
	}
	public function meta_box ( $post ) {
		wp_nonce_field( basename( __FILE__ ), 'event_link_nonce' );
		?>
			<p>
				<label for="event_link_meta"><?php _e( "Add a custom URL link", 'bw-winner' ); ?></label>
				<br />
				<input class="widefat" type="text" name="event_link_meta" id="event_link_meta" value="<?php echo esc_attr( get_post_meta( $post->ID, 'event_link', true ) ); ?>" size="30" />
			</p>
		<?php
	}
	public function save_post ( $post_id, $post ) {
		if ( !isset( $_POST['event_link_nonce'] ) || !wp_verify_nonce( $_POST['event_link_nonce'], basename( __FILE__ ) ) ) {
			return $post_id;
		}

		$post_type = get_post_type_object( $post->post_type );

		if ( !current_user_can( $post_type->cap->edit_post, $post_id ) ) {
			return $post_id;
		}

		$new_meta_value = ( isset( $_POST['event_link_meta'] ) ? esc_url( $_POST['event_link_meta'] ) : '' );

		$meta_key = 'event_link';

		$meta_value = get_post_meta( $post_id, $meta_key, true );

		if ( $new_meta_value ) {
			update_post_meta( $post_id, $meta_key, $new_meta_value );
		} else {
			delete_post_meta( $post_id, $meta_key );
		}
	}
	public function block_render ( $block_attributes, $content ) {
		ob_start();
		$blog_id = isset( $block_attributes['blogId'] ) ? $block_attributes['blogId'] : get_current_blog_id();

		$post_type = isset( $block_attributes['postType'] ) ? $block_attributes['postType'] : 'events';

		$posts_per_page = isset( $block_attributes['slides'] ) ? $block_attributes['slides'] : 9;


		switch_to_blog( $blog_id );

		$query = new \WP_Query( array( 'post_type' => $post_type, 'posts_per_page' => $posts_per_page ) );
		?>
			<div class="bw-multisite-post-slider swiper">
				<div class="swiper-wrapper">
					<?php while ( $query->have_posts() ) {
						$query->the_post();
						$title = get_the_title();
						$image = get_the_post_thumbnail_url();
						$link = esc_url( get_post_meta( get_the_ID(), 'event_link', true ) );
						?>
							<div class="bw-multisite-post-slide swiper-slide">
								<?php echo $link ?  "<a href=\"$link\" class=\"bw-thumb-wrapper\">" : '<span class="bw-thumb-wrapper">'; ?>
									<?php if ( ! empty( $image ) ): ?>
										<img loading="lazy" decoding="async" width="640" height="280" src="<?php echo $image; ?>" alt="" />
									<?php endif; ?>
								<?php echo $link ?  '</a>' : '</span>'; ?>
								<div class="bw-title">
									<?php echo $link ?  "<a href=\"$link\" class=\"bw-title-wrapper\">" : '<span class="bw-title-wrapper">'; ?>
										<?php echo $title; ?>
									<?php echo $link ?  '</a>' : '</span>'; ?>
								</div>
							</div>
						<?php
					} ?>
				</div>
  				<div class="swiper-pagination"></div>
				<div class="swiper-button-prev"></div>
				<div class="swiper-button-next"></div>
			</div>
		<?php

		wp_reset_postdata();

		restore_current_blog();

		return ob_get_clean();
	}
}
