diff --git a/TODO.md b/TODO.md index fc2776c..923ef27 100644 --- a/TODO.md +++ b/TODO.md @@ -1,48 +1,4 @@ # TODO -## Done -- [x] Move CSV import from standalone import.php to inline dialog on the list page - - [x] Import logic embedded in index.php (processed before render) - - [x] `` with form, results log, and auto-opens on post-submit - - [x] "Importer un CSV" button in list header row next to h1 - - [x] Nav link to import.php removed; import.php now redirects to /admin/ - - [x] CSS: `.admin-dialog`, `.admin-list-header`, `.admin-import-log` -- [x] Create Paramètres page consolidating maintenance toggle and account settings into two sections - - [x] New `public/admin/parametres.php` with Maintenance + Compte administrateur sections - - [x] Nav updated: “Compte” replaced by “Paramètres” linking to `parametres.php` - - [x] Maintenance bar removed from `index.php` - - [x] `actions/maintenance.php` and `actions/account.php` redirect to `parametres.php` via POST `redirect` param - - [x] CSS added for `.admin-settings-section` and `.admin-maintenance-status` -- [x] Fix nav logo: revert to "Xamxam", apply display font (Combined), step-2 size, letter-spacing, text-shadow via .nav-logo class -- [x] Bump all font sizes ~10% across all CSS files (admin, system, search, main, apropos, common, tfe) -- [x] Migrate to utopia fluid type scale (--step--2 → --step-5) and space scale (--space-3xs → --space-3xl) across all CSS files -- [x] Split search logic into search.php - - [x] `public/search.php` — new page for text-query search results - - [x] `public/repertoire.php` — stripped to répertoire index only - - [x] `SearchController::handle()` split into `handleSearch()` + `handleRepertoire()` - - [x] Search bar (`header.php`, `search-bar.php`) now POSTs to `/search.php` - - [x] `tfe.php` `?query=` links updated to `/search.php` - - [x] Filter links (`?or[]=`, `?ap[]=`, `?fy[]=`, `?kw[]=`) stay on `repertoire.php` -- [x] TFE metadata values are hyperlinks to repertoire.php with correct filter/search params - - orientation → `or[]`, ap_program → `ap[]`, year → `fy[]`, keywords → `kw[]` (per keyword) - - languages, formats → `query=` (text search); jury members → `query=` (text search) - - access_type, license_type, file_size_info, context_note, baiu_link remain plain text/links as-is -- [x] Fix TFE page gradient bleed & layout collapse - - [x] Scope `header` nav CSS in common.css to `body > header` (prevents article `
` inheriting gradient) - - [x] Add `width: 100%` + `align-items: start` to `.tfe-layout` grid - - [x] Remove `overflow-y: auto` from `.tfe-main` (was clipping layout) -- [x] Redesign TFE detail page - - [x] Author moved above title (smaller body font) - - [x] Remove "← Retour" back link - - [x] Split jury promoteurs into interne/externe using `getThesisJury()` - - [x] Jury fields order: promoteur interne → externe → président → lecteurs - - [x] Contact URL strips `http(s)://` prefix for display - - [x] Right-column images get `border-radius: 8px` - - [x] Remove orphan `.tfe-back-link` CSS rule -- [x] Improve À propos page layout - - [x] Replace two-column (prose + aside) with sticky-TOC-nav + main-content layout - - [x] Sticky left nav with section anchors (À propos, Contacts, Crédits + erg link) - - [x] Contacts rendered as bordered rows instead of loose address blocks - - [x] Credits rendered as `
` grid with label/value rows - - [x] Section dividers (border-bottom) between sections - - [x] Responsive: TOC collapses to horizontal bar on mobile +## Fixes +- [x] Replace `mb_strlen`/`mb_substr` with `strlen`/`substr` in TfeController, SearchController, Parsedown — mbstring extension not available on production server diff --git a/src/Parsedown.php b/src/Parsedown.php index 2f01d5c..4349421 100644 --- a/src/Parsedown.php +++ b/src/Parsedown.php @@ -185,7 +185,7 @@ class Parsedown while (($beforeTab = strstr($line, "\t", true)) !== false) { - $shortage = 4 - mb_strlen($beforeTab, 'utf-8') % 4; + $shortage = 4 - strlen($beforeTab) % 4; $line = $beforeTab . str_repeat(' ', $shortage) diff --git a/src/SearchController.php b/src/SearchController.php index a474ff6..d837ed0 100644 --- a/src/SearchController.php +++ b/src/SearchController.php @@ -211,7 +211,7 @@ class SearchController $out = []; foreach ($raw as $v) { $v = trim((string)$v); - if ($v !== '' && mb_strlen($v) <= $maxLen) { + if ($v !== '' && strlen($v) <= $maxLen) { $out[] = $v; } } diff --git a/src/TfeController.php b/src/TfeController.php index 149cc92..e9b5d0e 100644 --- a/src/TfeController.php +++ b/src/TfeController.php @@ -126,8 +126,8 @@ class TfeController return 'Mémoire de fin d\'études – Posterg, répertoire des TFE de l\'erg.'; } - return mb_strlen($plain) > self::META_MAX_LEN - ? mb_substr($plain, 0, self::META_MAX_LEN - 3) . '…' + return strlen($plain) > self::META_MAX_LEN + ? substr($plain, 0, self::META_MAX_LEN - 3) . '…' : $plain; }