Pontoporeia 43702542eb feat(admin): sortable form-help blocks with two-panel UI
- Migration 005: add sort_order column to form_help_blocks
- Database: getAllFormHelpBlocks orders by sort_order; new reorderFormHelpBlocks()
- actions/form-help-reorder.php: HTMX POST handler, CSRF-validated, 204 response
- templates/admin/contenus.php: replace flat table with two-panel layout
  - Left: SortableJS 1.15.2 + htmx drag-and-drop ordered block cards
  - Right: static form structure reference showing fieldsets and their inputs
- admin.css: .fhb-* styles for layout, cards, ghost/chosen/drag states, anchors
- schema.sql: updated form_help_blocks DDL with sort_order column
2026-04-29 21:45:55 +02:00
2026-04-29 20:47:14 +02:00

XAMXAM

(Anciennement Posterg)

Répertoire des travaux de fin d'études de l'ERG (École de Recherche Graphique).

Requirements

  • PHP 8.4
  • SQLite3 (php8.4-sqlite3)
  • nginx (production)

Development

MacOS

Logiciels:

  • un IDE pour éditer → VSCode
  • git (ou une interface graphique) pour partager les modifications → git-gui (officiel) ou Github Desktop
  • un server web avec PHP pour visualiser le project dans le navigateur → MAMP

Workflow

  1. Faire un changement dans ton IDE
  2. Démarrer le site via MAMP, en sélectionnant le dossier public
  3. Vérifier que ça marche sur le site en local, depuis ton navigateur
  4. Une fois qu'un changement spécifique est fait, commit les changements sur les fichiers qui sont relatif à ce changement
  5. Vérifier que vous avez syncroniser avec le remotepull + rebase ! pas merge
  6. push les changements vers le remote
just serve   # http://localhost:8000  (public) and /admin/

Deployment

Files are pushed to the server with rsync — there is no repo on the remote.

just deploy     # rsync app files → posterg:/var/www/posterg/
just deploy-db  # push local posterg.db → remote (only if remote DB is absent)

deploy-db refuses to run if a database already exists on the server, to avoid accidental overwrites of production data.

First-time server setup

ssh posterg
sudo mkdir -p /var/www/posterg
sudo chown www-data:posterg /var/www/posterg
sudo chmod 775 /var/www/posterg
exit

Then deploy once and apply nginx config:

just deploy
just deploy-nginx

Admin users (htpasswd)

just manage-admin-users
# Then on server:
ssh posterg "sudo bash /tmp/manage-admin-users.sh"

Security notes

  • Admin panel protected by nginx auth_basic + PHP session (AdminAuth)
  • Uploads stored outside webroot, served via controlled media.php
  • Rate limiting on public search (src/RateLimit.php)
  • See nginx/docs/SECURITY_HEADERS.md for security headers reference
Description
Site permettant de consulter la collection de TFE de l'erg
Readme 74 MiB
Languages
PHP 80.5%
CSS 14.9%
Shell 2.8%
JavaScript 1.3%
Just 0.5%