<?php if ( !defined( 'ABSPATH' ) ) exit;//PHPの宣言と直接アクセスの拒否
/***** カラーピッカーを使えるようにする *****/
function haumenu_submenu_ac_color_picker_init_block_option( $hook_suffix ) {
  // 実装したいページで var_dump( $hook_suffix ) 等して調べる.
  if ( 'ha-utilitiy_page_haumenu_page_blockoption' === $hook_suffix ) {
    wp_enqueue_script( 'wp-color-picker' );
    wp_enqueue_style( 'wp-color-picker' );
    wp_add_inline_script(
      'wp-color-picker',
      'jQuery(document).ready(function($){
        $(\'.color-picker-hex\').wpColorPicker();
      });'
    );
  }
}
add_action( 'admin_enqueue_scripts', 'haumenu_submenu_ac_color_picker_init_block_option' );

/***** 規定値の設定 *****/
/* $parent_slug メインメニューのスラグ */
//haumenu_define_menu_slug()

/* $menu_slug サブメニューのスラグ */
function haumenu_define_slug_blockoption(){
	return 'haumenu_page_blockoption';
}

/*** ヘッダー ***/
/* セクションID */
function haumenu_define_section_id_01_blockoption(){
	return 'haumenu-section-01-blockoption';
}

/* タブのスラグ */
function haumenu_define_tab_slug_01_blockoption(){
	return 'haumenu-tab-slug-01-blockoption';
}

/* $option_group 設定グループ名 */
function haumenu_define_option_group_01_blockoption(){
	return 'haumenu-option-group-01-blockoption';
}

/* $option_name 設定名 */
function haumenu_define_option_name_01_blockoption(){
	return 'hautility-option-01-blockoption';
}

/* get_option */
// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound
function GetOP01_blockoption(){
	$output = get_option(haumenu_define_option_name_01_blockoption() , [] );
	return $output;
}

/*** 段落 ***/
/* セクションID */
function haumenu_define_section_id_02_blockoption(){
	return 'haumenu-section-02-blockoption';
}

/* タブのスラグ */
function haumenu_define_tab_slug_02_blockoption(){
	return 'haumenu-tab-slug-02-blockoption';
}

/* $option_group 設定グループ名 */
function haumenu_define_option_group_02_blockoption(){
	return 'haumenu-option-group-02-blockoption';
}

/* $option_name 設定名 */
function haumenu_define_option_name_02_blockoption(){
	return 'hautility-option-02-blockoption';
}

/* get_option */
// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound
function GetOP02_blockoption(){
	$output = get_option(haumenu_define_option_name_02_blockoption() , [] );
	return $output;
}

/*** リンクカード ***/
/* セクションID */
function haumenu_define_section_id_03_blockoption(){
	return 'haumenu-section-03-blockoption';
}

/* タブのスラグ */
function haumenu_define_tab_slug_03_blockoption(){
	return 'haumenu-tab-slug-03-blockoption';
}

/* $option_group 設定グループ名 */
function haumenu_define_option_group_03_blockoption(){
	return 'haumenu-option-group-03-blockoption';
}

/* $option_name 設定名 */
function haumenu_define_option_name_03_blockoption(){
	return 'hautility-option-03-blockoption';
}

/* get_option */
// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound
function GetOP03_blockoption(){
	$output = get_option(haumenu_define_option_name_03_blockoption() , [] );
	return $output;
}

/*** コメントカスタマイズ ***/
/* セクションID */
function haumenu_define_section_id_04_blockoption(){
	return 'haumenu-section-04-blockoption';
}

/* タブのスラグ */
function haumenu_define_tab_slug_04_blockoption(){
	return 'haumenu-tab-slug-04-blockoption';
}

/* $option_group 設定グループ名 */
function haumenu_define_option_group_04_blockoption(){
	return 'haumenu-option-group-04-blockoption';
}

/* $option_name 設定名 */
function haumenu_define_option_name_04_blockoption(){
	return 'hautility-option-04-blockoption';
}

/* get_option */
// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound
function GetOP04_blockoption(){
	$output = get_option(haumenu_define_option_name_04_blockoption() , [] );
	return $output;
}

/*** コードコピー ***/
/* セクションID */
function haumenu_define_section_id_05_blockoption(){
	return 'haumenu-section-05-blockoption';
}

/* タブのスラグ */
function haumenu_define_tab_slug_05_blockoption(){
	return 'haumenu-tab-slug-05-blockoption';
}

