<?php

/***********************************************************************************************************
*  	PERSONNALISER INTERFACE PUBLIQUE
*			Bouton Retour Vers Le Haut interface publique
*   		Ajouter une boîte d'informations sur l'auteur a la fin des articles
*			Filtrer l’affichage des extraits d'articles automatique
*		FORMULAIRE DE COMMENTAIRE
*	 		Supression du champ: Site WEB
*	 		Déplacer la zone commentaire en bas du formulaire
*    		Afficher un texte personnalisé avant & aprés le formulaire
*           Anti Spam Commentaire
*		BARRE PROGRESSION DE LECTURE
*    		Afficher la barre de progression de lecture selon le type de publication
*
*	CSS DYNAMIQUE POUR PERSONNALISER L'INTERFACE PUBLIQUE
*		CSS Pour Bouton Retour Vers Le Haut
*		Boite d'informations sur l'auteur 
*		Lightbox Fancybox pour les publications
*   	CSS Formulaire de commentaire 
*		CSS Barre de progression de lecture
*************************************************************************************************************/




/***********************************************************************************************
                           PERSONNALISER INTERFACE PUBLIQUE          
***********************************************************************************************/

/*------------ Bouton Retour Vers Le Haut interface publique  ---------*/

// Le script JS pour animer le défilemment vers le haut
// est le même que celui utiliser pour l'admin soit: eccp-scroll-to-top.js
// cache le bouton retour vers le haut en position haute < 1500
// apparition du bouton retour vers le haut avec un fading pour une position > 1500
// permet un défilement fluide vers le haut

if ( $custom_front_end_settings['eccp_settings_enable_back_to_top_button_checkbox_field'] ) {
	//Création du lien pour le bouton retour en haut
	add_action( 'wp_footer', 'eccp_back_to_top' );
}

function eccp_back_to_top() {
	echo'<a href="#top" class="scroll-top"></a>';
}


/*-------------- Ajouter une boîte d'informations sur l'auteur a la fin des articles  ---------------*/


function eccp_author_info_box( $content ) {
 
	global $post;
	
	
	// Détecter s'il s'agit d'un article unique avec un auteur d'article
	if ( (is_singular('post')) && isset( $post->post_author ) ) {
	 
		// Obtenir le nom d'affichage de l'auteur
		$display_name = get_the_author_meta( 'display_name', $post->post_author );
		 
		// Si le nom d'affichage n'est pas disponible, utilisez le surnom comme nom d'affichage
		if ( empty( $display_name ) )
		$display_name = get_the_author_meta( 'nickname', $post->post_author );
		 
		// Obtenir les informations biographiques ou la description de l'auteur
		$user_description = get_the_author_meta( 'user_description', $post->post_author );
		 
		// Récupération des liens pour l'auteur de l'article 
		// les clés du tableau corespondent au suffixe de la classe
		// de l'icône dashicon
		$social_icon_link = array(
								//URL du site Web de l'auteur
                                'admin-site-alt3' => get_the_author_meta('user_url',$post->post_author),
                                // liens sociaux
								'facebook-alt'   => get_the_author_meta('facebook',$post->post_author),
	                            'instagram' => get_the_author_meta('instagram',$post->post_author),
	                            'linkedin'   => get_the_author_meta('linkedin',$post->post_author),
	                            'pinterest'    => get_the_author_meta('pinterest',$post->post_author),
                                'twitter'  => get_the_author_meta('twitter',$post->post_author),
								'youtube'  => get_the_author_meta('youtube',$post->post_author),
	                        );
		
		// Obtenir le lien vers la page d'archives de l'auteur
		// exemple lien: http://localhost/wp-chef-ocean/author/wpadmin
		//$user_posts = get_author_posts_url( get_the_author_meta( 'ID' , $post->post_author));
	 
		// s'il y a une description de l'auteur
		if ( ! empty( $user_description ) ) {
			
			$title = '<p class="eccp-author-bio-title">'. esc_html__('About the Author','editor-custom-color-palette').'</p>';
			
			$avatar = get_avatar( get_the_author_meta('user_email', $post->post_author) , 80 );
			
			$author_details =  nl2br( $user_description );
			
			// Ajout des liens sociaux
			$social_link='<p class="eccp-author-links">';
			//$social_link .= '<a href="'. $user_posts .'">' . esc_html__('View all posts by ','editor-custom-color-palette'). $display_name . '</a> | ';
	
			foreach ( $social_icon_link as $key => $value ) {
				
				if ( ! empty( $value ) ) {
					$social_link .= '<a href="' . esc_url( $value ) .'" target="_blank" rel="nofollow noopener noreferrer"><i class="dashicons dashicons-' . esc_attr( $key ) . '"></i></a>';                    
				}   
				
			}
			
			// on ferme la balise p des liens sociaux
			$author_details .='</p>';
			
			// Transmission de toutes ces informations pour publier du contenu
			// on gére les données structurées avec itemscope qui
			// fonctionne généralement avec l'attribut itemtype = "http://schema.org/Person"
			// pour préciser de quel type de contenu en l'occurence une personne
			// on ajoute donc itemprop="author"  itemprop = "name" & itemprop="description"
			$content = $content . 
						'<section class="eccp-author-bio" itemprop="author" itemscope="" itemtype="http://schema.org/Person" >' 
						
						. $title .
						
							'<div class="eccp-author-bio-inner">'.
							
								'<div class="eccp-author-bio-avatar">'
								 . $avatar .
								'</div>'.
								
								'<div class="eccp-author-bio-content ">'.
								
								'<h4 class="eccp-author-name" itemprop = "name" >'. $display_name. '</h4>'.
								
									'<div class="eccp-author-bio-description" itemprop="description">'
									. $author_details .
									'</div>'
									
								. $social_link .
								
								'</div>'.
								
							'</div>'.
							
						'</section>';
	 
		}
	
	}
	
	return $content;
	
}
 
