world-game/site/templates/white-papers.json.php
isUnknown d4f05d6157 Feat: Livres blancs — nouveau template collection + livre blanc individuel
- Blueprints white-papers / white-paper (intro, cover, PDF, date)
- Templates PHP + JSON API (liste avec singleSlug, détail avec fileUrl)
- Route POST (:any)/(:any)/download pour le téléchargement gated
- Panel : entrée white-papers ajoutée au menu après blog
- collection.css : styles partagés extraits de Blog (collection-*)
- Blog.svelte : classes renommées blog-* → collection-*
- WhitePapers.svelte : vue liste, URLs dynamiques via data.uri
- WhitePaper.svelte : vue détail deux colonnes + formulaire de téléchargement
- i18n : clés white paper (label, form, consentement, statuts)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 17:37:22 +01:00

26 lines
730 B
PHP

<?php
$items = $page->children()->listed()->sortBy('published', 'desc');
$mapItem = function ($item) {
return [
'title' => $item->title()->value(),
'slug' => $item->slug(),
'published' => $item->published()->toDate('d/m/Y'),
'intro' => $item->intro()->value(),
'cover' => $item->cover()->toFile()?->url(),
];
};
$singleSlug = $items->count() === 1 ? $items->first()->slug() : null;
$specificData = [
'intro' => $page->intro()->value(),
'items' => $items->map($mapItem)->values(),
'singleSlug' => $singleSlug,
];
$pageData = array_merge($genericData, $specificData);
header('Content-Type: application/json');
echo json_encode($pageData);