- Config: presets thumbnail + thumbnail-webp (170/255/355/510/710w) - play.json.php: expose thumbnailSrcset + thumbnailWebp - Nouveau composant ResponsivePicture.svelte (src, srcset, webp, sizes, alt, cls) - Play.svelte: utilise ResponsivePicture dans le carousel sizes="clamp(170px, 18.41vw, 355px)" Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
23 lines
905 B
PHP
23 lines
905 B
PHP
<?php
|
|
|
|
$specificData = [
|
|
'games' => $page->children()->listed()->map(function($game) {
|
|
return [
|
|
'title' => $game->title()->value(),
|
|
'slug' => $game->slug(),
|
|
'lettering' => $game->lettering()->toFile()?->url(),
|
|
'description' => $game->description()->value(),
|
|
'thumbnail' => $game->thumbnail()->toFile()?->url(),
|
|
'thumbnailSrcset' => $game->thumbnail()->toFile()?->srcset('thumbnail'),
|
|
'thumbnailWebp' => $game->thumbnail()->toFile()?->srcset('thumbnail-webp'),
|
|
'backgroundColor' => $game->backgroundColor()->value() ?: null,
|
|
'preview' => $game->preview()->toFile()?->url(),
|
|
'playLink' => $game->playLink()->value() ?: null,
|
|
];
|
|
})->values()
|
|
];
|
|
|
|
$pageData = array_merge($genericData, $specificData);
|
|
|
|
header('Content-Type: application/json');
|
|
echo json_encode($pageData);
|