<?php


/***********************************************************************************************
                           MODIFIER PALETTE DE COULEUR ELEMENTOR            
***********************************************************************************************/

/*
Remarque importante!
La syntaxe du slug d'une couleur elementor pour l'application du style en Front-End est:
--e-global-color-blanc_casse_clair:#F0F2F6
c'est donc --e-global-color-  suivit du nom de la couleur, si bien que le slug du nom de la
couleur ne doit impérativement ne pas contenir de tiret.
on doit ecrire: blanc_casse_clair et non blanc-casse-clair
*/

/*------------------------ ELEMENTOR: SYSTEM COLOR  -----------------------------------*/

function eccp_elementor_system_color_palette( $system_colors = array() ) {
	
	// On récupère les paramètres de la palette de couleurs
	$settings  = get_option( 'eccp_multiple_setting' );
	
	/* compatibilité avec version antérieure du plugin, on remplace dans le slug Gutenberg
	le tiret par un trait de soulignement car incompatible avec le slug Elementor */
	$settings['eccp_settings_slug_color_one_text_field'] = str_replace("-", "_", $settings['eccp_settings_slug_color_one_text_field']);
	$settings['eccp_settings_slug_color_two_text_field'] = str_replace("-", "_", $settings['eccp_settings_slug_color_two_text_field']);
	$settings['eccp_settings_slug_color_three_text_field'] = str_replace("-", "_", $settings['eccp_settings_slug_color_three_text_field']);
	$settings['eccp_settings_slug_color_four_text_field'] = str_replace("-", "_", $settings['eccp_settings_slug_color_four_text_field']);
	
	$system_colors = [
		[
			'_id' => __( $settings['eccp_settings_slug_color_one_text_field'],'editor-custom-color-palette' ),
			'title' => __( $settings['eccp_settings_name_color_one_text_field'],'editor-custom-color-palette' ),
			'color' => $settings['eccp_settings_color_one'],
		],
		[
			'_id' => __( $settings['eccp_settings_slug_color_two_text_field'],'editor-custom-color-palette' ),
			'title' => __( $settings['eccp_settings_name_color_two_text_field'],'editor-custom-color-palette' ),
			'color' => $settings['eccp_settings_color_two'],
		],
		[
			'_id' => __( $settings['eccp_settings_slug_color_three_text_field'],'editor-custom-color-palette' ),
			'title' => __( $settings['eccp_settings_name_color_three_text_field'],'editor-custom-color-palette' ),
			'color' => $settings['eccp_settings_color_three'],
		],
		[
			'_id' => __( $settings['eccp_settings_slug_color_four_text_field'],'editor-custom-color-palette' ),
			'title' => __( $settings['eccp_settings_name_color_four_text_field'],'editor-custom-color-palette' ),
			'color' => $settings['eccp_settings_color_four'],
		]
	];
	
	return $system_colors;
}


function eccp_update_elementor_system_color_palette() {
	
	//option_value: l'identifiant du kit(couleurs globales) est dans la table wp_option avec option_name = elementor_active_kit
	$id_elementor_active_kit = get_option( 'elementor_active_kit', $default = false );
	
	// s'il y a un identifiant de Kit alors elementor est installé
	if ( $id_elementor_active_kit ) {
		
		// on récupère le tableau de couleurs dans la table wp_postmeta, 
		// pour post_id = l'identifiant du kit &  méta_key = _elementor_page_settings
		// $single = true ==> renvoi la valeur du champ meta au lieu d'un tableau de valeurs
		$active_kit_settings = get_post_meta( $id_elementor_active_kit, '_elementor_page_settings', $single = true );
	
		if ( ! $active_kit_settings ) {
			$active_kit_settings = [];
		}

		//on affecte notre palette de couleurs systeme
		$system_colors = eccp_elementor_system_color_palette();
		
		
		// si notre palette est définie
		if ( $system_colors ) {
			
			// supprimer les couleurs existantes et les remplacer
			// par les 4 premières couleurs de la palette  Gutenberg
			// system_color: ce sont les 4 couleurs définit par défaut
			// par elementor : Principal Secondaire Texte Accentué
			unset( $active_kit_settings[ 'system_colors' ] );
			
			
			// On affecte notre palette de couleurs personnalisés systeme
			$active_kit_settings[ 'system_colors' ] = $system_colors;
			
			// on met à jour la table wp_postmeta avec notre palette de couleurs systeme
			update_post_meta( $id_elementor_active_kit, '_elementor_page_settings', $active_kit_settings );
			
		}
		
	}// fin si elementor est installé
}

