334 lines
22 KiB
PHP
334 lines
22 KiB
PHP
@extends('fo.layout')
|
|
|
|
@section('title', $staticPageModel->seo_title)
|
|
@section('description', $staticPageModel->seo_description)
|
|
@section('breadcrumb', request()->route()->getName())
|
|
@section('bg-offset', true)
|
|
|
|
@section('content')
|
|
<section id="home" class="overflow-hidden">
|
|
{{-- HOT NEWS --}}
|
|
<div id="hot-news" @class([
|
|
'd-none position-fixed top-50 end-0 translate-middle-y bottom-left-shadow z-3',
|
|
'd-xl-block' => !cache('hotNewsIsDisplayed'),
|
|
])>
|
|
<div class="line-border-small py-3 bg-white">
|
|
<div class="bg-primary position-absolute w-100 h-100 z-2 start-0 top-0 bg-opacity-50" id="hot-news-loader">
|
|
<div class="position-absolute start-50 top-50 translate-middle">
|
|
<div class="spinner-border" role="status">
|
|
<span class="visually-hidden">{{ __('Chargement...') }}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<button class="btn-close position-absolute start-0 top-0 pt-3 ms-2 pe-2 mt-2 bg-white opacity-100" id="close-hot-news"
|
|
aria-label="Close"></button>
|
|
@include('fo.partials.hot-news')
|
|
</div>
|
|
</div>
|
|
{{-- MAIN SLIDES --}}
|
|
@if ($mainSlideModels->isNotEmpty())
|
|
<section class="container-fluid position-relative bg-light p-0" id="main-slides">
|
|
<div class="swiper swiper-main-slides overflow-visible" id="swiper-main-slides">
|
|
<div class="swiper-wrapper w-fit">
|
|
@foreach ($mainSlideModels as $mainSlideModel)
|
|
<div class="swiper-slide h-auto pb-5 pb-md-0" style="background-color:{{ $mainSlideModel->color_block }}">
|
|
<div class="swiper-background d-flex justify-content-center align-items-center">
|
|
<img src="{{ asset($mainSlideModel->background) }}"
|
|
title="{{ $mainSlideModel->background_title }}"
|
|
alt="{{ $mainSlideModel->background_alt }}">
|
|
</div>
|
|
<div
|
|
class="card d-flex flex-column-reverse flex-sm-row align-items-center align-items-sm-start justify-content-center align-items-md-center flex-row border-0 bg-transparent">
|
|
@if ($mainSlideModel->picture)
|
|
<img class="card-picture img-fluid ms-md-0 ms-sm-2 ms-0"
|
|
src="{{ asset($mainSlideModel->picture) }}"
|
|
title="{{ $mainSlideModel->picture_title }}"
|
|
alt="{{ $mainSlideModel->picture_alt }}">
|
|
@endif
|
|
<div @class([
|
|
'card-body position-relative p-0',
|
|
'card-body-extended' => !$mainSlideModel->picture,
|
|
])>
|
|
@if ($mainSlideModel->new)
|
|
<img class="position-absolute card-tagnew z-1"
|
|
src="{{ Vite::asset('resources/assets/images/common/tag-new.svg') }}"
|
|
title="{{ __('Tag pour un nouveau produit') }}"
|
|
alt="{{ __('Tag pour un nouveau produit') }}" />
|
|
@endif
|
|
@if ($mainSlideModel->approach)
|
|
<img class="position-absolute card-tagapproach z-1"
|
|
src="{{ asset($mainSlideModel->approach->picture) }}"
|
|
title="{{ $mainSlideModel->approach->picture_title }}"
|
|
alt="{{ $mainSlideModel->approach->picture_alt }}">
|
|
@endif
|
|
<div class="line-border-medium text-sm-start px-md-4 p-4 px-2 text-center"
|
|
style="background-color:{{ $mainSlideModel->color_block }}">
|
|
<h3 class="h1 m-0 text-white">{{ $mainSlideModel->title }}</h3>
|
|
<p class="fs-4 f-bakerie-rough text-white">{{ $mainSlideModel->subtitle }}</p>
|
|
<div class="d-flex justify-content-center justify-content-sm-start flex-wrap">
|
|
@for ($i = 1; $i <= 2; $i++)
|
|
@if ($mainSlideModel->{'button_' . $i . '_status'})
|
|
<a class="btn btn-primary m-1 m-1 border-0"
|
|
href="{{ $mainSlideModel->{'button_' . $i . '_url'} }}"
|
|
title="{{ $mainSlideModel->{'button_' . $i . '_text'} }}"
|
|
style="color:{{ $mainSlideModel->{'button_' . $i . '_color_text'} }};background-color:{{ $mainSlideModel->{'button_' . $i . '_color_background'} }}"
|
|
@if ($mainSlideModel->{'button_' . $i . '_target'}) target="_blank" @endif>{{ $mainSlideModel->{'button_' . $i . '_text'} }}</a>
|
|
@endif
|
|
@endfor
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@endforeach
|
|
</div>
|
|
@if ($mainSlideModels->count() >= 2)
|
|
<button
|
|
class="position-absolute z-1 swiper-pagination-playpause btn btn-secondary btn-sm bg-secondary bottom-0 start-0 border-0 bg-opacity-50"
|
|
title="{{ __('Bouton pour mettre le carrousel en pause/en fonctionnement') }}">
|
|
<i class="fa-solid fa-xl fa-pause"></i>
|
|
<i class="fa-solid fa-xl fa-play d-none"></i>
|
|
</button>
|
|
@endif
|
|
</div>
|
|
<button
|
|
class="swiper-button swiper-button-prev-custom swiper-main-slides-button-prev rounded-circle z-1 mx-3 border-0 bg-white">
|
|
<img src="{{ Vite::asset('resources/assets/images/common/arrow-brown.svg') }}"
|
|
title="{{ __('Navigation du slider (gauche)') }}" alt="{{ __('flèche vers la gauche') }}">
|
|
</button>
|
|
<button
|
|
class="swiper-button swiper-button-prev-custom swiper-main-slides-button-prev rounded-circle z-1 mx-3 border-0 bg-white">
|
|
<img src="{{ Vite::asset('resources/assets/images/common/arrow-brown.svg') }}"
|
|
title="{{ __('Navigation du slider (gauche)') }}" alt="{{ __('flèche vers la gauche') }}">
|
|
</button>
|
|
<button
|
|
class="swiper-button swiper-button-next-custom swiper-main-slides-button-next rounded-circle z-1 mx-3 border-0 bg-white">
|
|
<img src="{{ Vite::asset('resources/assets/images/common/arrow-brown.svg') }}"
|
|
title="{{ __('Navigation du slider (droite)') }}" alt="{{ __('flèche vers la droite') }}">
|
|
</button>
|
|
<img class="w-100 d-none d-xl-block"
|
|
src="{{ Vite::asset('resources/assets/images/home/bg-slider-wood.png') }}"
|
|
alt="{{ __('Footer imitation bois du slider') }}">
|
|
</section>
|
|
@endif
|
|
{{-- HOT NEWS DESKTOP --}}
|
|
<div class="position-relative d-block d-xl-none" id="hot-news-desktop">
|
|
<div class="position-absolute start-0 wood-background w-100"></div>
|
|
<div class="d-block d-xl-none hot-news-position position-relative bottom-left-shadow mx-auto">
|
|
<div class="line-border-small bg-white">
|
|
@include('fo.partials.hot-news')
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{{-- RANGES/PRODUCTS --}}
|
|
@if ($rangeModels->isNotEmpty())
|
|
<section class="position-relative bg-light gx-0 py-5" id="products">
|
|
<div class="container-fluid position-relative z-2 row w-100 mx-auto">
|
|
<div class="col-12 text-center">
|
|
<h2>{{ str(__('le gaulois, la volaille préférée des français'))->upper() }}</h2>
|
|
<p class="m-0">
|
|
{{ __('Découvrez nos produits de volailles 100% nées, élevées et préparées en France. Autant d\'occasions de multiplier de bons repas et de partager de savoureux moments !') }}
|
|
</p>
|
|
</div>
|
|
<div class="col-12">
|
|
@php
|
|
$data = [
|
|
'legendModels' => $rangeModels ?? [],
|
|
'legendImages' => true,
|
|
'legendField' => 'label',
|
|
'routeBtnIndex' => 'fo.products.index',
|
|
'routeBtnShow' => 'fo.products.search.range',
|
|
'routeAjax' => 'fo.home.products',
|
|
'contentViews' => $productViews,
|
|
'contentSwiper' => true,
|
|
'texts' => [
|
|
'helperNoItems' => __('Aucun produits disponibles dans cette gammes'),
|
|
'btn1Label' => str(__('découvrir tous les produits'))->upper(),
|
|
'btn2Label' => str(__('découvrir tous nos produits'))->upper(),
|
|
],
|
|
];
|
|
@endphp
|
|
<div class="filter-cards" data-json='@json($data)'></div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
@endif
|
|
{{-- DEMARCHE --}}
|
|
@if ($demarcheSlideModels->isNotEmpty())
|
|
<section class="position-relative bg-light mt-2 overflow-hidden" id="demarche">
|
|
<div class="line-border-medium position-absolute start-50 translate-middle-x h-100 w-100 top-0 pt-4">
|
|
<div class="bg-green-wood line-border-medium h-100 w-100" id="demarche-bg"></div>
|
|
</div>
|
|
<div class="position-relative z-1 overflow-hidden" id="demarche-slides">
|
|
<div class="position-relative">
|
|
<div class="swiper swiper-demarche" id="swiper-demarche">
|
|
<div class="swiper-wrapper w-fit">
|
|
@foreach ($demarcheSlideModels as $demarcheSlideModel)
|
|
<div class="swiper-slide position-relative p-lg-5 pb-lg-0 h-auto overflow-hidden p-0">
|
|
<div
|
|
class="slide-background line-border-medium position-absolute start-50 translate-middle-x w-100">
|
|
<img src="{{ Vite::asset('resources/assets/images/home/bg-demarche-slider.jpg') }}"
|
|
title="{{ __('Image de fond du carrousel') }}"
|
|
alt="{{ __('Paysage de champs') }}">
|
|
</div>
|
|
<div class="h-100 container">
|
|
<div class="slide-card position-relative h-100">
|
|
<a class="slide-picture d-block z-2 text-lg-end mb-lg-0 mb-2 text-center"
|
|
href="#FIXME:lien vers la démarche grâce à la relation">
|
|
<img class="img-fluid h-100"
|
|
src="{{ $demarcheSlideModel->picture }}#FIXME:image de la démarche grâce à la relation"
|
|
title="#FIXME:titre de l'image de la démarche"
|
|
alt="#FIXME:alt de l'image de la démarche">
|
|
</a>
|
|
<div class="slide-content position-relative pt-lg-0 pt-2">
|
|
<div
|
|
class="line-border-medium bg-light position-absolute w-100 h-100 start-0 top-0">
|
|
</div>
|
|
<div class="slide-content-texts position-relative z-1 p-lg-5 p-3">
|
|
<h2 class="text-secondary fs-2">
|
|
{{ $demarcheSlideModel->title }}
|
|
</h2>
|
|
<div class="ck-editor">{!! clean($demarcheSlideModel->text) !!}</div>
|
|
</div>
|
|
<div
|
|
class="slide-btns w-100 position-absolute translate-middle-x d-flex flex-column flex-xl-row justify-content-center align-items-center start-50 z-1">
|
|
@for ($i = 1; $i <= 2; $i++)
|
|
@if ($demarcheSlideModel->{'button_' . $i . '_status'})
|
|
<a class="btn btn-secondary m-1 m-1 border-0"
|
|
href="{{ $demarcheSlideModel->{'button_' . $i . '_url'} }}"
|
|
title="{{ $demarcheSlideModel->{'button_' . $i . '_text'} }}"
|
|
@if ($demarcheSlideModel->{'button_' . $i . '_target'}) target="_blank" @endif>{{ $demarcheSlideModel->{'button_' . $i . '_text'} }}</a>
|
|
@endif
|
|
@endfor
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@endforeach
|
|
</div>
|
|
<div class="d-flex justify-content-center align-items-center mt-xl-3 pt-lg-0 pb-1">
|
|
<div
|
|
class="swiper-pagination swiper-demarche-pagination d-flex justify-content-center align-items-center w-100">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<button
|
|
class="swiper-button swiper-button-prev-custom swiper-demarche-button-prev rounded-circle z-1 mx-3 border-0 bg-white">
|
|
<img src="{{ Vite::asset('resources/assets/images/common/arrow-brown.svg') }}"
|
|
title="{{ __('Navigation du slider (gauche)') }}"
|
|
alt="{{ __('flèche vers la gauche') }}">
|
|
</button>
|
|
<button
|
|
class="swiper-button swiper-button-next-custom swiper-demarche-button-next rounded-circle z-1 mx-3 border-0 bg-white">
|
|
<img src="{{ Vite::asset('resources/assets/images/common/arrow-brown.svg') }}"
|
|
title="{{ __('Navigation du slider (droite)') }}"
|
|
alt="{{ __('flèche vers la droite') }}">
|
|
</button>
|
|
</div>
|
|
</div>
|
|
@include('fo.partials.commitments.list-pages', [
|
|
'showBtn' => true,
|
|
])
|
|
</section>
|
|
@endif
|
|
{{-- RECIPES --}}
|
|
@if ($recipeModels->isNotEmpty())
|
|
@include('fo.partials.cards-slider', [
|
|
'id' => 'recipe',
|
|
'title' => 'des recettes gourmandes',
|
|
'text' => 'Manger sain et équilibré tout en se faisant plaisir, c\'est la mission de Le Gaulois !',
|
|
'models' => $recipeModels,
|
|
'btnRouteName' => route('fo.recipes.index'),
|
|
'btnRouteTitle' => 'recettes',
|
|
])
|
|
@endif
|
|
{{-- NEWS --}}
|
|
@if ($newsModels->isNotEmpty())
|
|
<section class="py-4" id="news">
|
|
<div class="container">
|
|
<div class="row my-2">
|
|
<div class="col-12 col-xl-7">
|
|
<h2 class="text-xl-start px-xl-0 px-5 text-center">{{ __('Les actualités le gaulois') }}</h2>
|
|
<p class="text-xl-start px-xl-0 px-4 text-center">
|
|
{{ __('Pour ne rien manquer des actus Le Gaulois, découvrez la vie de notre marque à travers nos évènements, nos récompenses, nos conseils ... et bien d\'autres !') }}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
<div class="row news-wrapper justify-content-center">
|
|
<div class="col-12 col-md-6 col-xl-4">
|
|
<div class="h-100 mx-2">
|
|
@include('fo.partials.news-card', ['newsModel' => $newsModels->first()])
|
|
</div>
|
|
</div>
|
|
@if (count($newsModels->slice(1, 3)))
|
|
{{-- 3 horizontal cards (only for devices with width > md size) --}}
|
|
<div class="d-none d-md-flex flex-column justify-content-around col-md-6 col-xl-4">
|
|
@foreach ($newsModels->slice(1, 3) as $newsModel)
|
|
@include('fo.partials.news-card-tiny', ['newsModel' => $newsModel])
|
|
@endforeach
|
|
</div>
|
|
@endif
|
|
{{-- Remaining news : 15 for devices < md size / 12 for devices > md size --}}
|
|
<div @class([
|
|
'col-12 order-md-4 order-lg-3 col-xl-4 mt-xl-0 mt-4',
|
|
'd-none' => $newsModels->slice(1, count($newsModels))->isEmpty(),
|
|
'd-md-none' => $newsModels->slice(4, count($newsModels))->isEmpty(),
|
|
])>
|
|
<h3 class="mb-3">{{ __('Le fil d\'actualité') }}</h3>
|
|
<ul class="basic-list mx-md-0 mx-2 overflow-y-scroll p-0 pe-4">
|
|
<div class="d-md-none">
|
|
@foreach ($newsModels->slice(1, 3) as $newsModel)
|
|
<li>
|
|
<a class="text-decoration-none"
|
|
href="{{ route('fo.news.show', $newsModel->slug) }}"
|
|
title="{{ __('Voir l\'article :name', ['name' => $newsModel->title]) }}">
|
|
<p class="f-bakerie-rough mb-0">
|
|
{{ now()->subDays(rand(1, 31))->format('d/m/Y') }}</p>
|
|
<p>{{ $newsModel->title }}</p>
|
|
</a>
|
|
</li>
|
|
@endforeach
|
|
</div>
|
|
@foreach ($newsModels->slice(4, count($newsModels)) as $newsModel)
|
|
<li>
|
|
<a class="text-decoration-none"
|
|
href="{{ route('fo.news.show', $newsModel->slug) }}"
|
|
title="{{ __('Voir l\'article :name', ['name' => $newsModel->title]) }}">
|
|
<p class="f-bakerie-rough mb-0">
|
|
{{ now()->subDays(rand(1, 31))->format('d/m/Y') }}</p>
|
|
<p>{{ $newsModel->title }}</p>
|
|
</a>
|
|
</li>
|
|
@endforeach
|
|
</ul>
|
|
</div>
|
|
{{-- SEE MORE BUTTON --}}
|
|
<div @class([
|
|
'col-12 d-flex justify-content-center order-md-3 order-lg-4 h-fit my-4',
|
|
'justify-content-md-end' => $newsModels->slice(4, count($newsModels))->isNotEmpty(),
|
|
])>
|
|
<div>
|
|
<a class="btn btn-secondary" href="{{ route('fo.news.index') }}"
|
|
title="{{ __('Voir toute l\'actualité') }}">
|
|
{{ __('Voir toute l\'actualité') }}
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
@endif
|
|
{{-- SLIDER VIDEO PUB --}}
|
|
@if ($videoModels->isNotEmpty())
|
|
@include('fo.partials.videos-slider', [
|
|
'title' => 'la chaine @LEGAULOIS',
|
|
'text' =>
|
|
'Tout le Gaulois en vidéos, nos dernières publicités, nos recettes savoureuses, nos conseils nutrition, nos évènements sportif avec le Tour De France ou caritative avec l\'association Mécénat Chirurgie Cardiaque … Tout y est!',
|
|
'videoModels' => $videoModels,
|
|
'btnRouteName' => 'https://www.youtube.com/@legaulois',
|
|
'btnRouteTitle' => 'Saga publicitaire',
|
|
])
|
|
@endif
|
|
</section>
|
|
@endsection
|