// si on a activé la boite d'info auteur
if ($custom_front_end_settings['eccp_settings_enable_author_info_box_checkbox_field']) {
 
	// Ajouter de notre fonction au filtre de publication du contenu
	add_action( 'the_content', 'eccp_author_info_box',9999 );
	 
	// Autoriser le HTML en Admin pour le profil du compte 
	// dans les Renseignements biographiques de l'auteur
	remove_filter('pre_user_description', 'wp_filter_kses');

}

/*-------------- Filtrer l’affichage des extraits d'articles automatique  ---------------*/

/* 
On filtre la balise de fin de l'extrait automatique
généralement […] mais certains thèmes comme generate press
ont la balise … alors on impose la balise […]
Ceci afin que la fonction suivante eccp_custom_post_excerpt()
fonctionne correctement pour la modification qui consiste à effectuer
un retour a la ligne aprés le signe de ponctuation
d'une fin de phrase c'est à dire le point.
*/
function eccp_change_excerpt_more( $more ) {
	if ( is_admin() ) {
		return $more;
	}

	return '[…]';
 }

add_filter( 'excerpt_more', 'eccp_change_excerpt_more', 999 );


/*
WordPress a une fonction appelée the_excerpt()qui affiche l'extrait d'un article.
cela fonctionne intelligemment: 
il vérifie d'abord s'il y a un extrait et si ce n'est pas le cas, 
il extrait automatiquement les premiers mots du contenu en enlevant toutes
les balises HTML. 
Par défaut, cela prend 55 mots,et en toute fin ajoute: [...]

Dans le cas d'un extrait d'article automatique, il réside un problème
du à l'extension ECCP, en effet des libellés sont insérés
en début de l'extrait et sont du au bloc icônes sociales de WordPress
inséré automatiquement en début d'articles, via un bloc réutilisable
du bloc icones sociales transformé en liens de partage par l'extension ECCP

Pour modifier l'extrait de l'article on utilise le filtre get_the_excerpt 
qui transmet une chaîne qui correspond au contenu complet de l'extrait.

*/

function eccp_custom_post_excerpt( $excerpt ) {
	
	if ( is_admin() ) {
		return $excerpt;
	}
	
	// on supprime les libellés du au bloc icônes sociales de WordPress
	// inséré automatiquement en début d'articles
	// et l'avertissement qu'on a activé le mode debug
	$excerpt = str_replace( 
							array('Tweetez', 
								  'Enregistrez', 
								  'Partagez',
								  'Mail',
								  'LinkedIn',
								  'WhatsApp',
								  'You see the following because',
								  'WP_DEBUG and WP_DEBUG_DISPLAY',
								  'WP_DEBUG',
								  'are enabled on this',
								  'are enabled on this site.',
								  'Please disabled these to prevent the display of',
								  "Please disabled these to prevent the display of these developers' debug messages.",
								 ), 
							'', 
							$excerpt	  
						);
	
	// on insère un retour a la ligne aprés un point
	$excerpt = str_replace( '.', '.<br>', $excerpt );
	
	return $excerpt;
}