/* si on a activé la synchronisation de la palette de couleurs Elementor avec celle de Gutenberg
if( $elementor_settings['eccp_activate_synchronization_color_palette_radio_field'] == 'yes' ) {
	add_action( 'init', 'eccp_update_elementor_system_color_palette' );
}*/

$value_synchro  = isset( $elementor_settings['eccp_activate_synchronization_color_palette_radio_field'] ) ?  $elementor_settings['eccp_activate_synchronization_color_palette_radio_field'] : 'no';
// si on a activé la synchronisation de la palette de couleurs Elementor avec celle de Gutenberg
if( $value_synchro == 'yes' ) {
	add_action( 'init', 'eccp_update_elementor_system_color_palette' );
}

/*------------------------ ELEMENTOR: CUSTOM COLOR -----------------------------------*/

function eccp_elementor_custom_color_palette( $custom_colors = array() ) {
	
	// On récupère les paramètres de la palette de couleurs
	$settings  = get_option( 'eccp_multiple_setting' );
	
	/* compatibilité avec version antérieure du plugin, on remplace dans le slug gutenberg
	le tiret par un trait de soulignement car incompatible avec le slug Elementor */
	$settings['eccp_settings_slug_color_five_text_field'] = str_replace("-", "_", $settings['eccp_settings_slug_color_five_text_field']);
	$settings['eccp_settings_slug_color_six_text_field'] = str_replace("-", "_", $settings['eccp_settings_slug_color_six_text_field']);
	$settings['eccp_settings_slug_color_seven_text_field'] = str_replace("-", "_", $settings['eccp_settings_slug_color_seven_text_field']);
	$settings['eccp_settings_slug_color_eight_text_field'] = str_replace("-", "_", $settings['eccp_settings_slug_color_eight_text_field']);
	$settings['eccp_settings_slug_color_nine_text_field'] = str_replace("-", "_", $settings['eccp_settings_slug_color_nine_text_field']);
	$settings['eccp_settings_slug_color_ten_text_field'] = str_replace("-", "_", $settings['eccp_settings_slug_color_ten_text_field']);
	$settings['eccp_settings_slug_color_eleven_text_field'] = str_replace("-", "_", $settings['eccp_settings_slug_color_eleven_text_field']);
	$settings['eccp_settings_slug_color_twelve_text_field'] = str_replace("-", "_", $settings['eccp_settings_slug_color_twelve_text_field']);
	
	// on calcule le nombre de couleurs personnalisée
	// nbr couleurs personnalisées = nbr couleur sélectionné pour la palette gutenberg - nbr couleur systeme elementor
	$nbr_custom_color = strval($settings['eccp_settings_number_colors_select_field']) - 4 ;
	
	// on établi la configuration complete des couleurs personnalisé d'elementor(8 couleurs)
	// qui correspondent aux couleurs 5 à 12 de la palette Gutenberg
	// le 4 premières étant réservées aux couleurs système
	$colors = [
		[
			'_id' => __( $settings['eccp_settings_slug_color_five_text_field'],'editor-custom-color-palette' ),
			'title' => __( $settings['eccp_settings_name_color_five_text_field'],'editor-custom-color-palette' ),
			'color' => $settings['eccp_settings_color_five']
		],
		[
			'_id' => __( $settings['eccp_settings_slug_color_six_text_field'],'editor-custom-color-palette' ),
			'title' => __( $settings['eccp_settings_name_color_six_text_field'],'editor-custom-color-palette' ),
			'color' => $settings['eccp_settings_color_six']
		],
		[
			'_id' => __( $settings['eccp_settings_slug_color_seven_text_field'],'editor-custom-color-palette' ),
			'title' => __( $settings['eccp_settings_name_color_seven_text_field'],'editor-custom-color-palette' ),
			'color' => $settings['eccp_settings_color_seven']
		],
		[
			'_id' => __( $settings['eccp_settings_slug_color_eight_text_field'],'editor-custom-color-palette' ),
			'title' => __( $settings['eccp_settings_name_color_eight_text_field'],'editor-custom-color-palette' ),
			'color' => $settings['eccp_settings_color_eight']
		],
		
		[
			'_id' => __( $settings['eccp_settings_slug_color_nine_text_field'],'editor-custom-color-palette' ),
			'title' => __( $settings['eccp_settings_name_color_nine_text_field'],'editor-custom-color-palette' ),
			'color' => $settings['eccp_settings_color_nine']
		],
		[
			'_id' => __( $settings['eccp_settings_slug_color_ten_text_field'],'editor-custom-color-palette' ),
			'title' => __( $settings['eccp_settings_name_color_ten_text_field'],'editor-custom-color-palette' ),
			'color' => $settings['eccp_settings_color_ten']
		],
		[
			'_id' => __( $settings['eccp_settings_slug_color_eleven_text_field'],'editor-custom-color-palette' ),
			'title' => __( $settings['eccp_settings_name_color_eleven_text_field'],'editor-custom-color-palette' ),
			'color' => $settings['eccp_settings_color_eleven']
		],
		
		[
			'_id' => __( $settings['eccp_settings_slug_color_twelve_text_field'],'editor-custom-color-palette' ),
			'title' => __( $settings['eccp_settings_name_color_twelve_text_field'],'editor-custom-color-palette' ),
			'color' => $settings['eccp_settings_color_twelve']
		]
	];
	
	$i = 0; 
	
	// On établi la configuration réelle des couleurs personnalisé d'elementor
	// en fonction du nbr de couleurs sélectionné pour la palette Gutenberg
	foreach ( $colors as $key => $array ) {
		
		$custom_colors[$key] = $array;
		
		$i++; 
	 
		if( $i == $nbr_custom_color ){
		  break;
		}
	
	}
	
		
	return $custom_colors;
	
}

