index-main/site/config/routes/investigations.php
isUnknown 32b20a9305 investigation : ajout système de routes /resume et /detail
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 <noreply@anthropic.com>
2026-01-08 15:36:09 +01:00

62 lines
1.7 KiB
PHP

<?php
/**
* Routes pour les enquêtes (investigations)
*
* Structure des URLs :
* - /enquetes/:slug → redirige vers /enquetes/:slug/resume (géré par le controller)
* - /enquetes/:slug/resume → affiche le résumé (template investigation-summary)
* - /enquetes/:slug/detail → affiche l'enquête complète (template investigation)
*
* Note : La redirection de /enquetes/:slug vers /resume est gérée par le controller
* investigation.php, pas par une route, car les routes ne peuvent pas intercepter
* les pages existantes.
*/
return [
// 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()
]);
}
]
];