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

/*** 画像挿入時の初期値を設定 ***/
function haup_block_type_metadata_settings_for_image($settings, $metadata){
	// オプション値を取得
	$media_options = get_option('hautility-option-03-media');
	$option_image_size = isset($media_options['set-image-size']) ? $media_options['set-image-size'] : '';

	// オプション値に応じてサイズテキストを決定
	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 ( $settings['name'] === 'core/image' ) {
			$settings['attributes']['sizeSlug']['default'] = $image_size;
		}

	// 念のため、エディタに「ユーザーが最後に選んだ値」としてこのサイズを強制認識させる
	if ( isset( $settings['attributes']['sizeSlug'] ) ) {
			$settings['attributes']['sizeSlug']['value'] = $image_size;
		}

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

/*** 画像位置をデフォルトで指定する ***/
function haup_set_image_default_align( $metadata ) {
	// 画像ブロックのみに制限
	if ( 'core/image' !== $metadata['name'] ) {
		return $metadata;
	}

	//align が attributes に定義されていなければ、ここで明示的に定義を作る（重要）
	if ( ! isset( $metadata['attributes']['align'] ) ) {
		$metadata['attributes']['align'] = array(
			'type' => 'string',
		);
	}

	// オプション値を取得
	$media_options = get_option('hautility-option-03-media');
	$option_image_align = isset($media_options['set-image-align']) ? $media_options['set-image-align'] : '';

	// オプション値に応じて位置を決定
	if ($option_image_align == '1') {
		$image_align = 'left';
	} else if ($option_image_align == '2') {
		$image_align = 'center';
	} else if ($option_image_align == '3') {
		$image_align = 'right';
	} else {
		$image_align = 'left';
	}

	// デフォルト値をセットする
	$metadata['attributes']['align']['default'] = $image_align; 
	return $metadata;
}
add_filter( 'block_type_metadata', 'haup_set_image_default_align' );

/* 画像ブロック挿入時に自動でライトボックスをONにする */
function haup_image_light_box_true_default( $theme_json ){

	if(empty( GetOP03_media()['auto-set-image-block-lightbox'] ) || GetOP03_media()['auto-set-image-block-lightbox'] !=='1'){
		$new_data = '';
	}else{
		$new_data = array(
		'version'  => 3,
		'settings' => array(
			"blocks" => array(
				"core/image" => array(
					"lightbox" => array(
						"enabled" => true,
						"allowEditing" => true
					),
				),
			),
		),
	);
	}

	return $theme_json->update_with( $new_data );
}
add_filter( 'wp_theme_json_data_theme', 'haup_image_light_box_true_default' );