k
This commit is contained in:
parent
200f6aab15
commit
31bc09759a
@ -1015,19 +1015,24 @@ class CRVI_TraductionLangue_Model extends Main_Model {
|
|||||||
error_log('🔍 Posts de capacités récupérés: ' . count($capacites_posts));
|
error_log('🔍 Posts de capacités récupérés: ' . count($capacites_posts));
|
||||||
|
|
||||||
if (empty($capacites_posts)) {
|
if (empty($capacites_posts)) {
|
||||||
// Mettre en cache un résultat vide
|
error_log('⚠️ Aucune capacité active trouvée - résultat vide');
|
||||||
|
// Ne pas mettre en cache un résultat vide trop longtemps (1 heure au lieu de 1 jour)
|
||||||
if ($use_cache) {
|
if ($use_cache) {
|
||||||
\set_transient($cache_key, [], 1 * \DAY_IN_SECONDS);
|
\set_transient($cache_key, [], 1 * \HOUR_IN_SECONDS);
|
||||||
}
|
}
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Construire une liste unique de langues à partir des capacités actives
|
// Construire une liste unique de langues à partir des capacités actives
|
||||||
$langues_ids = [];
|
$langues_ids = [];
|
||||||
|
$capacites_sans_langue = 0;
|
||||||
foreach ($capacites_posts as $post) {
|
foreach ($capacites_posts as $post) {
|
||||||
$langue_field = \get_field('langue', $post->ID);
|
$langue_field = \get_field('langue', $post->ID);
|
||||||
// Le champ langue est un tableau d'IDs (multi-select)
|
// Le champ langue est un tableau d'IDs (multi-select)
|
||||||
if (is_array($langue_field)) {
|
if (is_array($langue_field)) {
|
||||||
|
if (empty($langue_field)) {
|
||||||
|
$capacites_sans_langue++;
|
||||||
|
}
|
||||||
foreach ($langue_field as $langue_id) {
|
foreach ($langue_field as $langue_id) {
|
||||||
if (!empty($langue_id) && !in_array($langue_id, $langues_ids)) {
|
if (!empty($langue_id) && !in_array($langue_id, $langues_ids)) {
|
||||||
$langues_ids[] = (int) $langue_id;
|
$langues_ids[] = (int) $langue_id;
|
||||||
@ -1039,10 +1044,15 @@ class CRVI_TraductionLangue_Model extends Main_Model {
|
|||||||
if (!in_array($langue_id, $langues_ids)) {
|
if (!in_array($langue_id, $langues_ids)) {
|
||||||
$langues_ids[] = $langue_id;
|
$langues_ids[] = $langue_id;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
$capacites_sans_langue++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
error_log('🔍 IDs de langues uniques: ' . print_r($langues_ids, true));
|
if ($capacites_sans_langue > 0) {
|
||||||
|
error_log('⚠️ ' . $capacites_sans_langue . ' capacité(s) active(s) sans langue assignée');
|
||||||
|
}
|
||||||
|
error_log('🔍 IDs de langues uniques trouvées: ' . count($langues_ids) . ' - ' . print_r($langues_ids, true));
|
||||||
|
|
||||||
if (empty($langues_ids)) {
|
if (empty($langues_ids)) {
|
||||||
// Mettre en cache un résultat vide
|
// Mettre en cache un résultat vide
|
||||||
@ -1054,21 +1064,31 @@ class CRVI_TraductionLangue_Model extends Main_Model {
|
|||||||
|
|
||||||
// Récupérer les objets termes pour ces langues
|
// Récupérer les objets termes pour ces langues
|
||||||
$langues_terms = [];
|
$langues_terms = [];
|
||||||
|
$langues_manquantes = [];
|
||||||
foreach ($langues_ids as $langue_id) {
|
foreach ($langues_ids as $langue_id) {
|
||||||
$term = \get_term($langue_id, 'langue');
|
$term = \get_term($langue_id, 'langue');
|
||||||
if ($term && !\is_wp_error($term)) {
|
if ($term && !\is_wp_error($term)) {
|
||||||
$langues_terms[] = $term;
|
$langues_terms[] = $term;
|
||||||
|
} else {
|
||||||
|
$langues_manquantes[] = $langue_id;
|
||||||
|
error_log('⚠️ Langue ID ' . $langue_id . ' référencée dans une capacité mais non trouvée dans la taxonomie');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
error_log('🔍 Langues récupérées: ' . count($langues_terms));
|
error_log('🔍 Langues récupérées: ' . count($langues_terms) . ' sur ' . count($langues_ids));
|
||||||
|
if (!empty($langues_manquantes)) {
|
||||||
|
error_log('⚠️ Langues manquantes (IDs): ' . implode(', ', $langues_manquantes));
|
||||||
|
}
|
||||||
error_log('🔍 Date de début: ' . $date_debut);
|
error_log('🔍 Date de début: ' . $date_debut);
|
||||||
error_log('🔍 Date de fin: ' . $date_fin);
|
error_log('🔍 Date de fin: ' . $date_fin);
|
||||||
|
|
||||||
if (empty($langues_terms)) {
|
if (empty($langues_terms)) {
|
||||||
// Mettre en cache un résultat vide
|
error_log('⚠️ Aucune langue valide trouvée - résultat vide');
|
||||||
|
// Ne pas mettre en cache un résultat vide trop longtemps pour permettre un recalcul rapide
|
||||||
|
// Si des langues manquantes sont détectées, mettre un cache très court (5 minutes)
|
||||||
|
$cache_duration = !empty($langues_manquantes) ? 5 * \MINUTE_IN_SECONDS : 1 * \HOUR_IN_SECONDS;
|
||||||
if ($use_cache) {
|
if ($use_cache) {
|
||||||
\set_transient($cache_key, [], 1 * \DAY_IN_SECONDS);
|
\set_transient($cache_key, [], $cache_duration);
|
||||||
}
|
}
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
@ -1115,6 +1135,17 @@ class CRVI_TraductionLangue_Model extends Main_Model {
|
|||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invalide le cache pour une période spécifique
|
||||||
|
* @param string $date_debut Date de début (Y-m-d)
|
||||||
|
* @param string $date_fin Date de fin (Y-m-d)
|
||||||
|
*/
|
||||||
|
public static function invalidate_cache_periode(string $date_debut, string $date_fin): void {
|
||||||
|
$cache_key = 'crvi_langues_capacites_acf_' . $date_debut . '_' . $date_fin;
|
||||||
|
\delete_transient($cache_key);
|
||||||
|
error_log('🗑️ Cache invalidé pour la période ' . $date_debut . ' à ' . $date_fin);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Invalide le cache pour une capacité donnée
|
* Invalide le cache pour une capacité donnée
|
||||||
* À appeler lors de la création/modification/suppression d'événements ou de capacités
|
* À appeler lors de la création/modification/suppression d'événements ou de capacités
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user