function eccp_update_elementor_custom_color_palette() {
	
	//option_value: l'identifiant du kit(couleurs globales) est dans la table wp_option avec option_name = elementor_active_kit
	$id_elementor_active_kit = get_option( 'elementor_active_kit', $default = false );
	
	// s'il y a un identifiant de Kit alors elementor est installé
	if ( $id_elementor_active_kit ) {
		
		// on récupère le tableau de couleurs dans la table wp_postmeta, 
		// pour post_id = l'identifiant du kit &  méta_key = _elementor_page_settings
		// le kit est ecrit dans un fichier de style dossier upload/elementor/css de WordPress,
		// avec pour nom post-post_id.css
		$active_kit_settings = get_post_meta( $id_elementor_active_kit, '_elementor_page_settings', $single = true );
		
		if ( ! $active_kit_settings ) {
			$active_kit_settings = [];
		}

		//on affecte notre palette de couleurs personnalisées 
		$custom_colors = eccp_elementor_custom_color_palette();
		
		//var_dump($custom_colors);

		// si notre palette de couleurs personnalisées est définie
		if ( $custom_colors ) {
			
			// On supprime les couleurs personnalisés et on les 
			// remplace par les couleurs 5 à 12
			// de la palette de couleurs Gutenberg
			unset( $active_kit_settings[ 'custom_colors' ] );
			
			// On affecte notre palette de couleurs personnalisées 
			$active_kit_settings[ 'custom_colors' ] = $custom_colors;
			
			// on met à jour la table wp_postmeta avec notre palette de couleurs personnalisée 
			update_post_meta( $id_elementor_active_kit, '_elementor_page_settings', $active_kit_settings );
			
		}
		
	}// fin si elementor est installé
}

/* si on a activé la synchronisation de la palette de couleurs Elementor avec celle de Gutenberg
if( $elementor_settings['eccp_activate_synchronization_color_palette_radio_field'] == 'yes' ) {
	add_action( 'init', 'eccp_update_elementor_custom_color_palette' );
}*/

$value_synchro  = isset( $elementor_settings['eccp_activate_synchronization_color_palette_radio_field'] ) ?  $elementor_settings['eccp_activate_synchronization_color_palette_radio_field'] : 'no';
// si on a activé la synchronisation de la palette de couleurs Elementor avec celle de Gutenberg
if( $value_synchro == 'yes' ) {
	add_action( 'init', 'eccp_update_elementor_custom_color_palette' );
}

