From 6151dd5a31c3b0251edc7aee3d6fcb755f4dc443 Mon Sep 17 00:00:00 2001 From: isUnknown Date: Fri, 6 Mar 2026 17:58:29 +0100 Subject: [PATCH] =?UTF-8?q?Feat:=20page=20Jouer=20renomm=C3=A9e=20Play=20+?= =?UTF-8?q?=20vue=20impl=C3=A9ment=C3=A9e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Renommage jouer → play (blueprint, template, txt, vue) API play.json.php : title, lettering, description, thumbnail, background_image, play_links par jeu enfant listed() Vue Play.svelte : - Fond image avec crossfade (transition opacity sur .play-bg) - Section principale (.play-featured) : glissé/fondu au changement de jeu via --slide-dir CSS var + classes is-out - Carrousel nav (ul > li > button) : thumbnail + titre, active bordure verte - Jeu sans play_links → bouton "Coming soon" désactivé - Layout golden-grid, mobile adapté Co-Authored-By: Claude Sonnet 4.6 --- site/blueprints/pages/{jouer.yml => play.yml} | 0 site/templates/jouer.json.php | 33 -- site/templates/play.json.php | 23 ++ site/templates/{jouer.php => play.php} | 0 src/App.svelte | 4 +- src/views/Jouer.svelte | 24 -- src/views/Play.svelte | 294 ++++++++++++++++++ 7 files changed, 319 insertions(+), 59 deletions(-) rename site/blueprints/pages/{jouer.yml => play.yml} (100%) delete mode 100644 site/templates/jouer.json.php create mode 100644 site/templates/play.json.php rename site/templates/{jouer.php => play.php} (100%) delete mode 100644 src/views/Jouer.svelte create mode 100644 src/views/Play.svelte diff --git a/site/blueprints/pages/jouer.yml b/site/blueprints/pages/play.yml similarity index 100% rename from site/blueprints/pages/jouer.yml rename to site/blueprints/pages/play.yml diff --git a/site/templates/jouer.json.php b/site/templates/jouer.json.php deleted file mode 100644 index 638abd6..0000000 --- a/site/templates/jouer.json.php +++ /dev/null @@ -1,33 +0,0 @@ - [ - 'title' => $page->intro_title()->value(), - 'text' => $page->intro_text()->value() - ], - 'games' => $page->children()->listed()->map(function($game) { - $badgeValue = $game->badge()->value(); - $badgeLabel = 'none'; - if ($badgeValue === 'new') { - $badgeLabel = 'NEW'; - } elseif ($badgeValue === 'coming_soon') { - $badgeLabel = 'INCOMING'; - } - - return [ - 'title' => $game->title()->value(), - 'slug' => $game->slug(), - 'url' => $game->url(), - 'description' => $game->description()->value(), - 'cover' => $game->cover()->toFile()?->url(), - 'badge' => $badgeValue, - 'badge_label' => $badgeLabel, - 'game_status' => $game->game_status()->value() - ]; - })->values() -]; - -$pageData = array_merge($genericData, $specificData); - -header('Content-Type: application/json'); -echo json_encode($pageData); diff --git a/site/templates/play.json.php b/site/templates/play.json.php new file mode 100644 index 0000000..34d88ce --- /dev/null +++ b/site/templates/play.json.php @@ -0,0 +1,23 @@ + $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(), + 'background_image' => $game->background_image()->toFile()?->url(), + 'play_links' => $game->play_links()->toStructure()->map(fn($l) => [ + 'label' => $l->label()->value(), + 'url' => $l->url()->value(), + ])->values(), + ]; + })->values() +]; + +$pageData = array_merge($genericData, $specificData); + +header('Content-Type: application/json'); +echo json_encode($pageData); diff --git a/site/templates/jouer.php b/site/templates/play.php similarity index 100% rename from site/templates/jouer.php rename to site/templates/play.php diff --git a/src/App.svelte b/src/App.svelte index 6c6d110..5a7d32e 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -11,7 +11,7 @@ import Expertise from '@views/Expertise.svelte' import Portfolio from '@views/Portfolio.svelte' import Project from '@views/Project.svelte' - import Jouer from '@views/Jouer.svelte' + import Play from '@views/Play.svelte' import Game from '@views/Game.svelte' import Blog from '@views/Blog.svelte' import Article from '@views/Article.svelte' @@ -23,7 +23,7 @@ expertise: Expertise, portfolio: Portfolio, project: Project, - jouer: Jouer, + play: Play, game: Game, blog: Blog, article: Article, diff --git a/src/views/Jouer.svelte b/src/views/Jouer.svelte deleted file mode 100644 index 207f2b0..0000000 --- a/src/views/Jouer.svelte +++ /dev/null @@ -1,24 +0,0 @@ - - -
-
-

{data?.title || 'Jouer'}

-

Jouer view - To be implemented

-
-
- - diff --git a/src/views/Play.svelte b/src/views/Play.svelte new file mode 100644 index 0000000..66af618 --- /dev/null +++ b/src/views/Play.svelte @@ -0,0 +1,294 @@ + + +
+ + + + + + + + + + + + + + + + + +
+ +