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:
@ -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
|
||||
|
||||
@ -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');
|
||||
|
||||
@ -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');
|
||||
|
||||
Reference in New Issue
Block a user