<?php if ( !defined( 'ABSPATH' ) ) exit;//PHPの宣言と直接アクセスの拒否
/* セクションID haumenu_define_section_id_01_blocktheme() */
/* タブのスラグ haumenu_define_tab_slug_01_blocktheme() */
/* $option_name 設定名 haumenu_define_option_name_01_blocktheme() */
/* get_option GetOP01_blocktheme() */

/***** 親設定の有効／無効に合わせて子設定の表示方法を変更する *****/
/* 関数名・設定名は画面ごとに変えること（関数重複を防ぐ） */
/* add_action('admin_notices', 'current_pagehook');を追加してページ名を取得し、$page_fooksuffixの値を変える */
/* 連動マップ（ID => セレクター）の項目を編集する */

function haup_child_setting_view_control_01_blocktheme( $hook_suffix ) {
	//ページフックにより出力を判断
	$page_fooksuffix = 'ha-utilitiy_page_haumenu_page_blocktheme';

	if ( $page_fooksuffix !== $hook_suffix ) {
		return;
	}

	//メインスクリプトのハンドル
	$handle = 'haup-child-setting-control-js';

	// メインスクリプトが登録されていなければ終了(スクリプトの読み込みはmain-menu.phpで記述)
	if ( ! wp_script_is( $handle, 'registered' ) ) {
		return;
	}

	//設定名
	$set_name = haumenu_define_option_name_01_blocktheme();

	// 連動マップ（ID => セレクター）
	// 1つのIDに対して複数のCSSクラスを指定する（1つなら1行）
	$dependency_map = array(
		// 最近の投稿ブロックの画像調整
		$set_name . 'use-resizing-latest-posts-block-image' => array(
			'.latest-posts-block-image-height-wrapper', // 最近の投稿ブロックの画像の高さ
		),

		// 個別投稿のアイキャッチ画像の高さ調整
		$set_name . 'is-control-featured-image-height' => array(
			'.post-featured-image-height-wrapper', // アイキャッチ画像の高さ
		),

		// 新規追加時に自動でアイキャッチ画像を設定する
		$set_name . 'postnew-auto-set-featured-image' => array(
			'.default-featured-image-wrapper', // デフォルトのアイキャッチ画像
		),

		// アイキャッチ画像の非表示
		$set_name . 'is-use-fimage-visiblity' => array(
			'.fimage-hide-class-wrapper', // アイキャッチ画像を非表示にするクラス
		),

	);

	$inner_js = "";
	foreach ( $dependency_map as $id => $selectors ) {
		foreach ( (array) $selectors as $selector ) {
			// translators: %s stands for the CSS Class & ID.
			$inner_js .= sprintf(
				"haup_apply_dependency('%s', '%s');\n",
				esc_js( $id ),
				esc_js( $selector )
			);
		}
	}

	if ( $inner_js ) {
		$js_code = "if (window.haup_apply_dependency) {\n" . $inner_js . "}";
		// 第3引数を 'after' にすることで、本体JSの直後に出力
		wp_add_inline_script( $handle, $js_code, 'after' );
	}
}
add_action( 'admin_enqueue_scripts', 'haup_child_setting_view_control_01_blocktheme', 20 );