add_filter( 'get_the_excerpt', 'eccp_custom_post_excerpt', 999 );


/*****************************************************************************
                           FORMULAIRE DE COMMENTAIRE
******************************************************************************/


/*-------------- Supression du champ: Site WEB  ---------------*/


function eccp_delete_comment_form_field_url($fields){

	unset($fields['url']);
	return $fields;
}

if($custom_front_end_settings['eccp_settings_delete_comment_form_field_url_checkbox_field']) {
	add_filter('comment_form_fields', 'eccp_delete_comment_form_field_url');
}


/*-------------- Déplacer la zone commentaire en bas du formulaire  ---------------*/

function eccp_move_comment_field_from_comment_form($fields){

	$comment_field = $fields['comment'];
	unset( $fields['comment'] );
	$fields['comment'] = $comment_field;
	return $fields;
}

if($custom_front_end_settings['eccp_settings_move_comment_field_from_comment_form_checkbox_field']) {
	add_filter('comment_form_fields', 'eccp_move_comment_field_from_comment_form');
}


/************* Afficher un texte personnalisé avant & aprés le formulaire *************/


/* suppression du texte par défaut avant et/ou aprés le formulaire */
function eccp_comment_form_defaults_filter($defaults) {
	
		// récupération des paramètres
		$custom_front_end_settings = get_option( 'eccp_settings_custom_front_end' );
		
		// suppression du texte par défaut avant le formulaire
		// Votre adresse e-mail ne sera pas publiée. 
		// Les champs obligatoires sont indiqués avec *
		if(! empty( $custom_front_end_settings['eccp_settings_message_before_comment_form_textarea_field'] ) ) {
			$defaults['comment_notes_before'] = '';
		}
		
		//suppression du texte par défaut aprés le formulaire
		//Vous pouvez utiliser ces balises et attributs HTML :
		// <a href="" title=""> <abbr title=""> <acronym title=""> 
		// <b> <blockquote cite=""> <cite> <code> <del datetime=""> 
		// <em> <i> <q cite=""> <s> <strike> <strong>
		if(! empty( $custom_front_end_settings['eccp_settings_message_after_comment_form_textarea_field'] ) ) {
			$defaults['comment_notes_after'] = '';
	    }
		
		return $defaults;
			
}

add_filter('comment_form_defaults', 'eccp_comment_form_defaults_filter');


/*------- Afficher un texte personnalisé avant le formulaire ------*/
function eccp_comment_form_top_action() {

	// récupération des paramètres
	$custom_front_end_settings = get_option( 'eccp_settings_custom_front_end' );
		

	echo '<p class="comment_notes">' . 
	         $custom_front_end_settings['eccp_settings_message_before_comment_form_textarea_field'].
		 '</p>';
	            
}

if(! empty( $custom_front_end_settings['eccp_settings_message_before_comment_form_textarea_field'] ) ) {
	add_action('comment_form_top','eccp_comment_form_top_action');
}

/*------- Afficher un texte personnalisé aprés le formulaire ------*/

function eccp_comment_form_after_action() {

	
	// récupération des paramètres
	$custom_front_end_settings = get_option( 'eccp_settings_custom_front_end' );
		

	echo '<p class="comment_notes">' . 
	         $custom_front_end_settings['eccp_settings_message_after_comment_form_textarea_field'].
		 '</p>';
	            
}

if(! empty( $custom_front_end_settings['eccp_settings_message_after_comment_form_textarea_field'] ) ) {
	add_action('comment_form_after','eccp_comment_form_after_action');
}

/*************************************************************************************
                         Anti Spam Commentaire
*************************************************************************************/

/*
crédit code: https://redpishi.com/wordpress-tutorials/stop-wordpress-spam-comments/

Comment ça fonctionne

Lorsqu'un visiteur non connecté charge votre formulaire de commentaire,
un champ eccpcookie caché est crée(c'est une protection honey pot), 
un minuteur de 20 secondes démarre via JavaScript. 
Une fois les 20 secondes écoulées,le champ eccpcookie  est défini sur « ok ».
 
La plupart des robots spammeurs n'attendent pas aussi longtemps avant de soumettre 
leur commentaire.
Si un robot de spam essaie de poster un commentaire avant les 20 secondes, 
le champ eccpcookie sera vide(le robot n'a pas modifié le champ caché) ou incorrect. 
Le hook pre_comment_on_post détectera cela et empêchera l'enregistrement du commentaire.

De même si aprés les 20s, un robot de spam modifie le champ eccpcookie,
alors sa valeur ne sera plus égale a 'ok' et on et empêchera l'enregistrement du commentaire.

*/

