diff --git a/TODO.md b/TODO.md index f6cfd4a..00ea28e 100644 --- a/TODO.md +++ b/TODO.md @@ -445,9 +445,9 @@ Goal: rename the tables and column to the canonical M2M pattern (`tags`, `thesis to avoid filesystem churn. At minimum, move the cache dir to `/tmp` or a dedicated `storage/cache/` path that is excluded from deploy rsync. -- [ ] **`__wakeup()` singleton guard throws from a public method** - PHP 8.x deprecates - throwing exceptions from `__wakeup`. Change to `trigger_error(..., E_USER_ERROR)` or implement - `__serialize()`/`__unserialize()` that always throw. +- [x] **`__wakeup()` singleton guard throws from a public method** - changed to + `trigger_error('Cannot unserialize singleton ...', E_USER_ERROR)` with explicit `void` return + type; eliminates the PHP 8.x deprecation notice. --- @@ -509,10 +509,9 @@ Goal: rename the tables and column to the canonical M2M pattern (`tags`, `thesis ### F - Template logic / PHP in templates -- [ ] **Rate-limit 429 response in `search.php` emits unstyled bare HTML** - the early-exit block - outputs `

Trop de requêtes

...` with no stylesheet, no lang, - no viewport meta. Style it inline-minimally or redirect to a consistent `429.php` page (like - `maintenance.php`). +- [x] **Rate-limit 429 response in `search.php` emits unstyled bare HTML** - replaced bare echo with + a properly structured HTML document (lang="fr", viewport meta, inline dark styles matching + `maintenance.php`); `$retrySeconds` injected into the user-facing message. - [ ] **`apropos.php` contacts and credits are hardcoded in the template** - names, roles, emails (Laurent Leprince, Xavier Gorgol, Brigitte Ledune) and credits text live in PHP/HTML and @@ -957,11 +956,10 @@ Current state: **zero ARIA attributes, zero skip links, zero focus-visible style structure. There is no programmatic association between label and value. Replacing with `
/
/
` (already flagged in the semantic audit) directly fixes this criterion. -- [ ] **Search filter `` elements have no associated `