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

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

function haup_child_setting_view_control_08_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_08_addcontent();

	// 連動マップ（ID => セレクター）
	// 1つのIDに対して複数のCSSクラスを指定する（1つなら1行）
	$dependency_map = array(
		$set_name . 'enable-slidein-content' => array(
			'.slidein-content-open-button-align-wrapper', // 開くボタンの位置
			'.disable-slidein-content-mobile-wrapper', // モバイルでは表示しない
			'.slidein-content-reuse-id-wrapper', // 再利用ブロックID
			'.slidein-content-open-button-dashicon-wrapper', // 開くボタンのダッシュアイコン
			'.slidein-content-close-button-dashicon-wrapper', // 閉じるボタンのダッシュアイコン
			'.slidein-content-button-color-wrapper', // ボタンの色
			'.slidein-content-button-bg-color-wrapper', // ボタンの背景色
			'.slidein-content-bg-color-wrapper', // コンテンツの背景色
			'.slidein-content-pc-width-wrapper', // コンテンツの幅（PC）
			'.slidein-content-mob-width-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_08_addcontent', 20 );

/*** スライドインコンテンツの有効化 ***/
/* 項目の追加とデータの更新 */
function haumenu_init_field_enable_slidein_content(){
//項目の追加
	add_settings_field(
		'enable-slidein-content', // 設定名
		__('Enable Slide In Content','hima-art-utility'), // 設定タイトル
		'haumenu_enable_slidein_content', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_08_addcontent(), //表示させるタブのスラグ
		haumenu_define_section_id_08_addcontent(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-separate' )
	);

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

/* 入力フォーム */
function haumenu_enable_slidein_content() {
	$set_name ='hautility-enable-slidein-content';// 設定名
	$options = get_option( $set_name );

	$set_name = haumenu_define_option_name_08_addcontent(); //  $option_name 設定名
	$options = get_option($set_name);
	$option_name = 'enable-slidein-content'; //個別配列名

	//テーブルに値がなかった場合の措置（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>
<?php
}

/* 開くボタンの位置 */
/* 項目の追加とデータの更新 */
function haumenu_init_field_slidein_content_open_button_align(){
//項目の追加
	add_settings_field(
		'slidein-content-open-button-align', // 設定名
		__('"Open" button position','hima-art-utility'), // 設定タイトル
		'haumenu_slidein_content_open_button_align', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_08_addcontent(), //表示させるタブのスラグ
		haumenu_define_section_id_08_addcontent(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-separate' )
	);

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

/* 入力フォーム */
function haumenu_slidein_content_open_button_align() {
	$set_name = haumenu_define_option_name_08_addcontent(); //  $option_name 設定名
	$options = get_option($set_name);
	$option_name = 'slidein-content-open-button-align'; //個別配列名

	if(isset($options[$option_name])){
		$selected = $options[$option_name];
	}else{
		$selected = '';
	}
?>
<div class="slidein-content-open-button-align-wrapper">
<select name= '<?php echo esc_html($set_name . '[' .$option_name. ']'); ?>' >
<option value='1' <?php selected($selected , 1 ); ?> selected ><?php esc_html_e('Displayed on the left edge of the screen','hima-art-utility'); ?></option>
<option value='2' <?php selected($selected , 2 ); ?>><?php esc_html_e('Display to left of content','hima-art-utility'); ?></option>
</select>
<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">
<h4><?php esc_html_e('If you specify "Display on the left edge of the screen"','hima-art-utility'); ?></h4>
<p><?php esc_html_e('Display the button 12px from the left of the screen, regardless of resolution','hima-art-utility'); ?></p>
<p style="color:red;"><?php esc_html_e('As screen resolution increases, content appears further away','hima-art-utility'); ?></p>
<h4><?php esc_html_e('If you specify "Display to the left of content"','hima-art-utility'); ?></h4>
<p><?php esc_html_e('Displays a button outside the left side of the content','hima-art-utility'); ?></p>
<p style="color:green;"><?php esc_html_e('Displays to the left of the content, regardless of resolution, ensuring visibility','hima-art-utility'); ?></p>
<p style="color:red;"><?php esc_html_e('When selecting this, the button will be displayed above the fixed header, so you will need to set the display setting of the fixed header to "Fit to content width".','hima-art-utility'); ?></p>
<p style="color:red"><?php esc_html_e('The screen width is automatically calculated from the width specified in the wide global style or the wideSize value in theme.json, so it only works properly with block themes.','hima-art-utility'); ?></p>
</div>
</details>
</div>
<?php
}

/*** モバイルでは表示しない ***/
/* 項目の追加とデータの更新 */
function haumenu_init_field_disable_slidein_content_mobile(){
//項目の追加
	add_settings_field(
		'disable-slidein-content-mobile', // 設定名
		__('Disable Slide In Content With Mobile','hima-art-utility'), // 設定タイトル
		'haumenu_disable_slidein_content_mobile', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_08_addcontent(), //表示させるタブのスラグ
		haumenu_define_section_id_08_addcontent(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-separate' )
	);

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

/* 入力フォーム */
function haumenu_disable_slidein_content_mobile() {
	$set_name = haumenu_define_option_name_08_addcontent(); //  $option_name 設定名
	$options = get_option($set_name);
	$option_name = 'disable-slidein-content-mobile'; //個別配列名

	//テーブルに値がなかった場合の措置（PHP8.x以降への対応）
	if(isset($options[$option_name])){
		$checked = $options[$option_name];
	}else{
		$checked = '';
	}
?>
<div class="disable-slidein-content-mobile-wrapper">
<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>
</div>
<?php
}

/*** 再利用ブロックID ***/
/* 項目の追加とデータの更新 */
function haumenu_init_field_slidein_content_reuse_id(){
//項目の追加
	add_settings_field(
		'slidein-content-reuse-id', // 設定名
		__('Reuse Block ID','hima-art-utility'), // 設定タイトル
		'haumenu_slidein_content_reuse_id', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_08_addcontent(), //表示させるタブのスラグ
		haumenu_define_section_id_08_addcontent(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-separate' )
	);

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

/* 入力フォーム */
function haumenu_slidein_content_reuse_id() {
	$set_name = haumenu_define_option_name_08_addcontent(); //  $option_name 設定名
	$options = get_option($set_name);
	$option_name = 'slidein-content-reuse-id'; //個別配列名
?>
<div class="slidein-content-reuse-id-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 ID of the reusable block to display within the slide-in content','hima-art-utility'); ?></p>
</label>
<p class="haup-admin-bk">
	<span class="haup-admin-font-red">
		<?php esc_html_e('Please note that even if "Enable slide-in content" is enabled, the slide content will not be displayed if the ID of the reusable block is blank.','hima-art-utility'); ?>
	</span>
	<br>
	<span>
		<?php esc_html_e('Here, it is only judged whether there is an ID input, and it is not judged whether it is the intended content, so please actually display and check whether the intended content is displayed','hima-art-utility'); ?>
	</span>
</p>
</div>
<?php
}

/*** 開くボタンのダッシュアイコン ***/
/* 項目の追加とデータの更新 */
function haumenu_init_field_slidein_content_open_button_dashicon(){
//項目の追加
	add_settings_field(
		'slidein-content-open-button-dashicon', // 設定名
		__('Open Button Icon','hima-art-utility'), // 設定タイトル
		'haumenu_slidein_content_open_button_dashicon', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_08_addcontent(), //表示させるタブのスラグ
		haumenu_define_section_id_08_addcontent(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-separate' )
	);

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

/* 入力フォーム */
function haumenu_slidein_content_open_button_dashicon() {
	$set_name = haumenu_define_option_name_08_addcontent(); //  $option_name 設定名
	$options = get_option($set_name);
	$option_name = 'slidein-content-open-button-dashicon'; //個別配列名
?>
<div class="slidein-content-open-button-dashicon-wrapper">
<label>
	<input class="transform" pattern="^[a-zA-Z0-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 icon to use for the Open button','hima-art-utility'); ?></p>
</label>
</div>
<?php
}

/*** 閉じるボタンのダッシュアイコン ***/
/* 項目の追加とデータの更新 */
function haumenu_init_field_slidein_content_close_button_dashicon(){
//項目の追加
	add_settings_field(
		'slidein-content-close-button-dashicon', // 設定名
		__('Close Button Icon','hima-art-utility'), // 設定タイトル
		'haumenu_slidein_content_close_button_dashicon', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_08_addcontent(), //表示させるタブのスラグ
		haumenu_define_section_id_08_addcontent(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-separate' )
	);

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

/* 入力フォーム */
function haumenu_slidein_content_close_button_dashicon() {
	$set_name = haumenu_define_option_name_08_addcontent(); //  $option_name 設定名
	$options = get_option($set_name);
	$option_name = 'slidein-content-close-button-dashicon'; //個別配列名
?>
<div class="slidein-content-close-button-dashicon-wrapper">
<label>
	<input class="transform" pattern="^[a-zA-Z0-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 icon to use for the Close button','hima-art-utility'); ?></p>
</label>
</div>
<?php
}

/*** ボタンの色 ***/
/* 項目の追加とデータの更新 */
function haumenu_init_field_slidein_content_button_color(){
//項目の追加
	add_settings_field(
		'slidein-content-button-color', // 設定名
		__('Button Color','hima-art-utility'), // 設定タイトル
		'haumenu_slidein_content_button_color', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_08_addcontent(), //表示させるタブのスラグ
		haumenu_define_section_id_08_addcontent(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-separate' )
	);

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

/* 入力フォーム */
function haumenu_slidein_content_button_color() {
	$set_name = haumenu_define_option_name_08_addcontent(); //  $option_name 設定名
	$options = get_option($set_name);
	$option_name = 'slidein-content-button-color'; //個別配列名
?>
<div class="slidein-content-button-color-wrapper">
<label>
	<input name="<?php echo esc_html($set_name . '[' .$option_name. ']'); ?>" class="color-picker-hex" type="text" id="<?php echo esc_html($set_name . $option_name); ?>" maxlength="7" value="<?php echo esc_attr($options[ $option_name ] ?? ''); ?>" placeholder="#ffffff" data-default-color="#ffffff">
</label>
<p><?php esc_html_e('Select the color of the "Open" and "Close" buttons (default is #ffffff)','hima-art-utility'); ?></p>
</div>
<?php
}

/*** ボタンの背景色 ***/
/* 項目の追加とデータの更新 */
function haumenu_init_field_slidein_content_button_bg_color(){
//項目の追加
	add_settings_field(
		'slidein-content-button-bg-color', // 設定名
		__('Button Background Color','hima-art-utility'), // 設定タイトル
		'haumenu_slidein_content_button_bg_color', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_08_addcontent(), //表示させるタブのスラグ
		haumenu_define_section_id_08_addcontent(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-separate' )
	);

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

/* 入力フォーム */
function haumenu_slidein_content_button_bg_color() {
	$set_name = haumenu_define_option_name_08_addcontent(); //  $option_name 設定名
	$options = get_option($set_name);
	$option_name = 'slidein-content-button-bg-color'; //個別配列名
?>
<div class="slidein-content-button-bg-color-wrapper">
<label>
	<input name="<?php echo esc_html($set_name . '[' .$option_name. ']'); ?>" class="color-picker-hex" type="text" id="<?php echo esc_html($set_name . $option_name); ?>" maxlength="7" value="<?php echo esc_attr($options[ $option_name ] ?? ''); ?>" placeholder="#000000" data-default-color="#000000">
</label>
<p><?php esc_html_e('Select the background color of the "Open" and "Close" buttons (default is #000000)','hima-art-utility'); ?></p>
</div>
<?php
}

/*** コンテンツの背景色 ***/
/* 項目の追加とデータの更新 */
function haumenu_init_field_slidein_content_bg_color(){
//項目の追加
	add_settings_field(
		'slidein-content-bg-color', // 設定名
		__('Content Background Color','hima-art-utility'), // 設定タイトル
		'haumenu_slidein_content_bg_color', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_08_addcontent(), //表示させるタブのスラグ
		haumenu_define_section_id_08_addcontent(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-separate' )
	);

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

/* 入力フォーム */
function haumenu_slidein_content_bg_color() {
	$set_name = haumenu_define_option_name_08_addcontent(); //  $option_name 設定名
	$options = get_option($set_name);
	$option_name = 'slidein-content-bg-color'; //個別配列名
?>
<div class="slidein-content-bg-color-wrapper">
<label>
	<input name="<?php echo esc_html($set_name . '[' .$option_name. ']'); ?>" class="color-picker-hex" type="text" id="<?php echo esc_html($set_name . $option_name); ?>" maxlength="7" value="<?php echo esc_attr($options[ $option_name ] ?? ''); ?>" placeholder="#eeeeee" data-default-color="#eeeeee">
</label>
<p><?php esc_html_e('Select the background color of the Content (default is #eeeeee)','hima-art-utility'); ?></p>
</div>
<?php
}

/*** コンテンツの幅（PC） ***/
/* 項目の追加とデータの更新 */
function haumenu_init_field_slidein_content_pc_width(){
//項目の追加
	add_settings_field(
		'slidein-content-pc-width', // 設定名
		__('Content Width for PC','hima-art-utility'), // 設定タイトル
		'haumenu_slidein_content_pc_width', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_08_addcontent(), //表示させるタブのスラグ
		haumenu_define_section_id_08_addcontent(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-separate' )
	);

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

/* 入力フォーム */
function haumenu_slidein_content_pc_width() {
	$set_name = haumenu_define_option_name_08_addcontent(); //  $option_name 設定名
	$options = get_option( $set_name );
	$option_name = 'slidein-content-pc-width'; //個別配列名
?>
<div class="slidein-content-pc-width-wrapper">
<label>
	<input class="transform" pattern="^[a-zA-Z0-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 content width when displayed on a personal computer in %','hima-art-utility'); ?></p>
</label>
<p><?php esc_html_e('Specify the percentage (numbers only) to be displayed.Default is 40%','hima-art-utility'); ?></p>
</div>
<?php
}

/*** コンテンツの幅（モバイル） ***/
/* 項目の追加とデータの更新 */
function haumenu_init_field_slidein_content_mob_width(){
//項目の追加
	add_settings_field(
		'slidein-content-mob-width', // 設定名
		__('Content Width for Mobile','hima-art-utility'), // 設定タイトル
		'haumenu_slidein_content_mob_width', // 設定項目のHTMLを出力する関数名
		haumenu_define_tab_slug_08_addcontent(), //表示させるタブのスラグ
		haumenu_define_section_id_08_addcontent(),// $section 表示させるセクションのID
		array( 'class' => 'ha-settings-separate' )
	);

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

/* 入力フォーム */
function haumenu_slidein_content_mob_width() {
	$set_name = haumenu_define_option_name_08_addcontent(); //  $option_name 設定名
	$options = get_option( $set_name );
	$option_name = 'slidein-content-mob-width'; //個別配列名
?>
<div class="slidein-content-mob-width-wrapper">
<label>
	<input class="transform" pattern="^[a-zA-Z0-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 content width when displayed on a mobile in %','hima-art-utility'); ?></p>
</label>
<p><?php esc_html_e('Specify the percentage (numbers only) to be displayed.Default is 80%','hima-art-utility'); ?></p>
</div>
<?php
}