From 3a3ebec2bf18fb6337ba312185ebb8d0eacfcc6d Mon Sep 17 00:00:00 2001 From: stephan Date: Fri, 19 Jun 2026 10:03:01 -0400 Subject: [PATCH] Enhance mobile registration interface by introducing key-value list rendering functions and updating CSS for improved layout. This commit adds new functions to render participant profile details in a structured format, enhancing readability and organization. The CSS is updated to support the new layout, including adjustments to padding and grid structure. The version code is incremented to 4.72.680 to reflect these changes, further improving the user experience in mobile registrations. --- css/style.css | 52 ++++++++++++--- php/inc_fx_inscriptions_mobile.php | 103 +++++++++++++++++++---------- php/inc_settings.php | 2 +- 3 files changed, 112 insertions(+), 45 deletions(-) diff --git a/css/style.css b/css/style.css index 6ac0aca..91b13a5 100644 --- a/css/style.css +++ b/css/style.css @@ -2730,6 +2730,43 @@ a.ms1-trad-link.btn-aide-trad{ padding:12px; } +.inscr-mobile-kv-list{ + padding:4px 12px 8px; +} + +.inscr-mobile-kv-row{ + display:grid; + grid-template-columns:minmax(120px, 34%) 1fr; + gap:6px 16px; + align-items:baseline; + padding:4px 0; + border-bottom:1px solid #f1f3f5; + font-size:13px; + line-height:1.35; +} + +.inscr-mobile-kv-row:last-child{ + border-bottom:none; +} + +.inscr-mobile-kv-row--profile{ + border-top:1px solid #e9ecef; + margin-top:2px; + padding-top:6px; +} + +.inscr-mobile-kv-row__label{ + font-weight:600; + color:#6c757d; + font-size:12px; +} + +.inscr-mobile-kv-row__value{ + color:#212529; + min-width:0; + word-break:break-word; +} + .inscr-mobile-dl dt{ font-size:12px; font-weight:600; @@ -2746,15 +2783,6 @@ a.ms1-trad-link.btn-aide-trad{ font-size:14px; } -.inscr-mobile-fiche-profile{ - border-top:1px solid #eee; - margin-top:4px; -} - -.inscr-mobile-dl--profile{ - padding-top:8px; -} - .inscr-mobile-bib-row{ display:flex; gap:8px; @@ -2819,4 +2847,10 @@ a.ms1-trad-link.btn-aide-trad{ margin-left:0; text-align:left; } + + .inscr-mobile-kv-row{ + grid-template-columns:1fr; + gap:2px; + padding:6px 0; + } } diff --git a/php/inc_fx_inscriptions_mobile.php b/php/inc_fx_inscriptions_mobile.php index 8cbb287..f6d2535 100644 --- a/php/inc_fx_inscriptions_mobile.php +++ b/php/inc_fx_inscriptions_mobile.php @@ -209,6 +209,35 @@ function fxInscrMobileBibDisplay($arrRow) { return fxShowBibNumber($arrRow['no_bib'], $arrRow['epr_id'], 'participant'); } +function fxInscrMobileRenderKvListOpen() { + echo '
'; +} + +function fxInscrMobileRenderKvListClose() { + echo '
'; +} + +function fxInscrMobileRenderKvRow($strLabel, $strValue, $blnHtml = false, $strExtraClass = '') { + if (!$blnHtml && trim((string)$strValue) === '') { + return; + } + + $strClass = 'inscr-mobile-kv-row'; + if ($strExtraClass !== '') { + $strClass .= ' ' . $strExtraClass; + } + + echo '
'; + echo '
' . fxInscrMobileEsc($strLabel) . '
'; + echo '
'; + if ($blnHtml) { + echo $strValue; + } else { + echo fxInscrMobileEsc($strValue); + } + echo '
'; +} + function fxInscrMobileFetchFicheProfile($arrRow, $strLangue) { global $objDatabase; @@ -293,42 +322,49 @@ function fxInscrMobileFetchFicheProfile($arrRow, $strLangue) { ); } -function fxInscrMobileRenderFicheProfileDetails($arrRow, $strLangue) { +function fxInscrMobileRenderFicheProfileKvRows($arrRow, $strLangue) { $tabProfile = fxInscrMobileFetchFicheProfile($arrRow, $strLangue); + $blnFirstProfile = true; - $blnHasRole = ($tabProfile['role'] !== '' && $tabProfile['name'] !== ''); - $blnHasEmail = ($tabProfile['email'] !== ''); - $blnHasBirth = ($tabProfile['birth_gender'] !== ''); - $blnHasQuestions = (count($tabProfile['questions']) > 0); - - if (!$blnHasRole && !$blnHasEmail && !$blnHasBirth && !$blnHasQuestions) { - return; + if ($tabProfile['role'] !== '' && $tabProfile['name'] !== '') { + fxInscrMobileRenderKvRow( + $tabProfile['role'], + $tabProfile['name'], + false, + $blnFirstProfile ? 'inscr-mobile-kv-row--profile' : '' + ); + $blnFirstProfile = false; } - echo '
'; - echo '
'; - - if ($blnHasRole) { - echo '
' . fxInscrMobileEsc($tabProfile['role']) . '
'; - echo '
' . fxInscrMobileEsc($tabProfile['name']) . '
'; + if ($tabProfile['email'] !== '') { + fxInscrMobileRenderKvRow( + fxInscrMobileT('inscr_mobile_email'), + $tabProfile['email'], + false, + $blnFirstProfile ? 'inscr-mobile-kv-row--profile' : '' + ); + $blnFirstProfile = false; } - if ($blnHasEmail) { - echo '
' . fxInscrMobileEsc(fxInscrMobileT('inscr_mobile_email')) . '
'; - echo '
' . fxInscrMobileEsc($tabProfile['email']) . '
'; - } - - if ($blnHasBirth) { - echo '
' . fxInscrMobileEsc(fxInscrMobileT('inscr_mobile_birthdate')) . '
'; - echo '
' . fxInscrMobileEsc($tabProfile['birth_gender']) . '
'; + if ($tabProfile['birth_gender'] !== '') { + fxInscrMobileRenderKvRow( + fxInscrMobileT('inscr_mobile_birthdate'), + $tabProfile['birth_gender'], + false, + $blnFirstProfile ? 'inscr-mobile-kv-row--profile' : '' + ); + $blnFirstProfile = false; } foreach ($tabProfile['questions'] as $tabQuestion) { - echo '
' . fxInscrMobileEsc($tabQuestion['label']) . '
'; - echo '
' . fxInscrMobileEsc($tabQuestion['value']) . '
'; + fxInscrMobileRenderKvRow( + $tabQuestion['label'], + $tabQuestion['value'], + false, + $blnFirstProfile ? 'inscr-mobile-kv-row--profile' : '' + ); + $blnFirstProfile = false; } - - echo '
'; } /** Code statut course par défaut (Confirmé). */ @@ -819,15 +855,12 @@ function fxInscrMobileRenderFiche($intEveId, $strLangue, $strBaseUrl, $arrReq, $ echo '
'; fxInscrMobileRenderSectionTitle(fxInscrMobileT('inscr_mobile_details'), 'fa-info-circle'); - echo '
'; - echo '
' . fxInscrMobileEsc(fxInscrMobileT('inscr_mobile_epreuve')) . '
'; - echo '
' . fxInscrMobileEsc(fxInscrMobileEpreuveLabel($arrRow['epr_id'], $strLangue)) . '
'; - echo '
' . fxInscrMobileEsc(fxInscrMobileT('inscr_mobile_type')) . '
'; - echo '
' . fxInscrMobileEsc($strDetailsType) . '
'; - echo '
' . fxInscrMobileEsc(fxInscrMobileT('inscr_mobile_modified')) . '
'; - echo '
' . fxCheckMAJ($arrRow['pec_id_original'], $intParId, $strLangue) . '
'; - echo '
'; - fxInscrMobileRenderFicheProfileDetails($arrRow, $strLangue); + fxInscrMobileRenderKvListOpen(); + fxInscrMobileRenderKvRow(fxInscrMobileT('inscr_mobile_epreuve'), fxInscrMobileEpreuveLabel($arrRow['epr_id'], $strLangue)); + fxInscrMobileRenderKvRow(fxInscrMobileT('inscr_mobile_type'), $strDetailsType); + fxInscrMobileRenderKvRow(fxInscrMobileT('inscr_mobile_modified'), fxCheckMAJ($arrRow['pec_id_original'], $intParId, $strLangue), true); + fxInscrMobileRenderFicheProfileKvRows($arrRow, $strLangue); + fxInscrMobileRenderKvListClose(); echo '
'; $strStyleEdit = $strStyleCancel = ''; diff --git a/php/inc_settings.php b/php/inc_settings.php index 35e3625..fbfddf8 100644 --- a/php/inc_settings.php +++ b/php/inc_settings.php @@ -7,7 +7,7 @@ * Constantes * * **************/ -define('_VERSION_CODE', '4.72.679'); +define('_VERSION_CODE', '4.72.680'); define('_DATE_CODE', '2026-06-18'); //MSIN-4290 define('QR_SECRET_KEY', 'ms1_qr_2026_cle_secrete_longue_et_fixe');