Files
xamxam/docs
Pontoporeia a31e4ab307 Recherche insensible aux accents sur toutes les barres de recherche (publique + backoffice).
Ajoute une fonction SQLite UDF accfold() (app/src/AccentFolding.php) qui plie les caractères accentués latin vers leur base ASCII (é→e, ç→c, …), et l'applique à chaque condition de recherche côté colonne ET côté terme (accfold(column) LIKE accfold(:term)). Comme le runtime n'a ni intl (Normalizer) ni iconv, le repli passe par une map de translitération manuelle (Western Latin-1 + Latin Extended-A, NULL-safe).

Couvert :
- recherche publique (searchTheses / countSearchResults) : titre, sous-titre, synopsis, auteurs, promoteurs, tags ;
- popover étudiant (getThesesByAuthorName / getThesesForAuthors) : a.name ;
- recherche backoffice (getThesesList / getThesesListCount) : titre, sous-titre, identifiant, auteur.

L'UDF est enregistré dans Database::registerSqliteFunctions() (appelé par le constructeur et par le harnais de test TestDatabaseInstance). Évite aussi la dépréciation PHP 8.5 de PDO::sqliteCreateFunction() : la connexion est créée via \Pdo\Sqlite quand disponible (createFunction()) avec repli sur PDO (sqliteCreateFunction()) sur les anciens runtimes ; les tests passent de @dataProvider docblock à l'attribut #[DataProvider] (fin de la dépréciation PHPUnit). Détache .php-cs-fixer.cache (gitignoré) pour ne plus polluer le working copy.

294 tests PHPUnit verts sans dépréciation, phpstan niveau 5 OK.
2026-09-18 16:26:36 +02:00
..

Documentation index

This directory separates current reference docs, proposals/plans, and historical/archived analysis (in archive/).

Note on naming: XAMXAM was previously Post-ERG (and the code was once organised under posterg-website/, apps/, front-backend/, /var/www/posterg/). References to posterg, apps/public/inc/header.php, posterg.db, just serve, php-live-reload, tests/run-tests.php, etc. in historical docs reflect the old layout. The live paths are now app/, app/public/, app/storage/xamxam.db, just dev, PHPUnit, and /var/www/xamxam/ on the server.

Current reference (kept up to date)

Doc Contents
development.md Dev workflow, structure, builds, testing, linting
environment.md Runtime stack, PHP/nginx/DB/Node requirements, server specs
deployment.md Server setup, deploy, backups, rollback
database.md SQLite schema, migrations, tables, common ops
search.md /search and /repertoire behaviour
export.md CSV / DB / files export + full restore procedure
nextcloud-sync.md Off-site SQLite snapshot sync to Nextcloud WebDAV
import.md CSV import format + behaviour
security.md Current security posture
file-uploads.md Upload surfaces, types, storage layout
CSS.md CSS architecture + build
bookmarklet.md Form auto-fill test helper

Proposals / plans (proposed, not all implemented)

Doc Status
ldap.md LDAP login — not implemented (merged plan + spec)
monolog-plan.md Single Monolog logger replacing AppLogger/AdminLogger/ErrorHandler/Audit — plan
de-librairisation.md Replace bespoke SMTP/Markdown/HTTP/crypto with libraries (partly done)
refactoring.md Older refactoring proposal
ANALYSIS_STRUCTURE_REORG.md Proposed structure reorg
ANALYSIS_INLINE_JS_CSS_MINIFY.md Inline JS/CSS/minify analysis (largely actioned by the build system)
backup-plan.md Backup plan — largely implemented (see deployment.md)
repertoire-mobile-propositions.md Mobile repertoire UI proposals
spec-sheet.md Original requirements fiche technique (incl. client notes appendix)

Active investigations (unresolved)

Doc Status
filepond-crash-analysis.md FilePond upload crash — unresolved, root cause in vendor code (merged race-investigation appendix)
peertube-sso-incident.md PeerTube invalid_grant diagnosis & ownership
autosave-system.md Autosave architecture & HTMX migration assessment

Historical / archived (in archive/)

Kept for context — may reference the old codebase. Not maintained.

Doc Contents
vm-crash-incident.md VM crash root-cause (merged final report + reports + evidence + fix)
CURRENT_ISSUES.md Issue log (2026-05-10) — many since resolved
LIVRAISONS_PAR_MOIS.md Monthly delivery log grouped by functional family
migration-history.md History of major structural migrations
php-vs-flask.md Language choice decision
orm-assessment.md ORM evaluation
css.md Old Bulma-removal writeup (see CSS.md for current)
system-setup.md PHP-extension inventory
SETUP.md Earlier setup snapshot (see development.md)
testing.md PHP testing best-practices writeup
SMTP_550_POSTFIX_FIX.md SMTP troubleshooting record
cms-migration-plan.html CMS migration plan
Proposition procédure licences_V2.pdf Licence procedure proposal
pi-session-2026-05-10T*.html Captured session log
  • nginx/docs/ — nginx config, security headers, deployment, HTACCESS→nginx
  • app/storage/README.md — DB quick-reference (schema link)
  • app/public/admin/README.md — admin panel structure

Maintenance guidance: when updating code, update the matching current reference doc in the table above. Leave archived docs untouched (read-only context). Move newly-written analysis into the appropriate section.