diff --git a/php/inc_fx_promoteur.php b/php/inc_fx_promoteur.php index 7b2c698..d2cb64e 100644 --- a/php/inc_fx_promoteur.php +++ b/php/inc_fx_promoteur.php @@ -2771,26 +2771,51 @@ function fxBibMsg($clef, ...$args) { return $str; } -/** Nom affichable d'une épreuve (bib v4) — langue courante avec repli fr/en. */ +/** Description d'une épreuve en conflit : type + catégorie (langue courante), (inactive) si epr_actif = 0. */ function fxBibEpreuveDisplayName(array $row, $strLangue = 'fr') { $strLangue = in_array($strLangue, ['fr', 'en'], true) ? $strLangue : 'fr'; $strAlt = $strLangue === 'fr' ? 'en' : 'fr'; - foreach (['epr_nom_', 'epr_type_', 'epr_categorie_'] as $prefix) { - $str = trim($row[$prefix . $strLangue] ?? ''); - if ($str === '') { - $str = trim($row[$prefix . $strAlt] ?? ''); + $strType = trim($row['epr_type_' . $strLangue] ?? ''); + if ($strType === '') { + $strType = trim($row['epr_type_' . $strAlt] ?? ''); + } + + $strCat = trim($row['epr_categorie_' . $strLangue] ?? ''); + if ($strCat === '') { + $strCat = trim($row['epr_categorie_' . $strAlt] ?? ''); + } + + $parts = []; + if ($strType !== '') { + $parts[] = $strType; + } + if ($strCat !== '') { + $parts[] = $strCat; + } + + $str = implode(' ', $parts); + + if ($str === '') { + $strNom = trim($row['epr_nom_' . $strLangue] ?? ''); + if ($strNom === '') { + $strNom = trim($row['epr_nom_' . $strAlt] ?? ''); } - if ($str !== '') { - return $str; + $str = $strNom; + } + + if ($str === '' && !empty($row['epr_id'])) { + $str = '#' . (int)$row['epr_id']; + } + + if ((int)($row['epr_actif'] ?? 1) === 0) { + $strInactive = trim(fxBibTexte('bib_v4_ajax_overlap_inactive', 0)); + if ($strInactive !== '' && $strInactive !== 'bib_v4_ajax_overlap_inactive') { + $str .= ' (' . $strInactive . ')'; } } - if (!empty($row['epr_id'])) { - return '#' . (int)$row['epr_id']; - } - - return ''; + return $str; } /** @@ -2822,7 +2847,8 @@ function fxBibGetOverlappingRanges($eve_id, $start, $end, $exclude_bib_id = 0) { e.epr_type_fr, e.epr_type_en, e.epr_categorie_fr, - e.epr_categorie_en + e.epr_categorie_en, + e.epr_actif FROM inscriptions_epreuves_bib b INNER JOIN inscriptions_epreuves e ON e.epr_id = b.epr_id WHERE b.eve_id = $eve_id diff --git a/sql/MSIN-4379-bib_v4-etape4-ajax.sql b/sql/MSIN-4379-bib_v4-etape4-ajax.sql index f81d2a6..d2a119e 100644 --- a/sql/MSIN-4379-bib_v4-etape4-ajax.sql +++ b/sql/MSIN-4379-bib_v4-etape4-ajax.sql @@ -73,6 +73,14 @@ INSERT INTO info (info_clef, info_langue, info_texte, info_aide, info_prg, info_ SELECT 'bib_v4_ajax_overlap_entry', 'en', '« %s » (%d to %d)', '', 'compte.php', '', 0, 1, '', '', '', NOW() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM info WHERE info_clef = 'bib_v4_ajax_overlap_entry' AND info_langue = 'en' AND info_prg = 'compte.php'); +INSERT INTO info (info_clef, info_langue, info_texte, info_aide, info_prg, info_description, info_trie, info_actif, info_option1, info_option2, info_option3, info_creation) +SELECT 'bib_v4_ajax_overlap_inactive', 'fr', 'épreuve inactive', '', 'compte.php', '', 0, 1, '', '', '', NOW() +FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM info WHERE info_clef = 'bib_v4_ajax_overlap_inactive' AND info_langue = 'fr' AND info_prg = 'compte.php'); + +INSERT INTO info (info_clef, info_langue, info_texte, info_aide, info_prg, info_description, info_trie, info_actif, info_option1, info_option2, info_option3, info_creation) +SELECT 'bib_v4_ajax_overlap_inactive', 'en', 'inactive race', '', 'compte.php', '', 0, 1, '', '', '', NOW() +FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM info WHERE info_clef = 'bib_v4_ajax_overlap_inactive' AND info_langue = 'en' AND info_prg = 'compte.php'); + INSERT INTO info (info_clef, info_langue, info_texte, info_aide, info_prg, info_description, info_trie, info_actif, info_option1, info_option2, info_option3, info_creation) SELECT 'bib_v4_ajax_params_invalid', 'fr', 'Paramètres invalides', '', 'compte.php', '', 0, 1, '', '', '', NOW() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM info WHERE info_clef = 'bib_v4_ajax_params_invalid' AND info_langue = 'fr' AND info_prg = 'compte.php'); diff --git a/sql/MSIN-4379-bib_v4-overlap-detail.sql b/sql/MSIN-4379-bib_v4-overlap-detail.sql index 06ba579..954aa9e 100644 --- a/sql/MSIN-4379-bib_v4-overlap-detail.sql +++ b/sql/MSIN-4379-bib_v4-overlap-detail.sql @@ -22,3 +22,11 @@ FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM info WHERE info_clef = 'bib_v4_ajax_ov INSERT INTO info (info_clef, info_langue, info_texte, info_aide, info_prg, info_description, info_trie, info_actif, info_option1, info_option2, info_option3, info_creation) SELECT 'bib_v4_ajax_overlap_entry', 'en', '« %s » (%d to %d)', '', 'compte.php', '', 0, 1, '', '', '', NOW() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM info WHERE info_clef = 'bib_v4_ajax_overlap_entry' AND info_langue = 'en' AND info_prg = 'compte.php'); + +INSERT INTO info (info_clef, info_langue, info_texte, info_aide, info_prg, info_description, info_trie, info_actif, info_option1, info_option2, info_option3, info_creation) +SELECT 'bib_v4_ajax_overlap_inactive', 'fr', 'épreuve inactive', '', 'compte.php', '', 0, 1, '', '', '', NOW() +FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM info WHERE info_clef = 'bib_v4_ajax_overlap_inactive' AND info_langue = 'fr' AND info_prg = 'compte.php'); + +INSERT INTO info (info_clef, info_langue, info_texte, info_aide, info_prg, info_description, info_trie, info_actif, info_option1, info_option2, info_option3, info_creation) +SELECT 'bib_v4_ajax_overlap_inactive', 'en', 'inactive race', '', 'compte.php', '', 0, 1, '', '', '', NOW() +FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM info WHERE info_clef = 'bib_v4_ajax_overlap_inactive' AND info_langue = 'en' AND info_prg = 'compte.php');