This commit is contained in:
theShlavuk 2026-01-21 22:48:42 +01:00
parent 444ab59ff7
commit 9369ee17ce

View File

@ -995,21 +995,23 @@ class CRVI_TraductionLangue_Model extends Main_Model {
} }
} }
// Récupérer uniquement les termes de la taxonomie 'langue' qui sont liés à des posts 'traduction_langue' actifs // Récupérer tous les posts 'traduction_langue' publiés et actifs
$langues_terms = \get_terms([ $capacites_posts = \get_posts([
'taxonomy' => 'langue', 'post_type' => 'traduction_langue',
'hide_empty' => true, // Important: ne récupérer que les termes utilisés 'post_status' => 'publish',
'object_ids' => \get_posts([ 'posts_per_page' => -1,
'post_type' => 'traduction_langue', 'meta_query' => [
'post_status' => 'publish', [
'numberposts' => -1, 'key' => 'actif',
'fields' => 'ids' 'value' => '1',
]) 'compare' => '=',
],
],
]); ]);
error_log('🔍 Langues récupérées: ' . print_r($langues_terms, true)); error_log('🔍 Posts de capacités récupérés: ' . count($capacites_posts));
if (\is_wp_error($langues_terms) || empty($langues_terms)) { if (empty($capacites_posts)) {
// Mettre en cache un résultat vide // Mettre en cache un résultat vide
if ($use_cache) { if ($use_cache) {
\set_transient($cache_key, [], 1 * \DAY_IN_SECONDS); \set_transient($cache_key, [], 1 * \DAY_IN_SECONDS);
@ -1017,17 +1019,64 @@ class CRVI_TraductionLangue_Model extends Main_Model {
return []; return [];
} }
error_log('🔍 Langues récupérées: ' . print_r($langues_terms, true)); // Construire une liste unique de langues à partir des capacités actives
$langues_ids = [];
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)) {
foreach ($langue_field as $langue_id) {
if (!empty($langue_id) && !in_array($langue_id, $langues_ids)) {
$langues_ids[] = (int) $langue_id;
}
}
} elseif (!empty($langue_field)) {
// Cas où c'est un seul ID (ne devrait pas arriver avec multi-select, mais on gère)
$langue_id = (int) $langue_field;
if (!in_array($langue_id, $langues_ids)) {
$langues_ids[] = $langue_id;
}
}
}
error_log('🔍 IDs de langues uniques: ' . print_r($langues_ids, true));
if (empty($langues_ids)) {
// Mettre en cache un résultat vide
if ($use_cache) {
\set_transient($cache_key, [], 1 * \DAY_IN_SECONDS);
}
return [];
}
// Récupérer les objets termes pour ces langues
$langues_terms = [];
foreach ($langues_ids as $langue_id) {
$term = \get_term($langue_id, 'langue');
if ($term && !\is_wp_error($term)) {
$langues_terms[] = $term;
}
}
error_log('🔍 Langues récupérées: ' . count($langues_terms));
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)) {
// Mettre en cache un résultat vide
if ($use_cache) {
\set_transient($cache_key, [], 1 * \DAY_IN_SECONDS);
}
return [];
}
$result = []; $result = [];
foreach ($langues_terms as $langue_term) { foreach ($langues_terms as $langue_term) {
// Vérifier qu'il existe au moins une capacité active pour cette langue // Vérifier qu'il existe au moins une capacité active pour cette langue
$capacites = self::getActiveCapacites(['langue' => $langue_term->term_id], false); $capacites = self::getActiveCapacites(['langue' => $langue_term->term_id], false);
error_log('🔍 Capacités récupérées: ' . print_r($capacites, true)); error_log('🔍 Capacités pour ' . $langue_term->name . ' (ID: ' . $langue_term->term_id . '): ' . count($capacites));
if (empty($capacites)) { if (empty($capacites)) {
// Pas de capacité active pour cette langue, on saute // Pas de capacité active pour cette langue, on saute
@ -1048,7 +1097,6 @@ class CRVI_TraductionLangue_Model extends Main_Model {
'by_jour' => $dispos['by_jour'], 'by_jour' => $dispos['by_jour'],
]; ];
} }
error_log('🔍 Résultat: ' . print_r($result, true)); error_log('🔍 Résultat: ' . print_r($result, true));
// Trier par nom de langue // Trier par nom de langue