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));
|
||||
|
||||
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) {
|
||||
\set_transient($cache_key, [], 1 * \DAY_IN_SECONDS);
|
||||
\set_transient($cache_key, [], 1 * \HOUR_IN_SECONDS);
|
||||
}
|
||||
return [];
|
||||
}
|
||||
|
||||
// Construire une liste unique de langues à partir des capacités actives
|
||||
$langues_ids = [];
|
||||
$capacites_sans_langue = 0;
|
||||
foreach ($capacites_posts as $post) {
|
||||
$langue_field = \get_field('langue', $post->ID);
|
||||
// Le champ langue est un tableau d'IDs (multi-select)
|
||||
if (is_array($langue_field)) {
|
||||
if (empty($langue_field)) {
|
||||
$capacites_sans_langue++;
|
||||
}
|
||||
foreach ($langue_field as $langue_id) {
|
||||
if (!empty($langue_id) && !in_array($langue_id, $langues_ids)) {
|
||||
$langues_ids[] = (int) $langue_id;
|
||||
@ -1039,10 +1044,15 @@ class CRVI_TraductionLangue_Model extends Main_Model {
|
||||
if (!in_array($langue_id, $langues_ids)) {
|
||||
$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)) {
|
||||
// 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
|
||||
$langues_terms = [];
|
||||
$langues_manquantes = [];
|
||||
foreach ($langues_ids as $langue_id) {
|
||||
$term = \get_term($langue_id, 'langue');
|
||||
if ($term && !\is_wp_error($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 fin: ' . $date_fin);
|
||||
|
||||
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) {
|
||||
\set_transient($cache_key, [], 1 * \DAY_IN_SECONDS);
|
||||
\set_transient($cache_key, [], $cache_duration);
|
||||
}
|
||||
return [];
|
||||
}
|
||||
@ -1115,6 +1135,17 @@ class CRVI_TraductionLangue_Model extends Main_Model {
|
||||
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
|
||||
* À appeler lors de la création/modification/suppression d'événements ou de capacités
|
||||
|
||||
Loading…
Reference in New Issue
Block a user