<?php if ( !defined( 'ABSPATH' ) ) exit;//PHPの宣言と直接アクセスの拒否
/***** 規定値の設定 *****/
/* $parent_slug メインメニューのスラグ */
//haumenu_define_menu_slug()

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

/*** メディアライブラリ ***/
/* セクションID */
function haumenu_define_section_id_01_media(){
	return 'haumenu-section-01-media';
}

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

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

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

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

/*** アップロード時の自動処理 ***/
/* セクションID */
function haumenu_define_section_id_02_media(){
	return 'haumenu-section-02-media';
}

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

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

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

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

/*** フロントエンドとブロック挿入時の規定値 ***/
/* セクションID */
function haumenu_define_section_id_03_media(){
	return 'haumenu-section-03-media';
}

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

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

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

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


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

/***** このサブメニューに表示させるセクションの登録 *****/
function haumenu_add_section_media(){
// メディアライブラリ
	add_settings_section(
		haumenu_define_section_id_01_media(), // セクションID
		__('Media Library Control','hima-art-utility'), // セクションタイトル
		'haumenu_section_callback_01_media', // セクションの説明を表示するコールバック関数
		haumenu_define_tab_slug_01_media() // タブのスラグ
	);

// アップロード時の自動処理
	add_settings_section(
		haumenu_define_section_id_02_media(), // セクションID
		__('Upload','hima-art-utility'), // セクションタイトル
		'haumenu_section_callback_02_media', // セクションの説明を表示するコールバック関数
		haumenu_define_tab_slug_02_media() // タブのスラグ
	);

// HTML出力・ブロック挿入時の規定値
	add_settings_section(
		haumenu_define_section_id_03_media(), // セクションID
		__('HTML output and Block Setting','hima-art-utility'), // セクションタイトル
		'haumenu_section_callback_03_media', // セクションの説明を表示するコールバック関数
		haumenu_define_tab_slug_03_media() // タブのスラグ
	);
}
add_action('admin_init', 'haumenu_add_section_media');

/*** 説明文のコールバック ***/
/* メディアライブラリ */
function haumenu_section_callback_01_media() {
	$content01 =__('Settings for items and content displayed in the media library','hima-art-utility');
	echo '<p>'.esc_html($content01).'</p>';
}

/* アップロード時の自動処理 */
function haumenu_section_callback_02_media() {
	$content01 =__('This is the setting for the automatic processing function when uploading media.','hima-art-utility');
	$content02 =__('The features set on this page will be automatically repeated for each media upload. If you enable many features, depending on your environment, the process may take a long time or the server may become overloaded, causing the process to stop.','hima-art-utility');
	$content03 =__('Once you have enabled the feature, please test it thoroughly by uploading a single image or a small number of images.','hima-art-utility');
	echo '<p>'.esc_html($content01).'</p>';
	echo '<p class="haup-admin-font-red">';
	echo '<span>'.esc_html($content02).'</span>';
	echo '<br>';
	echo '<span>'.esc_html($content03).'</span>';
	echo '</p>';
}

/* HTML出力・ブロック挿入時の規定値 */
function haumenu_section_callback_03_media() {
	$content01 =__('These settings relate to how media is handled during front-end output and the default values when inserting blocks.','hima-art-utility');
		echo '<p>'.esc_html($content01).'</p>';
}

/***** 設定グループを追加 *****/
function haumenu_register_setting_media(){
/* メディアライブラリ */
	register_setting(
		haumenu_define_option_group_01_media(), // $option_group 設定グループ名
		haumenu_define_option_name_01_media(), // $option_name 設定名
		[
			'sanitize_callback' => 'haumenu_sanitize_media_medialibrary',
		] //$args サニタイズ（データの無害化）関数の呼び出し
	);

/* アップロード時の自動処理 */
	register_setting(
		haumenu_define_option_group_02_media(), // $option_group 設定グループ名
		haumenu_define_option_name_02_media(), // $option_name 設定名
		[
			'sanitize_callback' => 'haumenu_sanitize_media_uploads',
		] //$args サニタイズ（データの無害化）関数の呼び出し
	);

/* HTML出力・ブロック挿入時の規定値 */
	register_setting(
		haumenu_define_option_group_03_media(), // $option_group 設定グループ名
		haumenu_define_option_name_03_media(), // $option_name 設定名
		[
			'sanitize_callback' => 'haumenu_sanitize_media_frontend',
		] //$args サニタイズ（データの無害化）関数の呼び出し
	);

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

/***** 設定画面内に表示させる内容 *****/
function haumenu_setting_screen_media() {
?>
<div class="wrap">
	<h1><?php esc_html_e('Media Control','hima-art-utility'); ?></h1>
	<p><?php esc_html_e('This is a useful feature for managing media in WordPress.','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_media()); ?>&tab=tabs_01" class="nav-tab <?php echo $active_tab == 'tabs_01' ? 'nav-tab-active' : ''; ?>">
			<?php esc_html_e('Media Library','hima-art-utility'); ?>
		</a>

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

		<a href="?page=<?php echo esc_html(haumenu_define_slug_media()); ?>&tab=tabs_03" class="nav-tab <?php echo $active_tab == 'tabs_03' ? 'nav-tab-active' : ''; ?>">
			<?php esc_html_e('HTML output and Block Setting','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_media() ); //$option_group 設定グループ名
		do_settings_sections( haumenu_define_tab_slug_01_media() ); //タブのスラグ
	} elseif( $active_tab == 'tabs_02' ) { 
		settings_fields( haumenu_define_option_group_02_media() ); //$option_group 設定グループ名
		do_settings_sections( haumenu_define_tab_slug_02_media() ); //タブのスラグ
	} elseif( $active_tab == 'tabs_03' ) { 
		settings_fields( haumenu_define_option_group_03_media() ); //$option_group 設定グループ名
		do_settings_sections( haumenu_define_tab_slug_03_media() ); //タブのスラグ
	}else{}

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

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




/*** 詳細設定項目の呼び出し ***/
/* メディアライブラリ */
require_once (__DIR__ .'/medialibrary/setting.php');

/* アップロード自動処理 */
require_once (__DIR__ .'/upload/setting.php');

/* HTML出力・ブロック挿入時の規定値 */
require_once (__DIR__ .'/frontend/setting.php');

/*** サニタイズ関数の呼び出し ***/
/* メディアライブラリ */
require_once (__DIR__ .'/medialibrary/sanitize.php');

/* アップロード自動処理 */
require_once (__DIR__ .'/upload/sanitize.php');

/* HTML出力・ブロック挿入時の規定値 */
require_once (__DIR__ .'/frontend/sanitize.php');