Pontoporeia
5af31aceda
fix: Database.php require_once -> resolve config.php from app/src/
2026-04-20 14:11:16 +02:00
Pontoporeia
de2e7a61ee
feat: single entry point routing — convert to front controller pattern
...
- Create app/public/index.php as front controller (bootstrap + Dispatcher)
- Rewrite app/router.php for PHP dev server → all non-asset requests to index.php
- Update Dispatcher to render full page layouts (head+header+view+footer)
- Move public view templates into templates/public/ (home, search, tfe, about, repertoire)
- Delete dead direct-access public/*.php files (apropos, search, tfe, licence, repertoire)
- Add clean URL routes to Dispatcher (/search, /tfe, /repertoire, /apropos, /licence, /media)
- Remove .php extensions from all internal links (header, views, templates, URLs)
- Update OG tags in controllers to use clean URLs
- Update nginx posterg.conf → front-controller try_files pattern, block direct .php access
- Update header.php and search-bar.php form actions to clean URLs
- Switch AboutController nav key from 'nav' to 'currentNav' for consistency
2026-04-20 12:42:15 +02:00
Pontoporeia
75f808bee4
feat: extract MediaController, wire into Dispatcher, delete media.php
2026-04-20 12:32:00 +02:00
Pontoporeia
b03be51b92
feat: migrate admin system page to HTMX with tab-based navigation and log viewer
2026-04-16 15:03:40 +02:00
Pontoporeia
05002ccee4
fix: allow isAuthenticated() bypass in development mode
2026-04-16 15:03:33 +02:00
Pontoporeia
bf30aab0b3
migrate apropos data from config/apropos.php to SQLite
...
- Create apropos_contents table via migration 010
- Add Database methods: getAproposContent(), saveAproposContent(), getAllAproposContents()
- Replace admin/pages.php with admin/contenus.php (renamed header from 'Pages statiques' to 'Contenus')
- Replace admin/pages-edit.php with admin/contenus-edit.php (support editing pages + apropos contents)
- Create admin/actions/apropos.php for saving apropos data (contacts, credits, erg_url)
- Update public/apropos.php to read contacts/credits/erg_url from DB
- Delete config/apropos.php
2026-04-16 14:22:41 +02:00
Pontoporeia
4158c72d08
admin: replace header 'Ajouter un TFE' nav link with toolbar button
2026-04-16 13:07:16 +02:00
Pontoporeia
e70a65ffb6
fix: session boot on POST path, consolidate rate limiter via checkKey()
2026-04-16 13:07:16 +02:00
Pontoporeia
a6df3c8c0e
fix: /partage/<slug> routing (regex delimiter + nginx location)
2026-04-16 13:07:16 +02:00
Pontoporeia
b7be93e30b
Security: rate limiting and flash messaging for partage share links
...
- Add rate limiting (5 submissions per IP per 10 min, per share link)
to prevent abuse of shared submission endpoints
- Replace all plain die() error responses with styled flash messages
and redirects (invalid slug, disabled link, expired link, wrong password,
rate limit exceeded, CSRF failure)
- Add dedicated error page renderer for disabled/expired links with
home page link
- Password gate now uses flash message via session redirect instead
of inline error variable
2026-04-16 13:07:16 +02:00
Pontoporeia
150099dc3c
admin: replace header 'Ajouter un TFE' nav link with toolbar button
2026-04-16 13:07:16 +02:00
Pontoporeia
c4705f6265
docs: add bookmarklet for auto-filling TFE test form
...
- bookmark.md with draggable link + readable source + lookup table reference
- all field selectors match actual form name attributes and schema IDs
2026-04-15 14:24:44 +02:00
Pontoporeia
f4aba500e6
feat: student mode support for thanks page (admin-auth only)
...
- add hidden student_mode field in add.php form
- pass mode=student through redirect to thanks.php in formulaire.php
- thanks.php renders clean student thank-you page (no header, centered button)
- add CSS for .thanks-student-page, .btn-new-form, .thanks-success, .thanks-error
- admin auth always required; student mode is purely UI variant on the physical machine
2026-04-15 14:24:44 +02:00
Pontoporeia
c3affd2285
admin/add: add ?mode=student toggle — hides admin header, keeps admin form css
2026-04-15 14:24:44 +02:00
Pontoporeia
150b5b1dac
admin/add: add ?mode=student toggle — hides admin header, keeps auth
2026-04-15 14:24:44 +02:00
Pontoporeia
0eb2e310f4
admin/parametres: cleanup page — remove card syntax, use semantic HTML (checkboxes/fieldsets), move delete-all-TFE danger zone into maintenance
2026-04-15 14:24:44 +02:00
Pontoporeia
fd4fb5ce4a
Add delete/batch-delete and sortable columns to admin list
...
- Database: add deleteThesis() and bulkDeleteTheses() methods with file cleanup
- Database: add SORT_MAP + buildOrderBy() for safe column sorting
- Database: getThesesList() now respects sort/dir filter params
- New action: actions/delete.php (single + batch delete with CSRF)
- Admin index: delete button per row with confirmation dialog
- Admin index: batch 'Supprimer' button in bulk actions bar
- Admin index: sortable column headers (ID, Titre, Année, Orientation, AP, Statut)
- Admin index: sort state preserved in pagination links
- CSS: admin-btn-delete (red muted), admin-sort-link styles
2026-04-15 14:24:44 +02:00
Pontoporeia
1b104df51e
Fix undefined $from– variable: brace-interpolate variables before en-dash in double-quoted string
2026-04-15 14:24:44 +02:00
Pontoporeia
6f04514aa2
fix: add structural guard for migration 008 in migrate.sh
2026-04-15 14:24:44 +02:00
Pontoporeia
0cb4451218
formulaire: default interne, unpublished, contact toggle, settings section
2026-04-15 14:24:44 +02:00
Pontoporeia
67a4aaac26
Fix nginx deduplication: remove nginx/scripts/ entirely, fix README typos and dead references
2026-04-15 14:24:44 +02:00
Pontoporeia
507f3eb704
Consolidate nginx docs and scripts, update paths
2026-04-15 14:24:44 +02:00
Pontoporeia
3cd96ed28a
Deduplicate and standardise documentation
...
- Consolidate 36 markdown files → 14 (plus TODO.md)
- Merge overlapping docs into authoritative files:
- database.md (from DATABASE_SPECIFICATION + QUICK_SCHEMA_REFERENCE + DATABASE_CONFIG + SETUP)
- deployment.md (from SERVER_SETUP + COMPLETE_DEPLOYMENT_GUIDE + DEPLOYMENT_STEPS)
- security.md (from SECURITY_ANALYSIS + TODO.SECURITY)
- development.md (from DEVELOPMENT_GUIDE + LIVE_RELOAD_SETUP + TEST_CENTRALIZATION)
- migration-history.md (from 11 past migration docs)
- Standardise all filenames to lowercase
- Remove non-doc files (Context.md research notes, chat export)
- Remove superseded docs (SECURITY.md pre-SQLite, SECURITY_IMPLEMENTATION, README_SECURE_SEARCH)
- Fix stale cross-references
2026-04-15 14:24:44 +02:00
Théophile Gervreau-Mercier
5c5054d744
Investigating VM crash
2026-04-13 11:12:12 +02:00
Pontoporeia
0c29fa21e9
Prevent admin nav wrapping to match public header height
2026-04-09 14:51:43 +02:00
Pontoporeia
c5c049eace
Move public search bar below header so admin and public headers have same height
2026-04-09 14:37:49 +02:00
Pontoporeia
1885f2da92
Replace random HSL gradients in homepage cards with header-style gradient; header keeps its own CSS-variables gradient
2026-04-09 14:37:00 +02:00
Pontoporeia
aa3fc50d92
use exact hard-coded gradient on header and card placeholders
2026-04-09 14:34:59 +02:00
Pontoporeia
a13e73aed3
Replace random HSL gradients in homepage cards with header gradient
2026-04-09 14:29:17 +02:00
Pontoporeia
07f0afde25
cache-bust: add filemtime-based versioning to all CSS and JS assets
2026-04-09 14:08:19 +02:00
Pontoporeia
424f79c819
typography: switch display font from Combined to Ductus
2026-04-08 18:09:35 +02:00
Pontoporeia
a333a5fdad
Rebrand: replace PostErg with XAMXAM in admin header link, default title, and OG site_name
2026-04-08 18:04:35 +02:00
Pontoporeia
18045af243
favicon: replace SVG placeholder with full PNG/ICO set from assets/favicon/
2026-04-08 18:01:41 +02:00
Pontoporeia
d68645f1b1
style: retheme system page to site light palette — remove dark --sys-* tokens
2026-04-08 17:49:50 +02:00
Pontoporeia
df414346e9
fix: SystemController php-fpm detection — probe phpX.Y-fpm from running PHP version first
2026-04-08 17:46:42 +02:00
Pontoporeia
7117934d07
fix: replace mb_strlen/mb_substr with strlen/substr — mbstring not available on prod
2026-04-08 17:42:01 +02:00
Pontoporeia
9eec5d3ac0
SPECS.md
2026-04-08 16:03:31 +02:00
Pontoporeia
49b113319a
Add AP filter to admin list; fix reset as unstyled button
2026-04-08 15:22:39 +02:00
Pontoporeia
4199b206db
Move CSV import to inline dialog on list page
2026-04-08 15:16:10 +02:00
Pontoporeia
603af07b68
Add Paramètres page: consolidate maintenance + account settings
2026-04-08 15:06:51 +02:00
Pontoporeia
ba135f0cb5
fix: replace 'Xamxam' with 'Posterg' in public nav header
2026-04-08 14:14:37 +02:00
Pontoporeia
f6977384b9
migrate to utopia fluid type and space scales across all CSS
2026-04-08 14:14:37 +02:00
Pontoporeia
ad06bbbcaf
bump all font-size values ~10% across all CSS files
2026-04-08 14:14:37 +02:00
Pontoporeia
0c2276d5ad
Split search into search.php; repertoire.php is index-only
2026-04-08 14:14:37 +02:00
Pontoporeia
e96ec572be
tfe: hyperlink metadata values to repertoire.php with correct filter params
2026-04-08 14:14:37 +02:00
Pontoporeia
55c6ac21b8
fix tfe page: scope common.css header to body>header, fix grid width collapse, remove overflow-y clip
2026-04-08 14:14:37 +02:00
Pontoporeia
3a1cd5b43e
tfe page: author above title, interne/externe jury split, rounded images, strip contact protocol
2026-04-08 14:14:37 +02:00
Pontoporeia
547d581e26
Removed footer navbar
2026-04-08 14:14:37 +02:00
Pontoporeia
11a665e096
Improve À propos page layout: sticky TOC nav, bordered contact rows, credits dl grid
2026-04-08 14:14:37 +02:00
Pontoporeia
dddfc8554b
fonts: add --font-body/--font-display vars, use them everywhere
2026-04-08 14:14:37 +02:00