- Add Database::getThesesListCount(array $filters) — runs the same WHERE clauses as getThesesList() but with COUNT(DISTINCT t.id); used to compute total pages without loading all rows. - Extend Database::getThesesList() with $limit/$offset parameters; when $limit > 0 appends LIMIT/OFFSET and re-binds positional params individually to avoid the PDO mixed-style restriction. - Fix getThesesList() SELECT: add LEFT JOIN access_types + at.name as access_type — the column was referenced in the template but never fetched. - Wire admin/index.php: read ?page=, compute $totalPages/$offset, pass $perPage=25 + $offset to getThesesList(); include pagination.php partial below the table with filter-preserving $baseParams. - Add result-count line (<p class="admin-list-meta">) showing "X–Y sur Z TFE" when multiple pages exist. - Add .admin-body .pagination-wrap / .pagination-btn / .pagination-info styles to admin.css (scoped to .admin-body to avoid colliding with public pages).
2.2 KiB
TODO
Pending tasks have been split into topic files under todo/:
| File | Topic |
|---|---|
| todo/01-css-semantic-refactor.md | CSS class audit, semantic HTML (public + admin), inline style extraction, favicon |
| todo/02-php-components.md | Form field partials, shared UI partials, controller extraction, backend maintenance |
| todo/03-system-cache.md | system_cache table, SystemCache class, system.php refactor |
| todo/04-accessibility.md | WCAG 2.1 AA — remaining failures grouped by success criterion |
Recently completed (this session)
-
admin/index.php— server-side pagination (25/page);Database::getThesesListCount()added;getThesesList()extended with$limit/$offset;access_typeJOIN added to query (was missing); result-count meta line added;.pagination-wrap+.pagination-btn+.pagination-infostyles added toadmin.css -
checkbox-list.php— replaced<div class="admin-checkbox-list">with<fieldset class="admin-checkbox-group"><legend class="sr-only">…</legend><ul>(WCAG 1.3.1 fix) -
admin.css— replaced.admin-checkbox-listwith.admin-body fieldset.admin-checkbox-group > ulsemantic selectors; addedspan.admin-row-labelas visible label column counterpart -
login.php— wrapped content in<main id="main-content">landmark -
account.php—<div class="admin-account-status">→<dl>;__rowdivs kept;__labelspans →<dt>;admin-danger-zone__descriptiondiv →<p> -
index.php— maintenance bar<div>→<aside role="status" aria-label="Statut du site"> -
add.php/edit.php—autocomplete="name"on author field,autocomplete="email"on contact field -
tags.php— all inlinestyle=attributes removed; sizing/spacing moved to CSS (.admin-input--inline,.admin-select--inline,.admin-inline-form + .admin-inline-form,.admin-tags-count) -
Marked already-done items in todo files: stats
<dl>,thanks.php<section>,scope="col"on both tables,tfe.phpinline styles,role="alert"on flash messages