From 71949425c7eb6a1bcff87c8c1e4726105ccfca7a Mon Sep 17 00:00:00 2001 From: Pontoporeia Date: Mon, 8 Jun 2026 10:56:23 +0200 Subject: [PATCH] TFE page: remove underlines from all links, lowercase keywords/languages/formats, inclusive writing, prevent keyword mid-word breaks, editable restriction messages in admin --- TODO.md | 5 ++++ app/public/admin/actions/settings.php | 14 +++++++++ app/public/assets/css/tfe.css | 26 +++++++++++------ app/src/Controllers/TfeController.php | 10 +++++++ app/templates/admin/acces.php | 41 +++++++++++++++++++++++++++ app/templates/public/tfe.php | 16 +++++++---- 6 files changed, 98 insertions(+), 14 deletions(-) diff --git a/TODO.md b/TODO.md index 8ab051f..31de3e7 100644 --- a/TODO.md +++ b/TODO.md @@ -11,3 +11,8 @@ - [x] Répertoire: barres de scroll discrètes (thin + semi-transparentes) - [x] Répertoire: fontes/graisses conformes à la maquette (Ductus pour titres colonnes, années en bold, etc.) - [x] Répertoire: diminutifs des AP entre crochets (ex: Design et Politique du Multiple [DPM]) +- [x] Page TFE: enlever le soulignage de tous les mots/liens +- [x] Page TFE: harmoniser minuscules pour mots-clés, langues & formats +- [x] Page TFE: corriger texte inclusif ("utilisateur·ices autorisé·es") +- [x] Page TFE: empêcher les mots-clés de se couper au milieu du mot lors du wrapping +- [x] Page TFE: rendre le texte des TFE internes/interdits éditable dans les paramètres diff --git a/app/public/admin/actions/settings.php b/app/public/admin/actions/settings.php index f373f2a..efd616e 100644 --- a/app/public/admin/actions/settings.php +++ b/app/public/admin/actions/settings.php @@ -147,6 +147,18 @@ if ($section === 'formulaire_restrictions') { PeerTubeService::updateSettings($db, $data); $logger->logPeerTubeUpdate($enabled === '1'); App::flash('success', 'Paramètres PeerTube mis à jour.'); +} elseif ($section === 'tfe_messages') { + if (isset($_POST['tfe_restricted_message'])) { + $db->setSetting('tfe_restricted_message', $_POST['tfe_restricted_message']); + } + if (isset($_POST['tfe_forbidden_message'])) { + $db->setSetting('tfe_forbidden_message', $_POST['tfe_forbidden_message']); + } + if ($isHxRequest) { + hxToastSuccess('Messages TFE mis à jour.'); + } else { + App::flash('success', "Messages TFE mis à jour."); + } } else { App::flash('error', "Section inconnue."); } @@ -166,6 +178,8 @@ if (in_array($section, ['formulaire_acces', 'objet_types'], true)) { $redirect = '/admin/contenus.php'; } elseif ($section === 'formulaire_restrictions') { $redirect = '/admin/acces.php'; +} elseif ($section === 'tfe_messages') { + $redirect = '/admin/acces.php'; } header('Location: ' . $redirect); exit; diff --git a/app/public/assets/css/tfe.css b/app/public/assets/css/tfe.css index 09fe155..46f4b19 100644 --- a/app/public/assets/css/tfe.css +++ b/app/public/assets/css/tfe.css @@ -53,27 +53,32 @@ article dl { /* Each dt/dd pair grouped in a
inside
*/ article dl > div { - display: flex; + display: grid; + grid-template-columns: auto 1fr; gap: var(--space-3xs); - flex-wrap: wrap; } article dl dt { color: var(--text-primary); font-weight: 400; - flex-shrink: 0; } article dl dd { color: var(--text-primary); font-weight: 700; margin: 0; + min-width: 0; + word-break: normal; + overflow-wrap: normal; } article dl dd a { color: inherit; - text-decoration: underline; - text-underline-offset: 2px; + text-decoration: none; +} + +article dl dd a:hover { + text-decoration: none; } /* Note field: align dt/dd to top, value in italics */ @@ -169,13 +174,13 @@ aside figcaption { font-size: var(--step--1); font-weight: 500; color: var(--text-primary); - text-decoration: underline; - text-underline-offset: 2px; + text-decoration: none; word-break: break-all; } .tfe-download-link:hover { color: var(--accent-primary); + text-decoration: none; } .tfe-download-icon { @@ -192,8 +197,11 @@ aside figcaption { .tfe-pdf-fallback a { color: var(--text-primary); - text-decoration: underline; - text-underline-offset: 2px; + text-decoration: none; +} + +.tfe-pdf-fallback a:hover { + text-decoration: none; } /* "Not available" and "no files" notices */ diff --git a/app/src/Controllers/TfeController.php b/app/src/Controllers/TfeController.php index 492da33..a71e688 100644 --- a/app/src/Controllers/TfeController.php +++ b/app/src/Controllers/TfeController.php @@ -106,6 +106,12 @@ class TfeController . (!empty($data['authors']) ? ' – ' . $data['authors'] : '') . ' – XAMXAM'; + // Editable messages + $restrictedMessage = $this->db->getSetting('tfe_restricted_message', + 'Les fichiers attachés à ce TFE sont réservés aux utilisateur·ices autorisé·es.'); + $forbiddenMessage = $this->db->getSetting('tfe_forbidden_message', + "Ce TFE n'est pas disponible en ligne."); + return [ // Core data 'thesisId' => $thesisId, @@ -125,6 +131,10 @@ class TfeController 'hasRestrictedAccess' => $hasRestrictedAccess, 'shouldHideFiles' => $shouldHideFiles, + // Editable TFE messages + 'restrictedMessage' => $restrictedMessage, + 'forbiddenMessage' => $forbiddenMessage, + // Page meta 'pageTitle' => $pageTitle, 'metaDescription' => $metaDescription, diff --git a/app/templates/admin/acces.php b/app/templates/admin/acces.php index 3920550..7403a64 100644 --- a/app/templates/admin/acces.php +++ b/app/templates/admin/acces.php @@ -346,6 +346,47 @@
+ + +
+

Messages des pages TFE

+

+ Personnalisez les textes affichés sur les pages TFE pour les accès restreints et interdits. +

+ +
+ Message pour les TFE internes (accès restreint) +
+ + + + +
+
+ +
+ Message pour les TFE interdits (non disponible) +
+ + + + +
+
+
+
diff --git a/app/templates/public/tfe.php b/app/templates/public/tfe.php index af2e6db..2d83e29 100644 --- a/app/templates/public/tfe.php +++ b/app/templates/public/tfe.php @@ -55,7 +55,7 @@ fn($l) => '' . - htmlspecialchars($l) . + htmlspecialchars(mb_strtolower($l)) . "", $langs, ); @@ -73,7 +73,7 @@ fn($f) => '' . - htmlspecialchars($f) . + htmlspecialchars(mb_strtolower($f)) . "", $fmts, ); @@ -91,7 +91,7 @@ fn($k) => '' . - htmlspecialchars($k) . + htmlspecialchars(mb_strtolower($k)) . "", $kws, ); @@ -295,13 +295,19 @@

- Ce TFE n'est pas disponible en ligne. +

Accès restreint
- Les fichiers attachés à ce TFE sont réservés aux utilisateurs autorisés. +