<?php if ( !defined( 'ABSPATH' ) ) exit;//PHPの宣言と直接アクセスの拒否

/*** ギャラリーのスライド式ライトボックス ***/
function haup_gallery_slider_script_style_init() {
	$media_options = GetOP03_media();

	// 「スライド式ライトボックスを有効にする」が無効なら終了
	if ( empty( $media_options['enable-lightbox-slide'] ) || $media_options['enable-lightbox-slide'] !== '1' ) {
		return;
	}

	// ギャラリーブロックが存在する場合のみ実行
	global $post;
	if ( ! is_a( $post, 'WP_Post' ) || ! has_block( 'core/gallery', $post ) ) {
		return;
	}

	// GLightboxの共通アセットを読み込む
	wp_enqueue_style( 'haup-glightbox-css' );
	wp_enqueue_script( 'haup-glightbox-js' );

	// 自動再生の判定フラグ
	$is_autoplay_enabled = isset( $media_options['enable-lightbox-auto-play'] ) ? (bool) $media_options['enable-lightbox-auto-play'] : false;
	$exclude_ids_raw     = isset( $media_options['disable-lightbox-auto-play-page-id'] ) ? $media_options['disable-lightbox-auto-play-page-id'] : '';

	// 例外IDリストを配列に変換（改行コードのゆらぎを吸収し、数値配列化）
	$exclude_ids_raw = str_replace( array( "\r\n", "\r" ), "\n", $exclude_ids_raw );
	$exclude_ids     = array_filter( array_map( 'intval', explode( "\n", $exclude_ids_raw ) ) );
    
	// 現在のページIDが除外リストに入っているか判定（厳密な比較）
	$current_id  = get_the_ID();
	$is_excluded = in_array( $current_id, $exclude_ids, true );

	// 条件分岐：自動再生が有効、かつ除外ページでない場合
	if ( $is_autoplay_enabled && ! $is_excluded ) {
		// 自動再生ありのJSを読み込む
		wp_enqueue_script( 'haup-gallery-switch-image-with-auto-play-js' );

		//画像の表示間隔を指定
		$delay_raw = isset($media_options['delay-time']) ? $media_options['delay-time'] : '';
		if ( ! empty( $delay_raw ) && (int)$delay_raw > 0 ) { //設定が入力されていて、かつ、0より大きい場合
			$delay = (int)$delay_raw;
		}else{
			$delay = 4000;
		}

		// JS側で必要な設定値（スライド速度など）を渡す
		wp_localize_script( 'haup-gallery-switch-image-with-auto-play-js', 'haupGlightboxSettings', array(
			//'delay'      => isset( $media_options['delay-time'] ) ? (int)( $media_options['delay-time'] ) : 4000,
			'delay'      => $delay,
			'text_play'  => __( '▶ Play', 'hima-art-utility' ),
			'text_pause' => __( 'Ⅱ Pause', 'hima-art-utility' ),
		) );
	} else {
		// 自動再生なし（標準）のJSを読み込む
		wp_enqueue_script( 'haup-gallery-switch-image-js' );
	}
}
add_action( 'wp_enqueue_scripts', 'haup_gallery_slider_script_style_init' );

/*** ギャラリーとライトボックス挿入時の初期値を設定 ***/
function haup_block_type_metadata_settings_for_gallery($settings, $metadata){
	$media_options = get_option('hautility-option-03-media');
		$option_image_size = isset($media_options['image-size-in-gallery']) ? $media_options['image-size-in-gallery'] : '';

	// オプション値に応じてサイズテキストを決定
	if ($option_image_size == '1') {
		$image_size = 'large';
	} else if ($option_image_size == '2') {
		$image_size = 'medium';
	} else if ($option_image_size == '3') {
		$image_size = 'thumbnail';
	} else if ($option_image_size == '4') {
		$image_size = 'full';
	} else {
		$image_size = 'large';
	}

	//列数
	if(isset( $option_columns )){
		$image_columns = $option_columns;
	}else{
		$image_columns = '2';
	}

	//ギャラリー
	if ($settings['name'] === 'core/gallery') {
		// 画像サイズ
		if(isset( $option_image_size )){
			$settings['attributes']['sizeSlug']['default'] = $image_size;
		}

		// 念のため、エディタに「ユーザーが最後に選んだ値」としてこのサイズを強制認識させる
		if ( isset( $settings['attributes']['sizeSlug'] ) ) {
			// 初期値を常に最新のオプション値で上書き固定
			$settings['attributes']['sizeSlug']['value'] = $image_size; 
		}

		//列数
		if(isset( $option_columns )){
			$settings['attributes']['columns']['default'] = $image_columns;
		}

		// スライダーが有効ならデフォルトを「メディアファイル」に  none
		if(isset( GetOP03_media()['enable-lightbox-slide'] ) || GetOP03_media()['enable-lightbox-slide'] =='1'){
			$settings['attributes']['linkTo']['default'] = 'media';
		}
	}

	return $settings;
}
add_filter('block_type_metadata_settings', 'haup_block_type_metadata_settings_for_gallery', 10, 2);