/* $option_group 設定グループ名 */
function haumenu_define_option_group_05_blockoption(){
	return 'haumenu-option-group-05-blockoption';
}

/* $option_name 設定名 */
function haumenu_define_option_name_05_blockoption(){
	return 'hautility-option-05-blockoption';
}

/* get_option */
// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound
function GetOP05_blockoption(){
	$output = get_option(haumenu_define_option_name_05_blockoption() , [] );
	return $output;
}

/*****  サブメニューの追加 *****/
/* サブメニューの追加 */
function haumenu_add_submenu_blockoption() {
	add_submenu_page(
		haumenu_define_menu_slug(), // $parent_slug メインメニューのスラグ
		__('Block Options','hima-art-utility'), //設定ページのタイトル
		__('Block Options','hima-art-utility'), //管理画面メニューに表示される名前
		'manage_options', // $capability 権限
		haumenu_define_slug_blockoption(), // $menu_slug サブメニューのスラグ
		'haumenu_setting_screen_blockoption', // $callback コールバック関数
		7 //$position サブメニューを表示する位置
	);
}
add_action( 'admin_menu', 'haumenu_add_submenu_blockoption' );

/***** このサブメニューに表示させるセクションの登録 *****/
function haumenu_add_section_blockoption(){
// ヘッダー
	add_settings_section(
		haumenu_define_section_id_01_blockoption(), // セクションID
		__('Headline','hima-art-utility'), // セクションタイトル
		'haumenu_section_callback_01_blockoption', // セクションの説明を表示するコールバック関数
		haumenu_define_tab_slug_01_blockoption() // タブのスラグ
	);

// 段落
	add_settings_section(
		haumenu_define_section_id_02_blockoption(), // セクションID
		__('Paragraph','hima-art-utility'), // セクションタイトル
		'haumenu_section_callback_02_blockoption', // セクションの説明を表示するコールバック関数
		haumenu_define_tab_slug_02_blockoption() // タブのスラグ
	);

// リンクカード
	add_settings_section(
		haumenu_define_section_id_03_blockoption(), // セクションID
		__('Embed Card','hima-art-utility'), // セクションタイトル
		'haumenu_section_callback_03_blockoption', // セクションの説明を表示するコールバック関数
		haumenu_define_tab_slug_03_blockoption() // タブのスラグ
	);

// コメントカスタマイズ
	add_settings_section(
		haumenu_define_section_id_04_blockoption(), // セクションID
		__('Comment Block Customize','hima-art-utility'), // セクションタイトル
		'haumenu_section_callback_04_blockoption', // セクションの説明を表示するコールバック関数
		haumenu_define_tab_slug_04_blockoption() // タブのスラグ
	);

// コードコピー
	add_settings_section(
		haumenu_define_section_id_05_blockoption(), // セクションID
		__('Code block copy button','hima-art-utility'), // セクションタイトル
		'haumenu_section_callback_05_blockoption', // セクションの説明を表示するコールバック関数
		haumenu_define_tab_slug_05_blockoption() // タブのスラグ
	);

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

/*** 説明文のコールバック ***/
/* ヘッダーの説明文 */
function haumenu_section_callback_01_blockoption() {
	$content01 =__('If there is no problem with the entered style, it will be reflected in the block editor','hima-art-utility');
	$content02 =__('The "Custom" button will be displayed on the setting panel of the corresponding block on the post/page editing screen only when there is input in the input window for each of the following items.','hima-art-utility');
	echo '<p style="color:red;font-weight:700;">'.esc_html($content01).'</p>';
	echo '<p style="color:green;font-weight:700;">'.esc_html($content02).'</p>';
}

/* 段落の説明文 */
function haumenu_section_callback_02_blockoption() {
	$content01 =__('If there is no problem with the entered style, it will be reflected in the block editor','hima-art-utility');
	$content02 =__('The "Custom" button will be displayed on the setting panel of the corresponding block on the post/page editing screen only when there is input in the input window for each of the following items.','hima-art-utility');
	echo '<p style="color:red;font-weight:700;">'.esc_html($content01).'</p>';
	echo '<p style="color:green;font-weight:700;">'.esc_html($content02).'</p>';
}

/* リンクカードの説明文 */
function haumenu_section_callback_03_blockoption() {
	$content01 =__('Customize the WordPress standard internal link card','hima-art-utility');
	$content02 =__('Note that most changes apply only to internal link cards, except "Fit card width to parent element"','hima-art-utility');
	$content03 =__('If you embed a card-style link on an external site, the style you set here will be reflected and you will not be able to change the style on the embedding site.','hima-art-utility');
	$content04 =__('Also, depending on the situation, style reflection to the external site may not be reflected immediately, and may be reflected after the embed cache expires (24 hours by default).','hima-art-utility');
	echo '<p>'.esc_html($content01).'</p>';
	echo '<p style="color:red;font-weight:700;">'.esc_html($content02).'</p>';
	echo '<div style="background:#134e81;padding:1em;border-radius:4px;">';
	echo '<span style="color:#fff;">'.esc_html($content03).'</br>'.esc_html($content04).'</span>';
	echo '</div>';
	echo '<div style="text-align:right;margin-top:1rem;"><a href="'.esc_url(HAUP_MANUAL_DIR).'/howtouse-custom-linkcard" target="_blank">'.esc_html(haup_manual_text()).'</a></div>';
}

/* コメントカスタマイズの説明文 */
function haumenu_section_callback_04_blockoption() {
	$content01 =__('Settings for customizing the WordPress standard comment block','hima-art-utility');
	echo '<p>'.esc_html($content01).'</p>';
	echo '<div style="text-align:right;margin-top:1rem;"><a href="'.esc_url(HAUP_MANUAL_DIR).'/howtouse-comment-customize" target="_blank">'.esc_html(haup_manual_text()).'</a></div>';
}

/* コードコピーの説明文 */
function haumenu_section_callback_05_blockoption() {
	$content01 =__('A WordPress standard code block that displays a copy button when moused over and allows copying by clicking','hima-art-utility');
	echo '<p>'.esc_html($content01).'</p>';
}

/***** 設定グループを追加 *****/
function haumenu_register_setting_blockoption(){
/* ヘッダー */
	register_setting(
		haumenu_define_option_group_01_blockoption(), // $option_group 設定グループ名
		haumenu_define_option_name_01_blockoption(), // $option_name 設定名
		[
			'sanitize_callback' => 'haumenu_sanitize_block_option_heading',
		] //$args サニタイズ（データの無害化）関数の呼び出し
	);

/* 段落 */
	register_setting(
		haumenu_define_option_group_02_blockoption(), // $option_group 設定グループ名
		haumenu_define_option_name_02_blockoption(), // $option_name 設定名
		[
			'sanitize_callback' => 'haumenu_sanitize_block_option_paragraph',
		] //$args サニタイズ（データの無害化）関数の呼び出し
	);

/* リンクカード */
	register_setting(
		haumenu_define_option_group_03_blockoption(), // $option_group 設定グループ名
		haumenu_define_option_name_03_blockoption(), // $option_name 設定名
		[
			'sanitize_callback' => 'haumenu_sanitize_block_option_embed_content',
		] //$args サニタイズ（データの無害化）関数の呼び出し
	);

/* コメントカスタマイズ */
	register_setting(
		haumenu_define_option_group_04_blockoption(), // $option_group 設定グループ名
		haumenu_define_option_name_04_blockoption(), // $option_name 設定名
		[
			'sanitize_callback' => 'haumenu_sanitize_block_option_comment',
		] //$args サニタイズ（データの無害化）関数の呼び出し
	);

/* コードコピー */
	register_setting(
		haumenu_define_option_group_05_blockoption(), // $option_group 設定グループ名
		haumenu_define_option_name_05_blockoption(), // $option_name 設定名
		[
			'sanitize_callback' => 'haumenu_sanitize_block_option_code_copy',
		] //$args サニタイズ（データの無害化）関数の呼び出し
	);
}
add_action('admin_init', 'haumenu_register_setting_blockoption');

/***** 設定画面内に表示させる内容 *****/
function haumenu_setting_screen_blockoption() {
?>
<div class="wrap">
	<h1><?php esc_html_e('Option Block Design','hima-art-utility'); ?></h1>
	<p><?php esc_html_e('Design settings applied when selecting the "Custom" button that appears when selecting various blocks.','hima-art-utility'); ?></p>

	<?php settings_errors(); //更新時のメッセージ表示?>
<?php
//クリックしたらタブを開く（初期はtabs_01を開く）
if ( ! isset( $_POST['haumenu_admin_panel_nonce_field'] ) || ! wp_verify_nonce( sanitize_text_field( wp_unslash($_POST['haumenu_admin_panel_nonce_field'])), 'haumenu_admin_panel_nonce_action' ) ) {
if( isset( $_GET[ 'tab' ] )) {
	$active_tab = sanitize_text_field(wp_unslash($_GET[ 'tab' ]));
}else{
	$active_tab = 'tabs_01';
}
}
?>

	<?php //ページスラグとタブスラグを変更すること ?>
	<h2 class="nav-tab-wrapper">
		<a href="?page=<?php echo esc_html(haumenu_define_slug_blockoption()); ?>&tab=tabs_01" class="nav-tab <?php echo $active_tab == 'tabs_01' ? 'nav-tab-active' : ''; ?>">
			<?php esc_html_e('Headline','hima-art-utility'); ?>
		</a>

		<a href="?page=<?php echo esc_html(haumenu_define_slug_blockoption()); ?>&tab=tabs_02" class="nav-tab <?php echo $active_tab == 'tabs_02' ? 'nav-tab-active' : ''; ?>">
			<?php esc_html_e('Paragraph','hima-art-utility'); ?>
		</a>

		<a href="?page=<?php echo esc_html(haumenu_define_slug_blockoption()); ?>&tab=tabs_03" class="nav-tab <?php echo $active_tab == 'tabs_03' ? 'nav-tab-active' : ''; ?>">
			<?php esc_html_e('Embed Card','hima-art-utility'); ?>
		</a>

		<a href="?page=<?php echo esc_html(haumenu_define_slug_blockoption()); ?>&tab=tabs_04" class="nav-tab <?php echo $active_tab == 'tabs_04' ? 'nav-tab-active' : ''; ?>">
			<?php esc_html_e('Comment Block','hima-art-utility'); ?>
		</a>

		<a href="?page=<?php echo esc_html(haumenu_define_slug_blockoption()); ?>&tab=tabs_05" class="nav-tab <?php echo $active_tab == 'tabs_05' ? 'nav-tab-active' : ''; ?>">
			<?php esc_html_e('Code block copy button','hima-art-utility'); ?>
		</a>
	</h2>

<form action="options.php" method="post">
<?php wp_nonce_field( 'haumenu_admin_panel_nonce_action', 'haumenu_admin_panel_nonce_field' ); ?>

	<?php 
//詳細項目の「表示させるタブのスラグ」によって設定内容を表示させるタブを分ける
	if( $active_tab == 'tabs_01') { 
		settings_fields( haumenu_define_option_group_01_blockoption() ); //$option_group 設定グループ名
		do_settings_sections( haumenu_define_tab_slug_01_blockoption() ); //タブのスラグ
	} elseif( $active_tab == 'tabs_02' ) { 
		settings_fields( haumenu_define_option_group_02_blockoption() ); //$option_group 設定グループ名
		do_settings_sections( haumenu_define_tab_slug_02_blockoption() ); //タブのスラグ
	} elseif( $active_tab == 'tabs_03' ) { 
		settings_fields( haumenu_define_option_group_03_blockoption() ); //$option_group 設定グループ名
		do_settings_sections( haumenu_define_tab_slug_03_blockoption() ); //タブのスラグ
	} elseif( $active_tab == 'tabs_04' ) { 
		settings_fields( haumenu_define_option_group_04_blockoption() ); //$option_group 設定グループ名
		do_settings_sections( haumenu_define_tab_slug_04_blockoption() ); //タブのスラグ
	} elseif( $active_tab == 'tabs_05' ) { 
		settings_fields( haumenu_define_option_group_05_blockoption() ); //$option_group 設定グループ名
		do_settings_sections( haumenu_define_tab_slug_05_blockoption() ); //タブのスラグ
	}else{}

		// 保存ボタンを生成
				submit_button(); 
		?>

	</form>
</div>
<?php
}




/*** 詳細設定項目の呼び出し ***/
/* ヘッダー */
require_once (__DIR__ .'/heading/setting.php');

/* 段落 */
require_once (__DIR__ .'/paragraph/setting.php');

/* リンクカード */
require_once (__DIR__ .'/embed-content/setting.php');

/* コメントカスタマイズ */
require_once (__DIR__ .'/comment/setting.php');

/* コードコピー */
require_once (__DIR__ .'/code-copy/setting.php');

/*** サニタイズ関数の呼び出し ***/
/* ヘッダー */
require_once (__DIR__ .'/heading/sanitize.php');

/* 段落 */
require_once (__DIR__ .'/paragraph/sanitize.php');

/* リンクカード */
require_once (__DIR__ .'/embed-content/sanitize.php');

/* コメントカスタマイズ */
require_once (__DIR__ .'/comment/sanitize.php');

/* コードコピー */
require_once (__DIR__ .'/code-copy/sanitize.php');