if($custom_front_end_settings['eccp_settings_stop_spam_comments_checkbox_field']) {

	add_action('pre_comment_on_post', function(){
		
		if (!is_user_logged_in() ) {
		
			$eccp_cookie = $_POST['eccpcookie'];
			
			if (empty($eccp_cookie)) {
				wp_die( "<b>".__('ERROR:','editor-custom-color-palette')."</b>". __('Spam is not allowed!','editor-custom-color-palette')."<p><a href='javascript:history.back()'>«".__('Back','editor-custom-color-palette')."</a></p>");
			}else if ( $eccp_cookie != "ok" ){
				wp_die( __('You wrote your comment too quickly, go back and try again.','editor-custom-color-palette')."<p><a href='javascript:history.back()'>«".__('Back','editor-custom-color-palette')."</a></p>");
			}
			
		}

	});


	add_filter('comment_form_defaults',function ($submit_field) {
		
			$submit_field["fields"]["author"] = $submit_field["fields"]["author"].
			'<input id="eccpcookie" name="eccpcookie" type="hidden" value="1">
			 <script>
				setTimeout( () => { document.querySelector("input#eccpcookie").value = "ok" } , 20000 )
			 </script>';
			
		return $submit_field;
		
	});

}

/*****************************************************************************
                     BARRE PROGRESSION DE LECTURE
******************************************************************************/

/*------Afficher la barre de progression de lecture selon le type de publication-----*/

function eccp_reading_progress_bar() {
    
	// récupération des paramètres
	$custom_front_end_settings = get_option( 'eccp_settings_custom_front_end' );
	
	// on récupère le type de publication en cours
	$currentPostType = get_post_type();
	
	// afficher la barre de progression pour les Articles
	if (is_single() && $currentPostType == 'post' && 
	$custom_front_end_settings['eccp_settings_enable_reading_progress_bar_for_post_checkbox_field']) {
		
		echo'<div class="eccp-reading-progress-bar"></div>';
		
		// afficher la barre de progression pour les Pages sauf sur la page d'accueil
		// condition pour tester la page d'accueil:
		//(is_home() && is_front_page() || is_front_page())
	} elseif (is_page() && $currentPostType == 'page' && 
	$custom_front_end_settings['eccp_settings_enable_reading_progress_bar_for_pages_checkbox_field']
	&&
	!(is_home() && is_front_page() || is_front_page()) ) {
		
		// On récupère la valeur de la méta de publication enregistré via l'edition rapide ou groupée des pages
		$disable_reading_progress_bar = get_post_meta(get_the_ID(), 'disable_reading_progress_bar', true);
		
		// si on n'a pas désactivé la barre de progression de lecture
		// a partir de la Métabox de la page
		if( !$disable_reading_progress_bar ) {
			echo'<div class="eccp-reading-progress-bar"></div>';
		}
		
	}

	/* on récupère un tableau des noms et labels CPT indexé de façon numérique
	Array(
	
		[0] => Array
			(
				[name] => cours-rock4temps
				[label] => Cours Rock 4 Temps
			)

		[1] => Array
			(
				[name] => tribe_events
				[label] => Évènements
			)

	)
	*/
	$all_cpt = eccp_get_all_custom_post_type_for_display_reading_progress_bar();
	
	// afficher la barre de progression de lecture pour les CPT
	if(!empty($all_cpt)) {
		
		foreach ($all_cpt as $index) {
			
			if ($currentPostType == $index['name'] ) {
			
				if ( is_single() && 
			     $custom_front_end_settings['eccp_settings_enable_reading_progress_bar_for_'.$index['name'].'_checkbox_field']) {
				
					echo'<div class="eccp-reading-progress-bar"></div>';
	
				}
				
			}
		
		}
		
	}
	
}

add_action('wp_footer', 'eccp_reading_progress_bar',100);

/*----------------------------------------------------------------------------------------
		   CSS DYNAMIQUE POUR PERSONNALISER L'INTERFACE PUBLIQUE
/*---------------------------------------------------------------------------------------*/



