Enhance fxBibEpreuveDisplayName function to include inactive status and improve display logic

This commit updates the fxBibEpreuveDisplayName function to provide a more comprehensive display name for events by incorporating both type and category information. It also adds logic to append an "(inactive)" label when the event is not active. Additionally, new SQL entries are introduced to support localized messages for inactive events in both French and English, improving user feedback in the interface. No version code change is included in this update.
This commit is contained in:
2026-06-18 09:24:25 -04:00
parent b71d1c300b
commit d0db73624e
3 changed files with 55 additions and 13 deletions

View File

@ -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

View File

@ -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');

View File

@ -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');