ajout fonctions utiliraires
This commit is contained in:
parent
760e4d4f78
commit
b123b75b27
@ -173,6 +173,8 @@ class CRVI_Plugin {
|
|||||||
add_action('admin_notices', [self::class, 'display_intervenant_conflicts_notice']);
|
add_action('admin_notices', [self::class, 'display_intervenant_conflicts_notice']);
|
||||||
// Hook pour vider le cache via paramètre URL
|
// Hook pour vider le cache via paramètre URL
|
||||||
add_action('admin_init', [self::class, 'handle_clear_cache_request']);
|
add_action('admin_init', [self::class, 'handle_clear_cache_request']);
|
||||||
|
// Redirection des utilisateurs non connectés depuis les pages intervenant
|
||||||
|
add_action('template_redirect', [self::class, 'redirect_non_logged_from_intervenant_pages']);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -282,6 +284,85 @@ class CRVI_Plugin {
|
|||||||
public static function load_filters() {
|
public static function load_filters() {
|
||||||
/* add_filter('rest_endpoints', [self::class, 'register_routes']); */
|
/* add_filter('rest_endpoints', [self::class, 'register_routes']); */
|
||||||
add_filter('wp_script_attributes', [self::class, 'custom_script_tag'], 10, 2);
|
add_filter('wp_script_attributes', [self::class, 'custom_script_tag'], 10, 2);
|
||||||
|
// Redirection des intervenants après connexion vers leur espace
|
||||||
|
add_filter('login_redirect', [self::class, 'redirect_intervenant_after_login'], 10, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Redirige les intervenants vers leur espace après connexion
|
||||||
|
*
|
||||||
|
* @param string $redirect_to URL de redirection par défaut
|
||||||
|
* @param string $requested_redirect_to URL de redirection demandée
|
||||||
|
* @param WP_User|WP_Error $user Utilisateur connecté ou erreur
|
||||||
|
* @return string URL de redirection
|
||||||
|
*/
|
||||||
|
public static function redirect_intervenant_after_login($redirect_to, $requested_redirect_to, $user) {
|
||||||
|
// Vérifier si l'utilisateur est valide et n'est pas une erreur
|
||||||
|
if (is_wp_error($user) || !is_a($user, 'WP_User')) {
|
||||||
|
return $redirect_to;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Si une redirection spécifique a été demandée, la respecter
|
||||||
|
if (!empty($requested_redirect_to)) {
|
||||||
|
return $requested_redirect_to;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Vérifier si l'utilisateur a le rôle 'intervenant'
|
||||||
|
if (in_array('intervenant', $user->roles, true)) {
|
||||||
|
// Rediriger vers l'espace intervenant
|
||||||
|
return home_url('/espace-intervenant');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pour les autres utilisateurs, utiliser la redirection par défaut
|
||||||
|
return $redirect_to;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Redirige les utilisateurs non connectés depuis les pages intervenant vers la home
|
||||||
|
* Vérifie la page 'espace-intervenant' (ID 3307) et ses pages enfants
|
||||||
|
*/
|
||||||
|
public static function redirect_non_logged_from_intervenant_pages() {
|
||||||
|
// Vérifier si l'utilisateur est connecté
|
||||||
|
if (is_user_logged_in()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
global $post;
|
||||||
|
|
||||||
|
// ID de la page espace-intervenant
|
||||||
|
$intervenant_page_id = 3307;
|
||||||
|
|
||||||
|
// Vérifier si on est sur la page espace-intervenant ou une de ses pages enfants
|
||||||
|
$is_intervenant_page = false;
|
||||||
|
|
||||||
|
if ($post && $post->post_type === 'page') {
|
||||||
|
// Vérifier si c'est la page espace-intervenant elle-même
|
||||||
|
if ($post->ID == $intervenant_page_id) {
|
||||||
|
$is_intervenant_page = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Vérifier si c'est une page enfant de espace-intervenant
|
||||||
|
if (!$is_intervenant_page && $post->post_parent) {
|
||||||
|
$current_post = $post;
|
||||||
|
// Remonter la hiérarchie pour vérifier si un parent est la page 3307
|
||||||
|
while ($current_post->post_parent) {
|
||||||
|
$current_post = get_post($current_post->post_parent);
|
||||||
|
if (!$current_post) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if ($current_post->ID == $intervenant_page_id) {
|
||||||
|
$is_intervenant_page = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Si on est sur une page intervenant et que l'utilisateur n'est pas connecté, rediriger vers la home
|
||||||
|
if ($is_intervenant_page) {
|
||||||
|
wp_redirect(home_url('/'));
|
||||||
|
exit;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function load_shortcodes() {
|
public function load_shortcodes() {
|
||||||
|
|||||||
@ -269,11 +269,29 @@ class AgendaVisualFilters {
|
|||||||
// Fallback : utiliser le slug si l'ID n'est pas disponible
|
// Fallback : utiliser le slug si l'ID n'est pas disponible
|
||||||
langueSelect.value = filters.traduction;
|
langueSelect.value = filters.traduction;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Déclencher l'événement change pour que le système de filtrage existant prenne le relais
|
||||||
|
// Support pour Select2 si présent
|
||||||
|
if (window.jQuery && jQuery(langueSelect).hasClass('select2-hidden-accessible')) {
|
||||||
|
jQuery(langueSelect).trigger('change');
|
||||||
|
} else {
|
||||||
|
// Déclencher l'événement change natif
|
||||||
|
langueSelect.dispatchEvent(new Event('change', { bubbles: true }));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
const langueSelect = document.getElementById('langue_filtre');
|
const langueSelect = document.getElementById('langue_filtre');
|
||||||
if (langueSelect) {
|
if (langueSelect) {
|
||||||
langueSelect.value = '';
|
langueSelect.value = '';
|
||||||
|
|
||||||
|
// Déclencher l'événement change pour que le système de filtrage existant prenne le relais
|
||||||
|
// Support pour Select2 si présent
|
||||||
|
if (window.jQuery && jQuery(langueSelect).hasClass('select2-hidden-accessible')) {
|
||||||
|
jQuery(langueSelect).trigger('change');
|
||||||
|
} else {
|
||||||
|
// Déclencher l'événement change natif
|
||||||
|
langueSelect.dispatchEvent(new Event('change', { bubbles: true }));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -18,7 +18,7 @@ $user = wp_get_current_user();
|
|||||||
<div class="row mb-4">
|
<div class="row mb-4">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<h1 class="h2 mb-2">
|
<h1 class="h2 mb-2">
|
||||||
<i class="fas fa-calendar-alt me-2"></i>Mon Agenda
|
<!-- <i class="fas fa-calendar-alt me-2"></i> -->Mon Agenda
|
||||||
</h1>
|
</h1>
|
||||||
<nav class="navbar navbar-expand-lg navbar-light bg-light rounded p-3">
|
<nav class="navbar navbar-expand-lg navbar-light bg-light rounded p-3">
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
|
|||||||
@ -18,7 +18,7 @@ $user = wp_get_current_user();
|
|||||||
<div class="row mb-4">
|
<div class="row mb-4">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<h1 class="h2 mb-2">
|
<h1 class="h2 mb-2">
|
||||||
<i class="fas fa-calendar-alt me-2"></i>Mon Agenda
|
<!-- <i class="fas fa-calendar-alt me-2"></i> -->Mon Agenda
|
||||||
</h1>
|
</h1>
|
||||||
<nav class="navbar navbar-expand-lg navbar-light bg-light rounded p-3">
|
<nav class="navbar navbar-expand-lg navbar-light bg-light rounded p-3">
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
|
|||||||
@ -20,7 +20,7 @@ $today = date('d/m/Y');
|
|||||||
<div class="row mb-4">
|
<div class="row mb-4">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<h1 class="h2 mb-2">
|
<h1 class="h2 mb-2">
|
||||||
<i class="fas fa-home me-2"></i>Mon Espace Intervenant
|
<!-- <i class="fas fa-home me-2"></i> -->Mon Espace Intervenant
|
||||||
</h1>
|
</h1>
|
||||||
<p class="text-muted">Bonjour <?php echo esc_html($intervenant_nom); ?></p>
|
<p class="text-muted">Bonjour <?php echo esc_html($intervenant_nom); ?></p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -34,7 +34,7 @@ if (!is_wp_error($langues_terms) && !empty($langues_terms)) {
|
|||||||
<div class="row mb-4">
|
<div class="row mb-4">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<h1 class="h2 mb-2">
|
<h1 class="h2 mb-2">
|
||||||
<i class="fas fa-clock me-2"></i>Mes Permanences
|
<!-- <i class="fas fa-clock me-2"></i> -->Mes Permanences
|
||||||
</h1>
|
</h1>
|
||||||
<nav class="navbar navbar-expand-lg navbar-light bg-light rounded p-3">
|
<nav class="navbar navbar-expand-lg navbar-light bg-light rounded p-3">
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
|
|||||||
@ -80,7 +80,7 @@ $jours_labels = [
|
|||||||
<div class="row mb-4">
|
<div class="row mb-4">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<h1 class="h2 mb-2">
|
<h1 class="h2 mb-2">
|
||||||
<i class="fas fa-user me-2"></i>Mon Profil
|
<!-- <i class="fas fa-user me-2"></i> -->Mon Profil
|
||||||
</h1>
|
</h1>
|
||||||
<nav class="navbar navbar-expand-lg navbar-light bg-light rounded p-3">
|
<nav class="navbar navbar-expand-lg navbar-light bg-light rounded p-3">
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user