From 61607f8cd7fa273ca2ece48d2a8359b2d0aa0724 Mon Sep 17 00:00:00 2001 From: isUnknown Date: Fri, 13 Mar 2026 10:39:24 +0100 Subject: [PATCH] =?UTF-8?q?Feat:=20page=20=C3=80=20propos=20=E2=80=94=20re?= =?UTF-8?q?design=20complet=20avec=20carrousel=20=C3=A9quipe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix about.json.php : lecture des vrais champs Kirby (intro writer, body blocks, files template member) — corrige le bug [object Object] - About.svelte : redesign fidèle à la source (intro centrée, blocs mission/manifeste avec bordure verte, carrousel équipe horizontal 3/2/1 items selon breakpoint, swipe tactile, prev/next + pagination) Co-Authored-By: Claude Sonnet 4.6 --- site/blueprints/files/member.yml | 10 +- site/templates/about.json.php | 42 ++- src/views/About.svelte | 485 ++++++++++++++++++++++--------- 3 files changed, 374 insertions(+), 163 deletions(-) diff --git a/site/blueprints/files/member.yml b/site/blueprints/files/member.yml index 46c61e1..59b502b 100644 --- a/site/blueprints/files/member.yml +++ b/site/blueprints/files/member.yml @@ -7,9 +7,17 @@ fields: type: text required: true translate: false + width: 1/2 role: label: Poste type: text required: true translate: false - help: "Ex: CEO & Co-Founder" + placeholder: CEO & Co-Founder + width: 1/2 + link: + label: Lien + type: url + translate: false + placeholder: https://fr.linkedin.com/in/… + help: S'ouvre au clic sur la card diff --git a/site/templates/about.json.php b/site/templates/about.json.php index 93804df..f2934dc 100644 --- a/site/templates/about.json.php +++ b/site/templates/about.json.php @@ -1,31 +1,25 @@ body()->toBlocks() as $block) { + if ($block->type() === 'text') { + $bodyBlocks[] = [ + 'type' => 'text', + 'html' => $block->content()->text()->value() + ]; + } +} + $specificData = [ - 'intro' => [ - 'title' => $page->introTitle()->value(), - 'text' => $page->introText()->value() - ], - 'mission' => [ - 'title' => $page->missionTitle()->value(), - 'text' => $page->missionText()->toBlocks() - ], - 'manifesto' => [ - 'title' => $page->manifestoTitle()->value(), - 'text' => $page->manifestoText()->toBlocks() - ], - 'team' => [ - 'title' => $page->teamTitle()->value(), - 'members' => $page->teamMembers()->toStructure()->map(function($member) { - return [ - 'name' => $member->name()->value(), - 'role' => $member->role()->value(), - 'bio' => $member->bio()->value(), - 'photo' => $member->photo()->toFile()?->url(), - 'linkedin' => $member->linkedin()->value(), - 'twitter' => $member->twitter()->value() - ]; + 'intro' => $page->intro()->value(), + 'body' => $bodyBlocks, + 'team' => $page->files()->template('member')->sort('sort')->map(function ($file) { + return [ + 'name' => $file->memberName()->value(), + 'role' => $file->role()->value(), + 'photo' => $file->url(), + ]; })->values() - ] ]; $pageData = array_merge($genericData, $specificData); diff --git a/src/views/About.svelte b/src/views/About.svelte index d946232..3dbc961 100644 --- a/src/views/About.svelte +++ b/src/views/About.svelte @@ -1,72 +1,151 @@ -
-
-

{intro.title || data?.title}

- {#if intro.text} -

{@html intro.text}

- {/if} +
+ + +
+
+ {@html intro} +
- {#if mission.text} -
-

{mission.title}

-
- {@html mission.text} -
+ + {#if body.length > 0} +
+ {#each body as block} + {#if block.type === 'text'} +
+ {@html block.html} +
+ {/if} + {/each}
{/if} - {#if manifesto.text} -
-

{manifesto.title}

-
- {@html manifesto.text} -
-
- {/if} + + {#if members.length > 0} +
+

OUR TEAM

- {#if team.members && team.members.length > 0} -
-

{team.title}

- -
- {#each team.members as member} -
- {#if member.photo} -
- {member.name} -
- {/if} - -
-

{member.name}

-

{member.role}

- - {#if member.bio} -

{member.bio}

+
- {/each} + {/each} +
+
+ +
{/if} @@ -77,116 +156,246 @@