{{-- Page Qui-sommes-nous — portage fidele de maquettes/Qui-sommes-nous.dc.html. Donnees fournies par PageController@quiSommesNous : - $contenu : ContenuPage (page 'qui-sommes-nous') — textes/images editables, voir app/Filament/Resources/ContenusPages/Config/SchemaContenuPage.php pour la structure complete des cles (hero, valeurs, histoire, pourquoi, independance, equipe, realisations, cta). - $realisations : collection Realisation (table 'realisations', CRUD RealisationResource), triee par ordre d'affichage. Chacune a titre/legende/image (image nullable). Liens fixes dans la vue (memes cles que la maquette, pas stockes en base) : - Hero bouton principal -> route('acheter') ("Decouvrir nos biens") - Hero bouton secondaire -> route('contact') ("Nous contacter") - Carte "independance" -> route('acheter') ("Decouvrez nos biens disponibles") - CTA final "Voir les biens disponibles" -> route('acheter') - CTA final "Vendre mon terrain" -> route('vendre-mon-terrain') - CTA final telephone -> config('site.telephone_lien') (meme convention que le reste du site, voir docs/frontend-composants.md Footer) CARROUSEL REALISATIONS : la maquette duplique le tableau de 6 realisations ("carousel" = "realisations" + "realisations") pour obtenir une boucle de defilement CSS continue (@keyframes biomeScroll, translateX(0) -> translateX(-50%) sur un conteneur deux fois plus large que la zone visible). Meme technique ici : $realisations est parcourue deux fois dans la vue (pas de JS, tout est en CSS pur comme la source). Chaque slot affiche l'image si presente, sinon un placeholder neutre reprenant le titre/legende de la realisation (comme actuellement en base : les 6 realisations seedees n'ont pas d'image, cf RealisationSeeder). --}} @extends('layouts.site', ['active' => 'about']) @section('titre', 'Qui sommes-nous - Biome Constructions') @push('styles') {{-- Animation du carrousel realisations, propre a cette page (portee telle quelle depuis la balise @endpush @section('contenu') @php $heroImg = \App\Support\MediaSite::url($contenu->contenu('hero.image')); $histoireImg = \App\Support\MediaSite::url($contenu->contenu('histoire.image')); $independanceImg = \App\Support\MediaSite::url($contenu->contenu('independance.image')); $equipeImg = \App\Support\MediaSite::url($contenu->contenu('equipe.image')); $valeurs = $contenu->contenu('valeurs.items', []); // Icones fixes (SVG paths de la maquette, associees par position, // non stockees en base comme convenu pour les autres pages). $valeursIcones = [ 'M8 11a3 3 0 1 0 0-6 3 3 0 0 0 0 6ZM3 20a5 5 0 0 1 10 0M16 5.5a3 3 0 0 1 0 5.8M21 20a5 5 0 0 0-3.5-4.8', 'M21 11.5a8.5 8.5 0 0 1-12.2 7.6L3 21l1.9-5.8A8.5 8.5 0 1 1 21 11.5Z', 'M3.8 8a4.2 4.2 0 1 0 8.4 0 4.2 4.2 0 1 0 -8.4 0M11 11l8 8M16 16l2-2M18.5 18.5l2-2', 'M4 20c0-9 7-15 16-16-1 12-8 17-16 16ZM4 20C8 15 12 12.5 17 11', ]; $pourquoiIcones = [ 'M9.5 18h5M10.5 21h3M12 3a6 6 0 0 0-3.8 10.6c.5.4.8 1 .8 1.7v.2h6v-.2c0-.7.3-1.3.8-1.7A6 6 0 0 0 12 3Z', 'M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20ZM12 7v10M9.5 9.5h3a2 2 0 0 1 0 4h-3', 'M3 11.2 12 4l9 7.2M5.4 10.2V20h13.2v-9.8M12 13a2 2 0 0 1 2 2', ]; // Realisations dupliquees pour la boucle de defilement continue // (meme technique que la maquette : base.concat(base)). $carousel = $realisations->concat($realisations); @endphp {{-- HERO --}}
{{ $contenu->contenu('hero.label') }}

{!! nl2br(e($contenu->contenu('hero.titre'))) !!}

{{ $contenu->contenu('hero.paragraphe_1') }}

{{ $contenu->contenu('hero.paragraphe_2') }}

{{ $contenu->contenu('hero.paragraphe_3') }}

{{ $contenu->contenu('hero.texte_bouton_principal') }} {{ $contenu->contenu('hero.texte_bouton_secondaire') }}
@if ($heroImg) Une realisation Biome dans son environnement @else
Une réalisation Biome dans son environnement
@endif
{{-- VALEURS --}}
{{ $contenu->contenu('valeurs.label') }}
@foreach ($valeurs as $i => $valeur)

{{ $valeur['titre'] }}

{{ $valeur['texte'] }}

@endforeach
{{-- NOTRE HISTOIRE / AMBITION --}}
{{ $contenu->contenu('histoire.label') }}

{{ $contenu->contenu('histoire.titre') }}

{{ $contenu->contenu('histoire.paragraphe_1') }}

{{ $contenu->contenu('histoire.paragraphe_2') }}

@foreach ($contenu->contenu('histoire.ambition', []) as $point)
{{ $point }}
@endforeach

{{ $contenu->contenu('histoire.paragraphe_3') }}

@if ($histoireImg) Couple devant sa future maison @else
Couple devant sa future maison
@endif
{{-- POURQUOI LES FAMILLES --}}
{{ $contenu->contenu('pourquoi.label') }}

{{ $contenu->contenu('pourquoi.titre') }}

@foreach ($contenu->contenu('pourquoi.items', []) as $i => $item)

{{ $item['titre'] }}

{{ $item['texte'] }}

@endforeach
{{-- INDEPENDANCE --}}
{{ $contenu->contenu('independance.label') }}

{{ $contenu->contenu('independance.titre') }}

{{ $contenu->contenu('independance.texte') }}

@foreach ($contenu->contenu('independance.forces', []) as $force)
{{ $force }}
@endforeach
@if ($independanceImg) Interieur lumineux d'une realisation @else
Intérieur lumineux d'une réalisation
@endif

{{ $contenu->contenu('independance.carte_texte') }}

{{ $contenu->contenu('independance.carte_texte_cta') }}
{{-- EQUIPE --}}
{{ $contenu->contenu('equipe.label') }}

{{ $contenu->contenu('equipe.titre') }}

{{ $contenu->contenu('equipe.texte') }}

@if ($equipeImg) Photo de l'equipe Biome Constructions @else
Photo de l'équipe Biome Constructions
@endif
{{-- REALISATIONS (carrousel auto-scroll CSS) --}} @if ($realisations->isNotEmpty())
{{ $contenu->contenu('realisations.label') }}

{{ $contenu->contenu('realisations.titre') }}

@foreach ($carousel as $realisation) @if ($realisation->imageUrl()) {{ $realisation->legende ?? $realisation->titre }} @else
{{ $realisation->legende ?? $realisation->titre }}
@endif @endforeach
@endif {{-- CTA BAND --}}
@endsection