<?php if ( !defined( 'ABSPATH' ) ) exit;//PHPの宣言と直接アクセスの拒否
/***** カラーピッカーを使えるようにする *****/
function haumenu_submenu_ac_color_picker_init_utility( $hook_suffix ) {
  // 実装したいページで var_dump( $hook_suffix ) 等して調べる.
  if ( 'ha-utilitiy_page_haumenu_page_utility' === $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_utility' );

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

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

/*** 投稿・固定ページエディタ ***/
/* セクションID */
function haumenu_define_section_id_01_utility(){
	return 'haumenu-section-01-utility';
}

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

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

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

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

/*** 基本機能制御 ***/
/* セクションID */
function haumenu_define_section_id_02_utility(){
	return 'haumenu-section-02-utility';
}

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

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

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

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

/*** 管理画面 ***/
/* セクションID */
function haumenu_define_section_id_03_utility(){
	return 'haumenu-section-03-utility';
}

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

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

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

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

/*** ログイン画面 ***/
/* セクションID */
function haumenu_define_section_id_06_utility(){
	return 'haumenu-section-06-utility';
}

/* タブのスラグ */
function haumenu_define_tab_slug_06_utility(){
	return 'haumenu-tab-slug-06-utility';
}

/* $option_group 設定グループ名 */
function haumenu_define_option_group_06_utility(){
	return 'haumenu-option-group-06-utility';
}

/* $option_name 設定名 */
function haumenu_define_option_name_06_utility(){
	return 'hautility-option-06-utility';
}

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

/*** ダッシュボードウィジェット ***/
/* セクションID */
function haumenu_define_section_id_04_utility(){
	return 'haumenu-section-04-utility';
}

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

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

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

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

/*** その他便利機能 ***/
/* セクションID */
function haumenu_define_section_id_05_utility(){
	return 'haumenu-section-05-utility';
}

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

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

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

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

/*** カスタムJS ***/
/* セクションID */
function haumenu_define_section_id_07_utility(){
	return 'haumenu-section-07-utility';
}

/* タブのスラグ */
function haumenu_define_tab_slug_07_utility(){
	return 'haumenu-tab-slug-07-utility';
}

/* $option_group 設定グループ名 */
function haumenu_define_option_group_07_utility(){
	return 'haumenu-option-group-07-utility';
}

/* $option_name 設定名 */
function haumenu_define_option_name_07_utility(){
	return 'hautility-option-07-utility';
}

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

/*** カスタム投稿タイプ ***/
/* セクションID */
function haumenu_define_section_id_08_utility(){
	return 'haumenu-section-08-utility';
}

/* タブのスラグ */
function haumenu_define_tab_slug_08_utility(){
	return 'haumenu-tab-slug-08-utility';
}

/* $option_group 設定グループ名 */
function haumenu_define_option_group_08_utility(){
	return 'haumenu-option-group-08-utility';
}

/* $option_name 設定名 */
function haumenu_define_option_name_08_utility(){
	return 'haumenu-option-name-08-utility';
}

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

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

/***** このサブメニューに表示させるセクションの登録 *****/
function haumenu_add_section_utility(){
// 投稿・固定ページエディタ
	add_settings_section(
		haumenu_define_section_id_01_utility(), // セクションID
		__('Post & Page Editor','hima-art-utility'), // セクションタイトル
		'haumenu_section_callback_01_utility', // セクションの説明を表示するコールバック関数
		haumenu_define_tab_slug_01_utility() // タブのスラグ
	);

// 基本機能制御
	add_settings_section(
		haumenu_define_section_id_02_utility(), // セクションID
		__('Basic function control','hima-art-utility'), // セクションタイトル
		'haumenu_section_callback_02_utility', // セクションの説明を表示するコールバック関数
		haumenu_define_tab_slug_02_utility() // タブのスラグ
	);

// 管理画面
	add_settings_section(
		haumenu_define_section_id_03_utility(), // セクションID
		__('Admin Panel control','hima-art-utility'), // セクションタイトル
		'haumenu_section_callback_03_utility', // セクションの説明を表示するコールバック関数
		haumenu_define_tab_slug_03_utility() // タブのスラグ
	);

// ログイン画面
	add_settings_section(
		haumenu_define_section_id_06_utility(), // セクションID
		__('Login Screen Style','hima-art-utility'), // セクションタイトル
		'haumenu_section_callback_06_utility', // セクションの説明を表示するコールバック関数
		haumenu_define_tab_slug_06_utility() // タブのスラグ
	);

// ダッシュボードウィジェット
	add_settings_section(
		haumenu_define_section_id_04_utility(), // セクションID
		__('Dashboard Widget','hima-art-utility'), // セクションタイトル
		'haumenu_section_callback_04_utility', // セクションの説明を表示するコールバック関数
		haumenu_define_tab_slug_04_utility() // タブのスラグ
	);

// その他便利機能
	add_settings_section(
		haumenu_define_section_id_05_utility(), // セクションID
		__('Other convenient functions','hima-art-utility'), // セクションタイトル
		'haumenu_section_callback_05_utility', // セクションの説明を表示するコールバック関数
		haumenu_define_tab_slug_05_utility() // タブのスラグ
	);

// カスタム投稿タイプ
	add_settings_section(
		haumenu_define_section_id_08_utility(), // セクションID
		__('For Use Custom Post Type','hima-art-utility'), // セクションタイトル
		'haumenu_section_callback_08_utility', // セクションの説明を表示するコールバック関数
		haumenu_define_tab_slug_08_utility() // タブのスラグ
	);

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

/*** 説明文のコールバック ***/
/* 投稿・固定ページエディタの説明文 */
function haumenu_section_callback_01_utility() {
	$content01 =__('Settings for convenience functions for creating and editing posts and fixed pages','hima-art-utility');
	echo '<p>'.esc_html($content01).'</p>';
}

/* 基本機能制御の説明文 */
function haumenu_section_callback_02_utility() {
	$content01 =__('It is a setting of the function to easily change the WordPress standard setting','hima-art-utility');
	echo '<p>'.esc_html($content01).'</p>';
}

/* 管理画面の説明文 */
function haumenu_section_callback_03_utility() {
	$content01 =__('It is a setting to improve the usability of the management screen.','hima-art-utility');
		echo '<p>'.esc_html($content01).'</p>';
}

/* ダッシュボードウィジェットの説明文 */
function haumenu_section_callback_04_utility() {
	$content01 =__('Add two widget areas for the dashboard to the "Appearance" → "Widgets" screen','hima-art-utility');
	$content02 =__('Like the normal widget area, you can add any widget and display it on the dashboard of the management screen.','hima-art-utility');
	$content03 =__('For block themes, a "Widgets" menu will be added to "Appearance", and you will be able to configure widgets for your dashboard from there.','hima-art-utility');
	$content04 =__('There is no option to disable it. If you do not want to see the dashboard widget area, open the Dashboards Display Options tab and uncheck it','hima-art-utility');
	$content05 =__('You can also use shortcodes for widgets, but please note that not all shortcodes will work','hima-art-utility');
	$content06 =__('It does not have a function to fit the content within the width of the widget, so you may need to adjust it yourself depending on the content to be displayed.','hima-art-utility');
		echo '<p>'.esc_html($content01).'</p>';
		echo '<p>'.esc_html($content02).'</p>';
		echo '<p style="color:green;">'.esc_html($content03).'</p>';
		echo '<p style="color:green;">'.esc_html($content04).'</p>';
		echo '<p style="color:red;">'.esc_html($content05).'</p>';
		echo '<p style="color:red;">'.esc_html($content06).'</p>';
}

/* ログイン画面の説明文 */
function haumenu_section_callback_06_utility() {
	$content01 =__('Change the login screen style','hima-art-utility');
	$content02 =__('Tip: You can quickly check the style by opening the login screen in another browser or window.','hima-art-utility');
	echo '<p>'.esc_html($content01).'</p>';
	echo '<p>'.esc_html($content02).'</p>';
}

/* その他便利機能の説明文 */
function haumenu_section_callback_05_utility() {
	$content01 =__('It is a function to improve the convenience of other sites','hima-art-utility');
	echo '<p>'.esc_html($content01).'</p>';
}

/* カスタム投稿タイプの説明文 */
function haumenu_section_callback_08_utility() {
	$content01 =__('Settings for integrating custom post types with regular posts','hima-art-utility');
	echo '<p>'.esc_html($content01).'</p>';
}

/***** 設定グループを追加 *****/
function haumenu_register_setting_utility(){
/* 投稿・固定ページエディタ */
	register_setting(
		haumenu_define_option_group_01_utility(), // $option_group 設定グループ名
		haumenu_define_option_name_01_utility(), // $option_name 設定名
		[
			'sanitize_callback' => 'haumenu_sanitize_utility_post_edit',
		] //$args サニタイズ（データの無害化）関数の呼び出し
	);

/* 基本機能制御 */
	register_setting(
		haumenu_define_option_group_02_utility(), // $option_group 設定グループ名
		haumenu_define_option_name_02_utility(), // $option_name 設定名
		[
			'sanitize_callback' => 'haumenu_sanitize_utility_basic_func',
		] //$args サニタイズ（データの無害化）関数の呼び出し
	);

/* 管理画面 */
	register_setting(
		haumenu_define_option_group_03_utility(), // $option_group 設定グループ名
		haumenu_define_option_name_03_utility(), // $option_name 設定名
		[
			'sanitize_callback' => 'haumenu_sanitize_utility_manage_admin',
		] //$args サニタイズ（データの無害化）関数の呼び出し
	);

/* ダッシュボードウィジェット */
	register_setting(
		haumenu_define_option_group_04_utility(), // $option_group 設定グループ名
		haumenu_define_option_name_04_utility(), // $option_name 設定名
		[
			'sanitize_callback' => 'haumenu_sanitize_utility_dashboard',
		] //$args サニタイズ（データの無害化）関数の呼び出し
	);

/* その他便利機能 */
	register_setting(
		haumenu_define_option_group_05_utility(), // $option_group 設定グループ名
		haumenu_define_option_name_05_utility(), // $option_name 設定名
		[
			'sanitize_callback' => 'haumenu_sanitize_utility_other',
		] //$args サニタイズ（データの無害化）関数の呼び出し
	);

/* ログイン画面 */
	register_setting(
		haumenu_define_option_group_06_utility(), // $option_group 設定グループ名
		haumenu_define_option_name_06_utility(), // $option_name 設定名
		[
			'sanitize_callback' => 'haumenu_sanitize_utility_login',
		] //$args サニタイズ（データの無害化）関数の呼び出し
	);

/* カスタム投稿タイプ */
	register_setting(
		haumenu_define_option_group_08_utility(), // $option_group 設定グループ名
		haumenu_define_option_name_08_utility(), // $option_name 設定名
		[
			'sanitize_callback' => 'haumenu_sanitize_utility_cpt_convine',
		] //$args サニタイズ（データの無害化）関数の呼び出し
	);
}
add_action('admin_init', 'haumenu_register_setting_utility');

/***** 設定画面内に表示させる内容 *****/
function haumenu_setting_screen_utility() {
?>
<div class="wrap">
	<h1><?php esc_html_e('HimaArt Utilitiy Utility Setting','hima-art-utility'); ?></h1>
	<p><?php esc_html_e('Settings for functions that improve usability, such as controlling WordPress core functions and editing screens','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_utility()); ?>&tab=tabs_01" class="nav-tab <?php echo $active_tab == 'tabs_01' ? 'nav-tab-active' : ''; ?>">
			<?php esc_html_e('Post & Page Editor','hima-art-utility'); ?>
		</a>

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

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

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

		<a href="?page=<?php echo esc_html(haumenu_define_slug_utility()); ?>&tab=tabs_06" class="nav-tab <?php echo $active_tab == 'tabs_06' ? 'nav-tab-active' : ''; ?>">
			<?php esc_html_e('Login Screen Style','hima-art-utility'); ?>
		</a>

		<a href="?page=<?php echo esc_html(haumenu_define_slug_utility()); ?>&tab=tabs_05" class="nav-tab <?php echo $active_tab == 'tabs_05' ? 'nav-tab-active' : ''; ?>">
			<?php esc_html_e('Other convenient functions','hima-art-utility'); ?>
		</a>

		<a href="?page=<?php echo esc_html(haumenu_define_slug_utility()); ?>&tab=tabs_08" class="nav-tab <?php echo $active_tab == 'tabs_08' ? 'nav-tab-active' : ''; ?>">
			<?php esc_html_e('For Custom Post Type','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_utility() ); //$option_group 設定グループ名
		do_settings_sections( haumenu_define_tab_slug_01_utility() ); //タブのスラグ
	} elseif( $active_tab == 'tabs_02' ) { 
		settings_fields( haumenu_define_option_group_02_utility() ); //$option_group 設定グループ名
		do_settings_sections( haumenu_define_tab_slug_02_utility() ); //タブのスラグ
	} elseif( $active_tab == 'tabs_03' ) { 
		settings_fields( haumenu_define_option_group_03_utility() ); //$option_group 設定グループ名
		do_settings_sections( haumenu_define_tab_slug_03_utility() ); //タブのスラグ
	} elseif( $active_tab == 'tabs_04' ) { 
		settings_fields( haumenu_define_option_group_04_utility() ); //$option_group 設定グループ名
		do_settings_sections( haumenu_define_tab_slug_04_utility() ); //タブのスラグ
	} elseif( $active_tab == 'tabs_05' ) { 
		settings_fields( haumenu_define_option_group_05_utility() ); //$option_group 設定グループ名
		do_settings_sections( haumenu_define_tab_slug_05_utility() ); //タブのスラグ
	} elseif( $active_tab == 'tabs_06' ) { 
		settings_fields( haumenu_define_option_group_06_utility() ); //$option_group 設定グループ名
		do_settings_sections( haumenu_define_tab_slug_06_utility() ); //タブのスラグ
	} elseif( $active_tab == 'tabs_08' ) { 
		settings_fields( haumenu_define_option_group_08_utility() ); //$option_group 設定グループ名
		do_settings_sections( haumenu_define_tab_slug_08_utility() ); //タブのスラグ

	}else{}

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

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

/*** 詳細設定項目の呼び出し ***/
/* 投稿・固定ページエディタ */
require_once (__DIR__ .'/post-edit/setting.php');

/* 基本機能制御 */
require_once (__DIR__ .'/basic-func/setting.php');

/* 管理画面 */
require_once (__DIR__ .'/manage-admin/setting.php');

/* ログイン画面 */
require_once (__DIR__ .'/login-screen/setting.php');

/* ダッシュボードウィジェット */
require_once (__DIR__ .'/dashboard/setting.php');

/* その他便利機能 */
require_once (__DIR__ .'/other/setting.php');

/* カスタム投稿タイプ */
require_once (__DIR__ .'/cpt-convine/setting.php');

/*** サニタイズ関数の呼び出し ***/
/* 投稿・固定ページエディタ */
require_once (__DIR__ .'/post-edit/sanitize.php');

/* 基本機能制御 */
require_once (__DIR__ .'/basic-func/sanitize.php');

/* 管理画面 */
require_once (__DIR__ .'/manage-admin/sanitize.php');

/* ログイン画面 */
require_once (__DIR__ .'/login-screen/sanitize.php');

/* ダッシュボードウィジェット */
require_once (__DIR__ .'/dashboard/sanitize.php');

/* その他便利機能 */
require_once (__DIR__ .'/other/sanitize.php');

/* カスタム投稿タイプ */
require_once (__DIR__ .'/cpt-convine/sanitize.php');