App::consumeFlash() had 18-line legacy fallback chains reading from seven old session keys (error, admin_error, edit_error, form_error, success, admin_success, edit_success) that were written by no code in the codebase. All action handlers have used App::flash() -> _flash_error / _flash_success since the App class was introduced. Removed the dead fallbacks; consumeFlash() is now 4 lines. admin/import.php was the last admin template with inline style= attributes. Extracted four of them to named CSS classes in admin.css: - admin-error-list — error <ul> spacing (was style="margin:.5rem 0 0;padding-left:1.2rem") - admin-file-hint — <small> display + margin (was style="margin-top:.5rem") - admin-import-results — results panel margin (was style="margin-top:2rem") - admin-import-results__title — <h2> typography (was multi-property inline style) Closes the 'unify flash message keys' item in todo/02-php-components.md and the import.php inline style item in todo/01-css-semantic-refactor.md.
6.0 KiB
CSS & Semantic HTML Refactor
CSS class audit: replace with semantic selectors (admin.css / main.css / tfe.css / search.css)
admin.css: Replace.admin-mainwith.admin-body main— already done; CSS uses.admin-body mainadmin.css: Replace.admin-page-titlewith.admin-body main > h1— already done; CSS uses.admin-body main > h1admin.css: Replace.admin-alert/.admin-alert--error/.admin-alert--successwith[role="alert"]/data-type="error|success"attributeadmin.css: Replace.admin-form-rowwith.admin-body form > div— already done; CSS uses.admin-form > div:not(.admin-form-footer)grid patternadmin.css: Replace.admin-labelwith.admin-body form label— already done; CSS uses.admin-form > div > labeladmin.css: Replace.admin-input/.admin-select/.admin-textareawith native element selectors — already done; CSS targets nativeinput,select,textareainside.admin-formadmin.css: Replace.admin-hintwith.admin-body form smalladmin.css: Replace.admin-tablewith.admin-body table— already done; CSS uses.admin-body tableadmin.css: Replace.admin-fieldset/.admin-fieldset-legendwith.admin-body fieldset/.admin-body legend— already done; CSS uses.admin-body fieldsetand.admin-body legendmain.css: Replace.card__captionwith.home-body .cards-container li porli > a > pmain.css: Replace.card__mediawith.home-body figuretfe.css: Replace.tfe-meta-listselectors witharticle dl,article dt,article dd— already donetfe.css: Replace.tfe-media-blockwithaside figure— already donetfe.css: Replace.tfe-file-captionwithaside figcaption— already donesearch.css: Replace.repertoire-col > h2— already uses.repertoire-index section > h2system.php: Move inline<style>block tosystem.css
Template HTML changes to match
- In all admin templates, replace
<p class="admin-hint">with<small>elements — already done; partials emit<small>directly - In
tfe.php, removeclass="tfe-meta-list"— target viaarticle dl - In
tfe.php, removeclass="tfe-media-block"— target viaaside figure - In
tfe.php, removeclass="tfe-file-caption"— target viaaside figcaption - In
index.php, removeclass="card__caption"— target viali > a > p
Scattered inline styles in templates
tfe.phpinline styles — already extracted (nostyle=attributes remain inpublic/tfe.php)admin/edit.php: multiplestyle=on.admin-form-rowand banner preview → modifier classes inadmin.css— already done; nostyle=attributes remain inedit.php
Admin semantic HTML (sections IX–XVI)
-
add.php/edit.php: Replace<div class="admin-form-row">with CSS grid on<form>children — already done via form partials; rows are bare<div>inside.admin-form -
add.php/edit.php: Replace inner wrapper<div>in multi-control rows — already done; partials use<small>for hints -
add.php/edit.php: Replace<div class="admin-checkbox-list">with<ul>; each<label class="admin-checkbox-label">becomes<li>containing<label> -
add.php/edit.php: Renamed<div class="admin-submit-wrap">→<div class="admin-form-footer">in all 6 admin templates (add.php,edit.php,login.php,account.php,import.php,pages-edit.php) and updated all 8 CSS selectors inadmin.css—.admin-form > div:not(.admin-form-footer),.admin-login-box .admin-form-footer, etc. -
add.php/edit.php: Replace<div class="admin-alert admin-alert--error/--success">with<p role="alert">/<p role="status">— already done viaflash-messages.php -
index.php: Replace<div class="admin-stats">/<div class="admin-stat">children with<dl>/<dt>/<dd> -
index.php: Replace<div class="admin-maintenance-bar">with<aside role="status">or<p role="status"> -
index.php: Addrole="toolbar" aria-label="Actions groupées"to<div class="admin-bulk-actions"> -
index.php: Addscope="col"to all<th>cells in the admin table -
index.php: Add non-colour indicator +aria-label="Statut : …"to status badge<span>elements (viastatus-badge.phppartial) -
tags.php: Addscope="col"to<th>cells -
tags.php: Move inlinestyle="margin-top:.35rem;"on forms →.admin-inline-form + .admin-inline-formselector -
thanks.php: Replace<div class="admin-thesis-info">with<section>+<h2>heading; CSS targetsmain > section -
account.php: Replace<div class="admin-account-status">with<dl>;__row→<div>,__label→<dt> -
account.php: Replace<div class="admin-danger-zone__description">with<p> -
account.php: Movestyle="margin-top:3rem;"on danger zone heading → CSS modifier class -
login.php: Wrap login content in<main>(currently no main landmark) -
login.php: Extract inline styles on.admin-form-rowand.admin-form-footer—login.phphas nostyle=attributes;.admin-login-boxmodifier inadmin.cssalready handles the compact layout -
admin/import.phpinline styles — extracted 4 inlinestyle=attributes to CSS classes:admin-error-list(error<ul>margins),admin-file-hint(<small>display block + margin),admin-import-results(results panelmargin-top),admin-import-results__title(results<h2>typography). All rules added toadmin.cssImport page section.
Favicon
admin_favicon.svgused as public-facing favicon — createdpublic/assets/favicon.svg(brand purple#9557b5lettermark “P”);templates/head.phpnow servesfavicon.svgon public pages andadmin_favicon.svgon admin pages