add_action( 'wp_head', 'eccp_dynamic_css_public_interface' );

 function eccp_dynamic_css_public_interface() {
	 
	// récupération des paramètres du plugin
	$custom_front_end_settings = get_option( 'eccp_settings_custom_front_end' );
	$reusable_blocks_settings = get_option( 'eccp_settings_reusable_blocks' );

	// On récupère l'ID des blocs réutilisables sélectionnés pour les articles dans l'onglet
	// Blocs réutilisable de la page d'option du plugin
	$existing_post_before_reusable_block_id = intval( $reusable_blocks_settings['eccp_settings_insert_block_before_post_select_field'] );
	$existing_post_after_reusable_block_id = intval( $reusable_blocks_settings['eccp_settings_insert_block_after_post_select_field'] );

	
	// récupération du thème actif
	$my_theme = wp_get_theme();
	 
	echo '<style type="text/css">';
	
		if ( $custom_front_end_settings['eccp_settings_enable_back_to_top_button_checkbox_field'] ) {
			
			/*------------ CSS Pour Bouton Retour Vers Le Haut  ---------*/
			echo'.scroll-top {';

			  echo'background-color:'.$custom_front_end_settings['eccp_settings_back_top_button_color_text_field'].';';/* couleur par défaut bouton WordPress */
			  echo'width: 40px;';
			  echo'height: 40px;';
			  echo'text-align: center;';
			  echo'text-decoration: none;'; /* évite le soulignement bouton actif */
			  echo'border-radius:'.$custom_front_end_settings['eccp_settings_back_to_top_button_border_radius_text_field'].'px;';
			  echo'position: fixed;';/*La position fixe permet toujours à notre bouton de rester au même endroit lorsque nous faisons défiler la page*/
			  echo'bottom:'.$custom_front_end_settings['eccp_settings_margin_y_text_field'].'px;';
			  echo'right:'.$custom_front_end_settings['eccp_settings_margin_x_text_field'].'px;';
			  echo'z-index: 1000;';/*z-index d'un nombre très élevé fait en sorte que le bouton chevauche toujours d'autres éléments du site*/
			  echo'opacity: calc('.$custom_front_end_settings['eccp_settings_back_top_button_opacity_text_field'].'/100);';
			   
			echo'}';

			echo'.scroll-top:hover {';
			  echo'cursor: pointer;';
			  echo'opacity: calc('.$custom_front_end_settings ['eccp_settings_back_top_button_opacity_on_hover_text_field'].'/100);';
			echo'}';

			echo'.scroll-top:active {';
			  echo'opacity:1;';
			echo'}';


			echo'.scroll-top:after {';
			  echo'content: "\f343";';
			  echo'font-family:"dashicons";';
			  echo'font-weight: normal;';
			  echo'font-style: normal;';
			  echo'font-size: 2em;';
			  echo'line-height: 40px;';/* on ajuste la hauteur de la ligne a celle du container pour un centrage vertical de l'icône */
			  echo'color:'.$custom_front_end_settings['eccp_settings_color_icon_back_to_top_button_text_field'].';';
			echo'}';
				
	 
			/* Régles du bouton sur mobile */
			echo'@media(max-width: 480px){';
			
				echo'.scroll-top {';
					echo'right: 10px;';
					echo'bottom: 10px;';
					echo'width: 26px;';
					echo'height: 26px;';
				echo'}';
				
				echo'.scroll-top:after {';
				  echo'font-size: 1em;';
				  echo'line-height: 26px;';
				echo'}';
				
			echo'}';
			
		}// Fin si activation bouton retour en Haut
		
		
		/* ----- Boite d'informations sur l'auteur ---*/
	
		if ($custom_front_end_settings['eccp_settings_enable_author_info_box_checkbox_field']) {
		
			// Container principal boite d'info auteur
			echo'body.single .eccp-author-bio{';
				echo'background-color:' . $custom_front_end_settings['eccp_settings_background_author_info_box_text_field'] . ';';
				echo'padding:30px 15px 10px 15px;';
				echo'box-shadow: 5px 5px 5px #888888;';
				echo'margin-bottom:15px;';
				echo'margin-top: 50px;';
			echo'}';
			 
			 
			// texte intro: À PROPOS DE L'AUTEUR
			echo'body.single .eccp-author-bio-title{';
				echo'text-align:center;';
				echo'color:' . $custom_front_end_settings['eccp_settings_text_author_info_box_text_field'] . ';';
				echo'text-transform: uppercase;';
				echo'font-size:22px;';
			echo'}';

			// balise <h4> pour le nom de l'auteur
			echo'body.single .eccp-author-name{';
				echo'font-size:22px;';
				echo'font-weight: bold;';
				echo'color:' . $custom_front_end_settings['eccp_settings_title_author_info_box_text_field'] . ';';
			echo'}';


			// container liens sociaux
			echo'body.single .eccp-author-links{';
				echo'padding:10px 0px;';
				echo'margin: 0;';
			echo'}';
				
			// pour les icônes de réseaux sociaux
			echo'body.single .eccp-author-links a{';
				echo'padding:5px;';
				echo'text-decoration:none!important;';
				echo'color:' . $custom_front_end_settings['eccp_settings_link_author_info_box_text_field'] . ';';
			echo'}';
			
			// on supprime au clic l'encadrement des icônes liens sociaux 
			echo'body.single .eccp-author-links a{';
				echo'outline:none!important;';
			echo'}';

			echo'body.single .eccp-author-links i.dashicons{';
				echo'vertical-align:middle;';
			echo'}';

			// container div avatar & div descrition biographique auteur
			echo'body.single .eccp-author-bio-inner{';
				echo'display:flex;';
			echo'}';

			// container avatar
			echo'body.single .eccp-author-bio-avatar{';
				echo'min-width:80px;';
				echo'margin-right:30px;';
			echo'}';

			echo'body.single .eccp-author-bio-avatar img{';
				echo'border-radius:'.$custom_front_end_settings['eccp_settings_border_radius_avatar_author_info_box_text_field'].'px;';
				echo'border:none;';
			echo'}';

			// description biographique auteur
			echo'body.single .author-bio-content {';
				echo'position:relative;';
			echo'}';
			
			// couleur texte pour la description biographique auteur
			echo'body.single .eccp-author-bio-description {';
				echo'color:' . $custom_front_end_settings['eccp_settings_text_author_info_box_text_field'] . ';';
				echo'font-size:18px;';
			echo'}';
			
			// couleur lien pour la description biographique auteur
			echo'body.single .eccp-author-bio-description a {';
				echo'font-size:18px;';
				echo'text-decoration:none!important;';
				echo'color:' . $custom_front_end_settings['eccp_settings_link_author_info_box_text_field'] . ';';
			echo'}';


			/* Régles pour mobile */
			echo'@media(max-width:480px){';
			
				echo'body.single .eccp-author-bio-inner {';
					echo'flex-direction:column;';
				echo'}';
				
				echo'body.single .eccp-author-bio-avatar img{';
					echo'display:block;';
					echo'margin:auto;';
				echo'}';
				
				echo'body.single .eccp-author-name {';
					echo'text-align: center;';
					echo'margin-top: 20px;';
				echo'}';
				
			echo'}';


			/* l'activation des blocs réutilisables avant & aprés le contenu
			   duplique 2 fois la bio de l'auteur
			   on cible tous les éléments impairs   */
			if ( $existing_post_before_reusable_block_id || $existing_post_after_reusable_block_id ) {
				
				echo'section.eccp-author-bio:nth-of-type(2n+1){';
					echo'display:none;';
				echo'}';
				
			}

			/* on supprime la bio de oceanWP */
			if(stristr($my_theme, 'oceanwp')) {
				
				echo'#author-bio{';
					echo'display:none!important;';
				echo'}';
			
			}
			
		}
		
		/* ----- Lightbox Fancybox pour les publications ---*/
	
		if ($custom_front_end_settings['eccp_settings_enable_lightbox_checkbox_field']) {
		
			/* régle pour que la barre d'outils apparaisse au premier plan
			lorsque la lightbox n'est plus en plein écran */
			echo'body.single .fancybox__container,
			body.page .fancybox__container{';
				echo'z-index: 300000;';
			echo'}';

			/* Légende */
			echo'.fancybox__caption{';
				echo'text-align:center;';
				echo'font-weight:600;';
			echo'}';
			
			/* Navigation */
			echo'.fancybox__nav .f-button:focus {';	
					echo'background-color: transparent!important;';	
			echo'}';
			
			// correction thème Astra pour les boutons de la barre d'outils
			echo'.fancybox__toolbar .f-button:focus,
				 .fancybox__toolbar .f-button:active,
				 .fancybox__toolbar .f-button:hover{';
				echo'background: var(--f-button-bg)!important;';
				echo'color: var(--f-button-color)!important;';
			echo'}';
			
			/* pour les mobiles la librairie Fancybox
			   ne fonctionne pas correctement en mode plein écran
			   et le bouton masquer les vignettes est inactif
			   Alors on masque les boutons toogle:
			   mode plein écran,afficher/masquer vignettes, */
			echo'@media(max-width:900px){';
			
				// masque les boutons plein écran &  afficher/masquer vignettes
				echo'button[data-fancybox-toggle-fullscreen],
					  button[data-fancybox-toggle-thumbs]{';
					echo'display:none;';
				echo'}';
				
				// on rend le footer qui contient la légende transparent
				echo'.is-compact .fancybox__footer{';
						echo'background:transparent!important;';
				echo'}';
				
				// la légende est sur l'image en mode paysage
				// on remet la couleur blanche avec un effet textshadow 
				// pour plus de lisibilité
				echo'.is-compact .fancybox__footer .fancybox__caption {';
					echo'text-shadow: 1px 1px 2px rgba(0, 0, 0, 1);';
					echo'color: #FFFFFF;';
				echo'}';
				
			echo'}';
			
			echo'@media(max-width:900px) and (orientation:landscape){';
			
				// décalage image vers le bas qui est masquée par la barre d'outils
				echo'.is-compact .fancybox__slide.has-image>.fancybox__content{';
					echo'margin-top: 35px;';
				echo'}';
				
			echo'}';
			
			// si on a choisi de masquer les vignettes sur mobiles
			if($custom_front_end_settings['eccp_settings_hide_lightbox_thumbnails_mobile_checkbox_field']){
			
				echo'@media(max-width:900px){';
					 echo'.fancybox__thumbs{';
						echo'display:none;';
					echo'}';
				echo'}';
			
			}
			
			// si on a activé le thème clair
			if ($custom_front_end_settings['eccp_settings_lightbox_theme_choice_select_field'] == 'bright') {
				
				/*--------- Thème Clair pour la ligtbox de la librairie fancybox ------------ */

				echo'.fancybox__container {';
					
				  echo'--fancybox-color: #6a6969!important;';
				  echo'--fancybox-hover-color: #333333!important;';
				  echo'--fancybox-bg: #fff!important;';
				  echo'--f-spinner-color-1: rgba(0, 0, 0, 0.1);';
				  echo'--f-spinner-color-2: rgba(17, 24, 28, 0.8);';
				  
				echo'}';

				echo'.fancybox__nav {';
					
				  echo'--f-button-next-pos: 12px;';
				  echo'--f-button-prev-pos: 12px;';

				  echo'--f-button-width: 48px;';
				  echo'--f-button-height: 48px;';
				  
				  echo'--f-button-border-radius: 4px!important;';

				  echo'--f-button-color: #333!important;';
				  echo'--f-button-hover-color: #333!important;';

				  echo'--f-button-bg: #f1f5f9!important;';
				  echo'--f-button-hover-bg: #f1f5f9!important;';
				  echo'--f-button-active-bg: #f1f5f9!important;';

				  echo'--f-button-svg-height: 20px;';
				  echo'--f-button-svg-width: 20px;';

				  echo'--f-button-svg-stroke-width: 3;';
				  echo'--f-button-svg-filter: none;';

				echo'}';
				
				// correction thème generatepress
				echo'.fancybox__nav .f-button:focus {';	
					echo'background-color: var(--f-button-bg)!important;';	
				echo'}';
				
				// correction thème Astra pour l'icône navigation
				echo'.fancybox__nav .f-button svg {';	
					echo'stroke: var(--f-button-color)!important;';	
				echo'}';
				
				// correction thème Astra pour les boutons de la barre d'outils
				echo'.fancybox__toolbar .f-button:focus,
				     .fancybox__toolbar .f-button:active,
					 .fancybox__toolbar .f-button:hover{';
					echo'background: var(--f-button-bg)!important;';
					echo'color: var(--f-button-color)!important;';
				echo'}';
				
				echo'.fancybox__toolbar {';
					
				  echo'--f-button-color: #0d0c22!important;';
				  echo'--f-button-hover-color: #0d0c22!important;';

				  echo'--f-button-bg: transparent!important;';
				  echo'--f-button-hover-bg: transparent!important;';
				  echo'--f-button-active-bg: transparent!important;';

				  echo'--f-button-svg-stroke-width: 1.5!important;';
				  echo'--f-button-svg-filter: none!important;';

				  echo'background: #fff!important;';
				  echo'border-bottom: 1px solid #e5e7eb!important;';
				  echo'text-shadow: none!important;';
				  
				echo'}';

				/* On ajoute un padding au conteneur de l'image, en fonction de 
				   la hauteur de la barre d'outils ( égale a la hauteur d'un bouton: 46px )*/
				echo'.fancybox__slide.has-image>.fancybox__content {'; 
				  echo'padding: 12px 0px 0px 0px!important;';
				echo'}';

				echo'.fancybox__thumbs.is-classic,
				.fancybox__thumbs.is-modern {';
					
				  echo'--f-thumb-opacity: 1!important;';
				  echo'--f-thumb-hover-opacity: 1!important;';
				  echo'--f-thumb-selected-opacity: 1!important;';
				  echo'--f-thumb-gap: 12px;';
				  echo'--f-thumb-offset: 5px;';
				  echo'--f-thumb-outline: 0;'; 
				  
				echo'}';

				echo'.fancybox__thumbs.is-classic .f-thumbs__slide {';
					
				  echo'border: 1px solid #d1d5db!important;';
				  echo'border-radius: 4px!important;';
				  echo'transition: all 0.2s;';
				  
				echo'}';

				echo'.fancybox__thumbs.is-modern .f-thumbs__slide {';
					echo'width: var(--f-thumb-width)!important;';
				echo'}';

				echo'.fancybox__thumbs.is-classic .f-thumbs__slide:hover,
				.fancybox__thumbs.is-classic .f-thumbs__slide.is-nav-selected,
				.fancybox__thumbs.is-modern .f-thumbs__slide.is-nav-selected {';
				  echo'border: 1px solid #6b7280!important;';
				echo'}';

			}
		
		}
		
		
		/* ----- CSS Formulaire de commentaire ---*/
		
		// notes avant le formulaire de commentaire
		if(! empty( $custom_front_end_settings['eccp_settings_message_before_comment_form_textarea_field'] ) ){
			
			echo'.comment-form p.comment_notes{';
					echo'margin-top:10px;';
			echo'}';
			
		}
		
		// centrer le bouton de soumission
		if ($custom_front_end_settings['eccp_settings_center_comment_form_submit_button_checkbox_field']){
			
			echo'#respond .form-submit {';
				echo'float: none!important;';
			echo'}';
			
			echo'#respond input[type="submit"] {';
				echo'display:block!important;';
				echo'margin:auto!important;';	
			echo'}';
			
		}
		
		if(stristr($my_theme, 'astra')) {
			
			// Si on a supprimé le champ URL et déplacer le commentaire
			// en bas du formulaire alors:
			// on déplace en dessous des champs Mail & Nom 
			// le paragraphe pour le consentement cookies d'enregistrement mail,nom 
			if( ($custom_front_end_settings['eccp_settings_delete_comment_form_field_url_checkbox_field'])
			&&
			($custom_front_end_settings['eccp_settings_move_comment_field_from_comment_form_checkbox_field']) ) {
			
				echo'.comment-form p.comment-form-cookies-consent{';
					echo'float:left;';
				echo'}';
			
			}
		}
		
		
		/* ----- CSS Barre de progression de lecture ---*/
		
		// la barre de progression de lecture est
		// positionnée par défaut en haut de la publication
		echo'.eccp-reading-progress-bar {';
			echo'width: 0;';
			echo'height: '.$custom_front_end_settings['eccp_settings_height_reading_progress_bar_text_field'].'px;';
			echo'background-color: '.$custom_front_end_settings['eccp_settings_foreground_color_reading_progress_bar_text_field'].';';
			echo'position: fixed;';
			echo'top: 0;';
			echo'left: 0;';
			echo'z-index: 999999;';
			echo'transition: width 0.3s;';
			echo'display:block;';
        echo'}';
		
		if ($custom_front_end_settings['eccp_settings_position_reading_progress_bar_select_field'] =='bottom'){
			echo'.eccp-reading-progress-bar {';
				echo'top: auto;';
				echo'bottom: 0;';
			echo'}';
		} 
		
	echo '</style>';
	
 }
