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

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

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

	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_05_addcontent();

	// 連動マップ（ID => セレクター）
	// 1つのIDに対して複数のCSSクラスを指定する（1つなら1行）
	$dependency_map = array(
		$set_name . 'output-old-content-message' => array(
			'.number-of-days-last-moddate-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_05_addcontent', 20 );

/***** 古い情報の通知セクション *****/
/*** 古い情報である可能性を冒頭に表示させる ***/
/* 項目の追加とデータの更新 */
function haumenu_init_field_is_output_old_content_message(){
//項目の追加
	add_settings_field(
		'output-old-content-message', // 設定名
		__('Display messages automatically','hima-art-utility'), // 設定タイトル
		'haumenu_is_output_old_content_message', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_05_addcontent(), //表示させるタブのスラグ
		haumenu_define_section_id_05_addcontent(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-separate' )
	);

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

/* 入力フォーム */
function haumenu_is_output_old_content_message() {
	$set_name = haumenu_define_option_name_05_addcontent(); //  $option_name 設定名
	$options = get_option($set_name);
	$option_name = 'output-old-content-message'; //個別配列名

	//テーブルに値がなかった場合の措置（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">
</label>
<p class="haup-admin-bk">
	<span class="haup-admin-font-red">
		<?php esc_html_e('If automatic output is enabled and this content is automatically output as the number of days passes, this content will interrupt the beginning of the main text, so the string at the beginning of the output when displaying excerpts, etc. will indicate that it is old content. Masu','hima-art-utility'); ?>
	</span>
	<br>
	<span class="haup-admin-font-red">
		<?php esc_html_e('If you do not like this behavior, leave this option disabled and insert the [ha-oldpost day=""] shortcode anywhere in your template.','hima-art-utility'); ?>
	</span>
	<br>
	<span>
		<?php esc_html_e('Example: For block themes, insert the [ha-oldpost day=""] shortcode below the featured image of the individual post template.','hima-art-utility'); ?>
	</span>
</p>
<?php
}

/*** 自動表示する経過日数 ***/
/* 項目の追加とデータの更新 */
function haumenu_init_field_number_of_days_last_moddate(){
//項目の追加
	add_settings_field(
		'number-of-days-last-moddate', // 設定名
		__('Number of days elapsed','hima-art-utility'), // 設定タイトル
		'haumenu_number_of_days_last_moddate', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_05_addcontent(), //表示させるタブのスラグ
		haumenu_define_section_id_05_addcontent(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-separate' )
	);

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

/* 入力フォーム */
function haumenu_number_of_days_last_moddate() {
	$set_name = haumenu_define_option_name_05_addcontent(); //  $option_name 設定名
	$options = get_option($set_name);
	$option_name = 'number-of-days-last-moddate'; //個別配列名
?>
<div class="number-of-days-last-moddate-wrapper">
<label>
	<input class="transform" pattern="^[1-9][0-9]*$" maxlength="5" 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 number of days since the last update date when automatically displaying the message','hima-art-utility'); ?></p>
</label>
<p class="haup-admin-bk">
	<span>
		<?php esc_html_e('If not entered, a message will be automatically displayed for posts that have passed 1095 days (3 years) since the last update date','hima-art-utility'); ?>
	</span>
	<br>
	<span class="haup-admin-font-red">
		<?php esc_html_e('This input value applies only for automatic output. If you use the [ha-oldpost day=""] shortcode, you can specify any number of days in the day parameter','hima-art-utility'); ?>
	</span>
</p>
</div>
<?php
}