From 32b20a93053ba3483f6028256a32fe0428e67078 Mon Sep 17 00:00:00 2001 From: isUnknown Date: Thu, 8 Jan 2026 15:36:09 +0100 Subject: [PATCH 1/2] =?UTF-8?q?investigation=20:=20ajout=20syst=C3=A8me=20?= =?UTF-8?q?de=20routes=20/resume=20et=20/detail?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Implémentation d'un routing personnalisé permettant d'afficher deux vues (résumé et détail) à partir d'une seule source de données (investigation.txt). - Ajout routes virtuelles /enquetes/:slug/resume et /detail - Ajout controller pour redirection automatique vers /resume - Mise à jour lien "Lire le rapport" vers page /detail - URL de base redirige en 301 vers /resume 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- site/config/config.php | 48 ++++++++++++++++++ site/config/routes/investigations.php | 62 ++++++++++++++++++++++++ site/controllers/investigation.php | 19 ++++++++ site/templates/investigation-summary.php | 2 +- 4 files changed, 130 insertions(+), 1 deletion(-) create mode 100644 site/config/routes/investigations.php create mode 100644 site/controllers/investigation.php diff --git a/site/config/config.php b/site/config/config.php index 8e65d31..bc17179 100644 --- a/site/config/config.php +++ b/site/config/config.php @@ -30,5 +30,53 @@ return [ 'campaign_slug' => 'soutenir-index-en-2024', 'campaign_url' => 'https://donorbox.org/soutenir-index-en-2024', 'api_base_url' => 'https://donorbox.org/api/v1' + ], + + 'routes' => [ + // Route pour /enquetes/:slug/resume - Page virtuelle résumé + [ + 'pattern' => 'enquetes/(:any)/resume', + 'action' => function($slug) { + $parent = page('enquetes/' . $slug); + if (!$parent) { + return false; + } + + if ($parent->intendedTemplate()->name() !== 'investigation') { + return false; + } + + // Créer une page virtuelle avec le template investigation-summary + return Page::factory([ + 'slug' => 'resume', + 'template' => 'investigation-summary', + 'parent' => $parent, + 'content' => $parent->content()->toArray() + ]); + } + ], + + // Route pour /enquetes/:slug/detail - Page virtuelle détail + [ + 'pattern' => 'enquetes/(:any)/detail', + 'action' => function($slug) { + $parent = page('enquetes/' . $slug); + if (!$parent) { + return false; + } + + if ($parent->intendedTemplate()->name() !== 'investigation') { + return false; + } + + // Créer une page virtuelle avec le template investigation + return Page::factory([ + 'slug' => 'detail', + 'template' => 'investigation', + 'parent' => $parent, + 'content' => $parent->content()->toArray() + ]); + } + ] ] ]; \ No newline at end of file diff --git a/site/config/routes/investigations.php b/site/config/routes/investigations.php new file mode 100644 index 0000000..29dfff4 --- /dev/null +++ b/site/config/routes/investigations.php @@ -0,0 +1,62 @@ + 'enquetes/(:any)/resume', + 'action' => function($slug) { + $parent = page('enquetes/' . $slug); + if (!$parent) { + return false; + } + + if ($parent->intendedTemplate()->name() !== 'investigation') { + return false; + } + + // Créer une page virtuelle avec le template investigation-summary + return Page::factory([ + 'slug' => 'resume', + 'template' => 'investigation-summary', + 'parent' => $parent, + 'content' => $parent->content()->toArray() + ]); + } + ], + + // Route pour /enquetes/:slug/detail - Page virtuelle détail + [ + 'pattern' => 'enquetes/(:any)/detail', + 'action' => function($slug) { + $parent = page('enquetes/' . $slug); + if (!$parent) { + return false; + } + + if ($parent->intendedTemplate()->name() !== 'investigation') { + return false; + } + + // Créer une page virtuelle avec le template investigation + return Page::factory([ + 'slug' => 'detail', + 'template' => 'investigation', + 'parent' => $parent, + 'content' => $parent->content()->toArray() + ]); + } + ] +]; diff --git a/site/controllers/investigation.php b/site/controllers/investigation.php new file mode 100644 index 0000000..9f0788d --- /dev/null +++ b/site/controllers/investigation.php @@ -0,0 +1,19 @@ +slug() !== 'resume' && $page->slug() !== 'detail') { + // Redirection 301 vers la page résumé + go($page->url() . '/resume', 301); + } + + // Si c'est une page virtuelle, laisser le template s'afficher normalement + return compact('page'); +}; diff --git a/site/templates/investigation-summary.php b/site/templates/investigation-summary.php index f8b5e09..f98c7dc 100644 --- a/site/templates/investigation-summary.php +++ b/site/templates/investigation-summary.php @@ -31,7 +31,7 @@ From 02e4cc71a6077f9b7e6de6717b86cf362f68ded4 Mon Sep 17 00:00:00 2001 From: isUnknown Date: Thu, 8 Jan 2026 15:37:34 +0100 Subject: [PATCH 2/2] untrack claude config --- .claude/settings.local.json | 4 +++- .gitignore | 8 +++++++- site/cache/index.html | 0 3 files changed, 10 insertions(+), 2 deletions(-) delete mode 100644 site/cache/index.html diff --git a/.claude/settings.local.json b/.claude/settings.local.json index a48b55d..038bcf9 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -3,7 +3,9 @@ "allow": [ "Bash(git add:*)", "Bash(git commit:*)", - "Bash(cat:*)" + "Bash(cat:*)", + "Bash(curl:*)", + "Bash(php -l:*)" ], "deny": [], "ask": [] diff --git a/.gitignore b/.gitignore index 42cbd09..ff728b3 100644 --- a/.gitignore +++ b/.gitignore @@ -60,5 +60,11 @@ Icon /vendor/* # Local +# --------------- local/ -/local/* \ No newline at end of file +/local/* + +# Claude config +# --------------- +.claude/ +/.claude/* \ No newline at end of file diff --git a/site/cache/index.html b/site/cache/index.html deleted file mode 100644 index e69de29..0000000