/*** アイキャッチ画像のalt属性をページタイトルに置き換え ***/
/* 項目の追加とデータの更新 */
function haumenu_init_field_force_featured_image_alt_to_title(){
//項目の追加
	add_settings_field(
		'force-featured-image-alt-to-title', // 設定名
		__('Use page title as alt attribute','hima-art-utility'), // 設定タイトル
		'haumenu_force_featured_image_alt_to_title', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_01_blocktheme(), //表示させるタブのスラグ
		haumenu_define_section_id_01_blocktheme(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-separate' )
	);

}
add_action( 'admin_init', 'haumenu_init_field_force_featured_image_alt_to_title' );

/* 入力フォーム */
function haumenu_force_featured_image_alt_to_title() {
	$set_name = haumenu_define_option_name_01_blocktheme(); //  $option_name 設定名
	$options = get_option($set_name);
	$option_name = 'force-featured-image-alt-to-title'; //個別配列名

	//テーブルに値がなかった場合の措置（PHP8.x以降への対応）
	if(isset($options[$option_name])){
		$checked = $options[$option_name];
	}else{
		$checked = '';
	}
?>
<label>
	<input type="checkbox" id="<?php echo esc_html($set_name . $option_name ); ?>" name="<?php echo esc_html($set_name . '[' .$option_name. ']'); ?>" class="wppd-ui-toggle" <?php checked( $checked , 1 ); ?> value="1">
	<p><?php esc_html_e('Force the alt attribute of featured images in the page to the page title','hima-art-utility'); ?></p>
</label>
<p><?php esc_html_e('By enabling it, the value will be output if it is set in the media, and the page title will be output as the alt attribute of the featured image if it is not set.','hima-art-utility'); ?></p>
<p class="haup-admin-bk haup-admin-font-red"><?php esc_html_e('Please note that this applies not only to featured images at the beginning of the text, but also to displaying featured images in the recent posts block, etc.','hima-art-utility'); ?></p>
<?php
}

/*** アイキャッチ画像のtitle属性をページタイトルに置き換え ***/
/* 項目の追加とデータの更新 */
function haumenu_init_field_force_featured_image_title_to_title(){
//項目の追加
	add_settings_field(
		'force-featured-image-title-to-title', // 設定名
		__('Use page title as title attribute','hima-art-utility'), // 設定タイトル
		'haumenu_force_featured_image_title_to_title', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_01_blocktheme(), //表示させるタブのスラグ
		haumenu_define_section_id_01_blocktheme(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-separate' )
	);

}
add_action( 'admin_init', 'haumenu_init_field_force_featured_image_title_to_title' );

/* 入力フォーム */
function haumenu_force_featured_image_title_to_title() {
	$set_name = haumenu_define_option_name_01_blocktheme(); //  $option_name 設定名
	$options = get_option($set_name);
	$option_name = 'force-featured-image-title-to-title'; //個別配列名

	//テーブルに値がなかった場合の措置（PHP8.x以降への対応）
	if(isset($options[$option_name])){
		$checked = $options[$option_name];
	}else{
		$checked = '';
	}
?>
<label>
	<input type="checkbox" id="<?php echo esc_html($set_name . $option_name ); ?>" name="<?php echo esc_html($set_name . '[' .$option_name. ']'); ?>" class="wppd-ui-toggle" <?php checked( $checked , 1 ); ?> value="1">
	<p><?php esc_html_e('Force the alt attribute of featured images in the page to the page title','hima-art-utility'); ?></p>
</label>
<p><?php esc_html_e('By enabling it, the value will be output if it is set in the media, and the page title will be output as the title attribute of the featured image if it is not set.','hima-art-utility'); ?></p>
<p class="haup-admin-bk haup-admin-font-red"><?php esc_html_e('Please note that this applies not only to featured images at the beginning of the text, but also to displaying featured images in the recent posts block, etc.','hima-art-utility'); ?></p>
<?php
}

/*** 最近の投稿ブロックの画像調整 ***/
/* 項目の追加とデータの更新 */
function haumenu_init_field_is_use_resizing_latest_posts_block_image(){
//項目の追加
	add_settings_field(
		'use-resizing-latest-posts-block-image', // 設定名
		__('Enable image resizing for recent image blocks','hima-art-utility'), // 設定タイトル
		'haumenu_is_use_resizing_latest_posts_block_image', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_01_blocktheme(), //表示させるタブのスラグ
		haumenu_define_section_id_01_blocktheme(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-separate' )
	);

}
add_action( 'admin_init', 'haumenu_init_field_is_use_resizing_latest_posts_block_image' );

/* 入力フォーム */
function haumenu_is_use_resizing_latest_posts_block_image() {
	$set_name = haumenu_define_option_name_01_blocktheme(); //  $option_name 設定名
	$options = get_option($set_name);
	$option_name = 'use-resizing-latest-posts-block-image'; //個別配列名

	//テーブルに値がなかった場合の措置（PHP8.x以降への対応）
	if(isset($options[$option_name])){
		$checked = $options[$option_name];
	}else{
		$checked = '';
	}
?>
<label>
	<input type="checkbox" id="<?php echo esc_html($set_name . $option_name ); ?>" name="<?php echo esc_html($set_name . '[' .$option_name. ']'); ?>" class="wppd-ui-toggle" <?php checked( $checked , 1 ); ?> value="1">
	<p><?php esc_html_e('Align the featured image size displayed in the recent images block to the set height','hima-art-utility'); ?></p>
</label>
<?php
}

/*** 最近の投稿ブロックの画像の高さ ***/
/* 項目の追加とデータの更新 */
function haumenu_init_field_latest_posts_block_image_height(){
//項目の追加
	add_settings_field(
		'latest-posts-block-image-height', // 設定名
		'', // 設定タイトル
		'haumenu_latest_posts_block_image_height', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_01_blocktheme(), //表示させるタブのスラグ
		haumenu_define_section_id_01_blocktheme(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-convine' )
	);

}
add_action( 'admin_init', 'haumenu_init_field_latest_posts_block_image_height' );

/* 入力フォーム */
function haumenu_latest_posts_block_image_height() {
	$set_name = haumenu_define_option_name_01_blocktheme(); //  $option_name 設定名
	$options = get_option($set_name);
	$option_name = 'latest-posts-block-image-height'; //個別配列名
?>
<div class="latest-posts-block-image-height-wrapper">
<label>
	<input class="transform" pattern="^[1-9][0-9]*$" name="<?php echo esc_html($set_name . '['.$option_name.']'); ?>" type="text" id="<?php echo esc_html($set_name . $option_name ); ?>" value="<?php echo esc_attr($options[ $option_name ] ?? ''); ?>">
	<p><?php esc_html_e('Specifies the height of the featured image displayed in the recent posts block','hima-art-utility'); ?></p>
</label>
<p><?php esc_html_e('Please specify the height of the featured image only in real numbers in pixels','hima-art-utility'); ?></p>
<p class="haup-admin-bk haup-admin-font-red"><?php esc_html_e('If not specified, it will be specified as 400 (400px)','hima-art-utility'); ?></p>
</div>
<?php
}

/*** 個別投稿のアイキャッチ画像の高さ調整 ***/
/* 項目の追加とデータの更新 */
function haumenu_init_field_is_control_featured_image_height(){
//項目の追加
	add_settings_field(
		'is-control-featured-image-height', // 設定名
		__('Force featured image height','hima-art-utility'), // 設定タイトル
		'haumenu_is_control_featured_image_height', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_01_blocktheme(), //表示させるタブのスラグ
		haumenu_define_section_id_01_blocktheme(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-separate' )
	);

}
add_action( 'admin_init', 'haumenu_init_field_is_control_featured_image_height' );

/* 入力フォーム */
function haumenu_is_control_featured_image_height() {
	$set_name = haumenu_define_option_name_01_blocktheme(); //  $option_name 設定名
	$options = get_option($set_name);
	$option_name = 'is-control-featured-image-height'; //個別配列名

	//テーブルに値がなかった場合の措置（PHP8.x以降への対応）
	if(isset($options[$option_name])){
		$checked = $options[$option_name];
	}else{
		$checked = '';
	}
?>
<label>
	<input type="checkbox" id="<?php echo esc_html($set_name . $option_name ); ?>" name="<?php echo esc_html($set_name . '[' .$option_name. ']'); ?>" class="wppd-ui-toggle" <?php checked( $checked , 1 ); ?> value="1">
	<p><?php esc_html_e('Forcibly specify the maximum height of featured images for posts and static pages','hima-art-utility'); ?></p>
</label>
<p><?php esc_html_e('Image heights smaller than the specified value will be ignored and displayed as is.','hima-art-utility'); ?></p>
<?php
}

/*** アイキャッチ画像の高さ ***/
/* 項目の追加とデータの更新 */
function haumenu_init_field_post_featured_image_height(){
//項目の追加
	add_settings_field(
		'post-featured-image-height', // 設定名
		'', // 設定タイトル
		'haumenu_post_featured_image_height', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_01_blocktheme(), //表示させるタブのスラグ
		haumenu_define_section_id_01_blocktheme(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-convine' )
	);

}
add_action( 'admin_init', 'haumenu_init_field_post_featured_image_height' );

/* 入力フォーム */
function haumenu_post_featured_image_height() {
	$set_name = haumenu_define_option_name_01_blocktheme(); //  $option_name 設定名
	$options = get_option($set_name);
	$option_name = 'post-featured-image-height'; //個別配列名
?>
<div class="post-featured-image-height-wrapper">
<label>
	<input class="transform" pattern="^[1-9][0-9]*$" name="<?php echo esc_html($set_name . '['.$option_name.']'); ?>" type="text" id="<?php echo esc_html($set_name . $option_name ); ?>" value="<?php echo esc_attr($options[ $option_name ] ?? ''); ?>">
	<p><?php esc_html_e('Specify the height of the featured image displayed on the post/fixed page','hima-art-utility'); ?></p>
</label>
<p><?php esc_html_e('Please specify the height of the featured image only in real numbers in pixels','hima-art-utility'); ?></p>
<p><?php esc_html_e('If not specified, it will be specified as 400 (400px)','hima-art-utility'); ?></p>
</div>
<?php
}

/*** 新規追加時に自動でアイキャッチ画像を設定する ***/
/* 項目の追加とデータの更新 */
function haumenu_init_field_postnew_auto_set_featured_image(){
//項目の追加
	add_settings_field(
		'postnew-auto-set-featured-image', // 設定名
		__('Automatically set featured images','hima-art-utility'), // 設定タイトル
		'haumenu_postnew_auto_set_featured_image', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_01_blocktheme(), //表示させるタブのスラグ
		haumenu_define_section_id_01_blocktheme(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-separate' )
	);

}
add_action( 'admin_init', 'haumenu_init_field_postnew_auto_set_featured_image' );

/* 入力フォーム */
function haumenu_postnew_auto_set_featured_image() {
	$set_name = haumenu_define_option_name_01_blocktheme(); //  $option_name 設定名
	$options = get_option($set_name);
	$option_name = 'postnew-auto-set-featured-image'; //個別配列名

	//テーブルに値がなかった場合の措置（PHP8.x以降への対応）
	if(isset($options[$option_name])){
		$checked = $options[$option_name];
	}else{
		$checked = '';
	}
?>
<label>
	<input type="checkbox" id="<?php echo esc_html($set_name . $option_name ); ?>" name="<?php echo esc_html($set_name . '[' .$option_name. ']'); ?>" class="wppd-ui-toggle" <?php checked( $checked , 1 ); ?> value="1">
	<p><?php esc_html_e('Automatically set a featured image when creating a post/fixed page','hima-art-utility'); ?></p>
</label>
<details class="accordion"  style="margin: 5px 0px 0px 0px;overflow: hidden;">
<summary class="accordion__title" style="cursor: pointer;"><?php esc_html_e('View detailed description','hima-art-utility'); ?></summary>
<div class="accordion__content">
<p><?php esc_html_e('If the featured image is not set when saving the edit screen, the image specified below is automatically set.','hima-art-utility'); ?></p>
<p style="color:red;font-weight:700;"><?php esc_html_e('When the publish button or update button is clicked, it is determined whether there is a featured image and the image is automatically set, but the set featured image will be displayed after the following operations.','hima-art-utility'); ?></p>
<ul style="color:red;font-weight:700;">
	<li><?php esc_html_e('The next time you open the edit screen','hima-art-utility'); ?></li>
	<li><?php esc_html_e('After reloading the screen after saving the edit screen','hima-art-utility'); ?></li>
</ul>
</div>
</details>
<?php
}

/***** デフォルトのアイキャッチ画像 *****/
function haumenu_init_field_default_featured_image(){
//項目の追加
	add_settings_field(
		'default-featured-image', // 設定名
		'', // 設定タイトル
		'haumenu_default_featured_image', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_01_blocktheme(), //表示させるタブのスラグ
		haumenu_define_section_id_01_blocktheme(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-convine' )
	);

}
add_action( 'admin_init', 'haumenu_init_field_default_featured_image' );


/* 入力フォーム */
function haumenu_default_featured_image() {
	$set_name = haumenu_define_option_name_01_blocktheme(); //  $option_name 設定名
	$options = get_option($set_name);
	$option_name = 'default-featured-image'; //個別配列名

	//現在の画像があれば表示
	//IDをURLに変換
	if(isset($options[ $option_name ])){
		$image_url = wp_get_attachment_url($options[ $option_name ]);
	}else{
		$image_url = '';
	}

	if(!empty($options[ $option_name ])){
		$message_before = __('Currently registered images(','hima-art-utility');
		$message_after = __(')','hima-art-utility');
		$set_img = '<p>';
		$set_img .= $message_before;
		$set_img .= $options[ $option_name ];
		$set_img .= $message_after;
		$set_img .= '<p>';
		$set_img .= '<img src="'.$image_url.'" style="max-width:300px;">';
	}else{
		$set_img = '';
	}

	//ボタン文字列
		$custom_uploader_text = __('Choose Image','hima-art-utility');
	//選択後（保存前）の画像上のテキスト
		$new_image_message = __('Newly selected image','hima-art-utility');
?>
<div class="default-featured-image-wrapper">
<label>
	<p><?php esc_html_e('Please specify the featured image to be automatically set when adding a new','hima-art-utility'); ?></p>
</label>
<input id="<?php echo 'upload_'.esc_html($set_name).esc_html($option_name); ?>" type="text" size="36" name="<?php echo esc_html($set_name) . '[' .esc_html($option_name). ']'; ?>" value="<?php echo esc_attr($options[ $option_name ] ?? ''); ?>" /> 
<input id="<?php echo 'upload_image_button_'.esc_html($set_name).esc_html($option_name); ?>" class="button" type="button" value="<?php echo esc_html($custom_uploader_text); ?>" />
<div style="margin-top:20px">
<?php echo wp_kses_post($set_img); ?>
<div id="<?php echo 'image_preview_'.esc_html($set_name).esc_html($option_name); ?>"></div>
</div>
</div>
<?php
	// JavaScriptの呼び出し
	haumenu_enqueue_image_uploader_script_id($set_name, $option_name, $custom_uploader_text, $new_image_message);
}

/*** アイキャッチ画像の非表示 ***/
/* 項目の追加とデータの更新 */
function haumenu_init_field_is_use_fimage_visiblity(){
//項目の追加
	add_settings_field(
		'is-use-fimage-visiblity', // 設定名
		__('Featured Image visiblity','hima-art-utility'), // 設定タイトル
		'haumenu_is_use_fimage_visiblity', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_01_blocktheme(), //表示させるタブのスラグ
		haumenu_define_section_id_01_blocktheme(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-separate' )
	);

}
add_action( 'admin_init', 'haumenu_init_field_is_use_fimage_visiblity' );

/* 入力フォーム */
function haumenu_is_use_fimage_visiblity() {
	$set_name = haumenu_define_option_name_01_blocktheme(); //  $option_name 設定名
	$options = get_option($set_name);
	$option_name = 'is-use-fimage-visiblity'; //個別配列名

	//テーブルに値がなかった場合の措置（PHP8.x以降への対応）
	if(isset($options[$option_name])){
		$checked = $options[$option_name];
	}else{
		$checked = '';
	}
?>
<label>
	<input type="checkbox" id="<?php echo esc_html($set_name . $option_name ); ?>" name="<?php echo esc_html($set_name . '[' .$option_name. ']'); ?>" class="wppd-ui-toggle" <?php checked( $checked , 1 ); ?> value="1">
	<p><?php esc_html_e('Displays a check box for whether or not to hide featured images on individual pages','hima-art-utility'); ?></p>
</label>
<p><?php esc_html_e('After enabling this function, turning on the check box on the post or fixed page editing screen will hide the featured image on the individual page.','hima-art-utility'); ?></p>
<p class="haup-admin-font-red"><?php esc_html_e('If this function is disabled, the featured image will be output regardless of whether the check box is ON or OFF.','hima-art-utility'); ?></p>
<p class="haup-admin-bk">
	<span>
		<?php esc_html_e('This function does not output the eye-catching image, it is a simple function that simply hides it with the design code.','hima-art-utility'); ?>
	</span>
	<br>
	<span>
		<?php esc_html_e('You can hide only specific featured images by specifying additional CSS classes below','hima-art-utility'); ?>
	</span>
</p>
<details class="accordion"  style="margin: 5px 0px 0px 0px;overflow: hidden;">
<summary class="accordion__title" style="cursor: pointer;"><?php esc_html_e('View detailed description','hima-art-utility'); ?></summary>
<div class="accordion__content">
<p><?php esc_html_e('The distinction between individual posts and fixed pages is determined by whether there is a "single" or "page" class.','hima-art-utility'); ?></p>
<p><?php esc_html_e('However, the class for determining featured images is common to both the featured image in the text and at least the query loop block, so if both exist in the text, both featured images are hidden.','hima-art-utility'); ?></p>
<p><?php esc_html_e('If there is at least a possibility of inserting a query loop block in the body of the post, you can limit the featured image to only those in the body of the post and prevent malfunction by following the steps below.','hima-art-utility'); ?></p>
<ol>
<li><?php esc_html_e('Open the "Single Post" template in the theme editor','hima-art-utility'); ?></li>
<li><?php esc_html_e('Select the "Post featured image" block and add any class to the "Additional CSS classes" field (same for static pages)','hima-art-utility'); ?></li>
<li><?php esc_html_e('In the input window below, enter the value of the CSS class you added earlier and save the settings','hima-art-utility'); ?></li>
</ol>
<p style="color:green;"><?php esc_html_e('If the input window is empty, the "single" and "page" classes determine whether it is an individual post or fixed page','hima-art-utility'); ?></p>
</div>
</details>
<?php echo wp_kses_post(haup_usage_info_haup_is_single_filter()); ?>
<?php
}

/*** アイキャッチ画像を非表示にするクラス ***/
/* 項目の追加とデータの更新 */
function haumenu_init_field_fimage_hide_class(){
//項目の追加
	add_settings_field(
		'fimage-hide-class', // 設定名
		'', // 設定タイトル
		'haumenu_fimage_hide_class', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_01_blocktheme(), //表示させるタブのスラグ
		haumenu_define_section_id_01_blocktheme(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-convine' )
	);

}
add_action( 'admin_init', 'haumenu_init_field_fimage_hide_class' );

/* 入力フォーム */
function haumenu_fimage_hide_class() {
	$set_name = haumenu_define_option_name_01_blocktheme(); //  $option_name 設定名
	$options = get_option($set_name);
	$option_name = 'fimage-hide-class'; //個別配列名
?>
<div class="fimage-hide-class-wrapper">
<label>
	<input class="transform" name="<?php echo esc_html($set_name . '['.$option_name.']'); ?>" type="text" id="<?php echo esc_html($set_name . $option_name ); ?>" value="<?php echo esc_attr($options[ $option_name ] ?? ''); ?>">
	<p><?php esc_html_e('Specify classes to hide (only one)','hima-art-utility'); ?></p>
</label>
<p class="haup-admin-bk"><?php esc_html_e('If the input window is empty, the "single" and "page" classes determine whether it is an individual post or fixed page','hima-art-utility'); ?></p>
</div>
<?php
}