ldc-legaulois/resources/views/fo/pages/home.blade.php
2024-09-19 10:25:43 +02:00

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