Integration 3

This commit is contained in:
Sebastien Hattry 2023-03-10 15:33:15 +00:00
parent c3a6651705
commit 331be4ca79
16 changed files with 78 additions and 90 deletions

View file

@ -54,10 +54,10 @@ final class CookingModeEnum extends BaseEnum
protected static function stickers(): array
{
return [
'withoutCooking' => \asset('build/assets/images/signs/logo-nocook.png'),
'oven' => \asset('build/assets/images/signs/logo-oven.png'),
'stove' => \asset('build/assets/images/signs/logo-stove.png'),
'stewpan' => \asset('build/assets/images/signs/logo-stewpan.png'),
'withoutCooking' => \asset('build/assets/images/cook/logo-stove.svg'),
'oven' => \asset('build/assets/images/cook/logo-stove.svg'),
'stove' => \asset('build/assets/images/cook/logo-stove.svg'),
'stewpan' => \asset('build/assets/images/cook/logo-stove.svg'),
];
}

View file

@ -72,9 +72,9 @@ class ProductController extends Controller
return DB::transaction(function () use ($request) {
$product = new Product();
$product->fill($request->validated());
$product->recipes()->sync($request->recipe_list);
if ($product->saveOrFail()) {
$product->recipes()->sync($request->recipe_list);
$product->certifications()->sync($request->certification_list);
return redirect()
->route('bo.products.edit', $product)

View file

@ -14,10 +14,10 @@ class RecipesController extends Controller
*/
public function index()
{
$recipes = Recipe::where('status', true)
$publishedRecipes = Recipe::where('status', true)
->orderBy('slug', 'ASC')->paginate(9);
return view('fo.pages.recipes.index', compact('recipes'));
return view('fo.pages.recipes.index', compact('publishedRecipes'));
}
/**
@ -28,13 +28,14 @@ class RecipesController extends Controller
*/
public function show(Recipe $publishedRecipe)
{
$recipe = $publishedRecipe;
// 3 Recettes.
$publishedRecipes = Recipe::where('status', true)
->where('id', '!=', $publishedRecipe->id)
->take(3)
->get();
$recipe = $publishedRecipe;
return view('fo.pages.recipes.recipe', compact('recipe', 'publishedRecipes'));
}
}

View file

@ -137,22 +137,22 @@ class Recipe extends Model
/**
* Convert database value (in minutes) to string "nnnH nnnM".
* @param integer $content Time to convert (minutes).
* @return string Text formated "nnnH nnnM".
*/
public function getCookingTimeLabelAttribute(int $content): string
public function getCookingTimeLabelAttribute(): string
{
return self::convertMinutesToHourMinutes($content);
return self::convertMinutesToHourMinutes($this->cooking_time);
}
/**
* Convert database value (in minutes) to string "nnnH nnnM".
* @param integer $content Time to convert (minutes).
*
* @return string Text formated "nnnH nnnM".
*/
public function getPreparationTimeLabelAttribute(int $content): string
public function getPreparationTimeLabelAttribute(): string
{
return self::convertMinutesToHourMinutes($content);
return self::convertMinutesToHourMinutes($this->preparation_time);
}
/**

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6 KiB

View file

@ -13,6 +13,9 @@
@import "./utilities/helpers";
@import "./utilities/mixins";
// import Fancybox styles
@import "@fancyapps/ui/dist/fancybox";
// * BASE
@import "./base/bootstrapOverload";
@import "./base/classes";

View file

@ -249,7 +249,7 @@ li strong {
}
.about-two {
>div::after {
> div::after {
position: absolute;
right: 0;
bottom: 0;
@ -294,7 +294,7 @@ li strong {
}
.about-three {
>div::after {
> div::after {
position: absolute;
right: 0;
bottom: 0;
@ -353,8 +353,8 @@ li strong {
&--poulet2::after {
position: absolute;
z-index: -1;
top: 0;
right: -650px;
top: 20%;
left: 80%;
width: 787px;
height: 100%;
background-image: url("~@/images/Poule.jpg");
@ -440,7 +440,7 @@ li strong {
&::before {
position: absolute;
z-index: -1;
top: 50%;
top: 23%;
right: 0;
left: 0;
height: 2px;
@ -492,7 +492,7 @@ li strong {
@media (min-width: 1200px) and (max-width: 1399px) {
.about-two {
>div::after {
> div::after {
position: absolute;
right: 0;
bottom: 0;
@ -506,7 +506,7 @@ li strong {
}
.about-three {
>div::after {
> div::after {
position: absolute;
right: 0;
bottom: 0;
@ -522,7 +522,7 @@ li strong {
@media (min-width: 993px) and (max-width: 1199px) {
.about-two {
>div::after {
> div::after {
position: absolute;
right: 0;
bottom: 0;
@ -536,7 +536,7 @@ li strong {
}
.about-three {
>div::after {
> div::after {
position: absolute;
right: 0;
bottom: 0;

View file

@ -59,9 +59,6 @@
<li>
<a href="{{ route('contact.show') }}" title="renseigner le titre du lien">{{ __('Service consommateurs') }}</a>
</li>
<li>
<a href="#" title="renseigner le titre du lien">{{ __('Plan du site') }}</a>
</li>
</ul>
</div>
<div class="ms-md-5 certifications">

View file

@ -12,7 +12,7 @@
<section class="hero-content bckg-yellow bottom-0 start-0 end-0 opacity hero_content hero_left">
<h2>{{ __('Des produits bien élevés qui ont le goûts de la qualité') }}</h2>
<h3>{{ __('Garantis 100% local') }}</h3>
<a href="a-propos.html" title="Nous découvrir" class="btn btn-light mt-2 mb-5">{{ __('Nous Découvrir >') }}</a>
<a href="{{ route('engagments') }}" title="Nous découvrir" class="btn btn-light mt-2 mb-5">{{ __('Nous Découvrir >') }}</a>
</section>
</div>
<div class="hero-right bckg-red col-md-6 position-relative text-uppercase ">
@ -20,7 +20,7 @@
<section class="hero-content bckg-red bottom-0 start-0 end-0 opacity hero_content hero_right">
<h2>{{ __('Des produits de qualité bons et accessibles') }}</h2>
<h3>{{ __('Pour manger sain et régional') }}</h3>
<a href="recipes-corner.html" title="Voir nos recettes" class="btn btn-light mt-2 mb-5">{{ __('Voir nos recettes >') }}</a>
<a href="{{ route('recipes.index') }}" title="Voir nos recettes" class="btn btn-light mt-2 mb-5">{{ __('Voir nos recettes >') }}</a>
</section>
</div>
</div>
@ -28,14 +28,13 @@
<!-- LOCAL BLOCK -->
@include('fo.partials.local-block')
<!-- GAMMES -->
<div class="container-fluid pt-5 text-center">
<div class="row">
<section class="col-md-8 offset-md-2 stripes">
<h2 class="text-uppercase font-amatic font-amatic-48">{{ __('Découvrez nos volailles bien élevées') }}<span class="font-amatic-red">{{ __('qui ont le goût de la qualité') }}</span></h2>
</section>
</div>
<!-- GAMMES -->
<div class="row mt-4">
<div class="col-lg-6 offset-lg-3">
<div class="container">
@ -67,13 +66,16 @@
<a href="{{ route('map') }}" title="renseigner le titre du lien" class="btn btn-primary text-uppercase">{{ __('Voir la carte >') }}</a>
</section>
<!-- RECETTES -->
<div class="container recipes">
<section class="stripes">
<h2 class="text-center text-uppercase font-amatic font-amatic-48 special d-sm-inline-flex position-relative">{{ __('Trouver l\'inspiration avec nos recettes') }}<span class="font-amatic-red">{{ __('de volailles bonnes et accessibles') }}</span></h2>
</section>
<!-- RECETTES -->
@include('fo.partials.recipes-block', ['recipes' => $publishedRecipes])
<p class="text-center mt-3">
<a href="{{ route('recipes.index') }}" title="{{ __('Nos recettes') }}" class="btn btn-primary text-uppercase">{{ __('Voir toutes nos recettes >') }}</a>
</p>
</div>
@endsection

View file

@ -33,7 +33,7 @@
<h1 class="text-uppercase text-center font-amatic font-amatic-48">{{ __('Pour nous, produire bien') }}<span class="font-amatic-red">{{ __('c\'est produire 100% local') }}</span></h1>
</section>
</div>
<!-- GRID -->
<div class="row mt-4 g-3">
<div class="col-md-6">
@ -46,53 +46,53 @@
<div class="ms-4">
<h2 class="font-amatic font-amatic-48 font-amatic-red">{{ __('Couvoirs') }}</h2>
<p>{{ __('Nos poussins naissent dans des couvoirs situés en région ') }}<strong>{{ __('Hauts-de-France où nous sélectionnons des races reconnues pour la qualité de leur chair') }}</strong>.</p>
</div>
</div>
</li>
<li class="list-group-item d-flex align-items-center">
<img src="{{ asset('build/assets/images/Aliments.svg') }}" alt="renseigner le titre alternatif de l'image">
<div class="ms-4">
<h2 class="font-amatic font-amatic-48 font-amatic-red">{{ __('Aliments') }}</h2>
<p>{{ __('Nos volailles sont nourries avec des matières premières végétales minérales et vitaminiques : avec un minimum de') }} <strong>{{ __('70% de céréales françaises provenant en majorité des Hauts-de-France') }}</strong>. {{ __('Les aliments sont fabriqués par notre ') }}<strong>{{ __('partenaire local situé à Arques') }}</strong>.</p>
</div>
</div>
</li>
<li class="list-group-item d-flex align-items-center">
<li class="list-group-item d-flex align-items-center">
<img src="{{ asset('build/assets/images/Region.svg') }}" alt="renseigner le titre alternatif de l'image">
<div class="ms-4">
<h2 class="font-amatic font-amatic-48 font-amatic-red">{{ __('Poulaillers') }}</h2>
<p><strong>{{ __('Nos poulaillers sont situés dans un rayon de 50 km') }}</strong> {{ __('autour de notre atelier de préparation, pour le respect des animaux lors du transport. ') }}<strong>{{ __('Nos éleveurs élèvent les volailles dans des conditions optimales') }}</strong> {{ __('(maîtrise de l\'eau, de l\'air, de la température et de la lumière). Ils bénificient d\'un accompagnement individuel par nos techniciens qui garantissent des conditions d\'élevage favorables. Nos vétérinaires partenaires encadrent la santé des volailles.') }}
{{ __('Nos éleveurs sont engagés dans ') }}<strong>{{ __('des actions en faveur de l\'environnement') }}</strong> {{ __('(implantation paysagère et biométhanisation)') }}.
<strong>{{ __('Notre filière permet d\'assurer le revenu des éleveurs en garantissant leur rémunération') }}</strong>.</p>
</div>
</div>
</li>
<li class="list-group-item d-flex align-items-center">
<li class="list-group-item d-flex align-items-center">
<img src="{{ asset('build/assets/images/Poule-main.svg') }}" alt="renseigner le titre alternatif de l'image">
<div class="ms-4">
<h2 class="font-amatic font-amatic-48 font-amatic-red">{{ __('Transport de volailles') }}</h2>
<p>{{ __('Le transport des volailles est réalisé par ') }}<strong>{{ __('nos équipes') }}</strong>, {{ __('formées au bien-être animal. ') }}<strong>{{ __('Des contrôles sont réalisés à la réception des volailles') }}</strong>.</p>
</div>
</div>
</li>
<li class="list-group-item d-flex align-items-center">
<li class="list-group-item d-flex align-items-center">
<img src="{{ asset('build/assets/images/Atelier.svg') }}" alt="renseigner le titre alternatif de l'image">
<div class="ms-4">
<h2 class="font-amatic font-amatic-48 font-amatic-red">{{ __('Atelier de préparation') }}</h2>
<p>{{ __('Les procédures misent en place nous permettent ') }}<strong>{{ __('d\'assurer la qualité et la traçabilité de nos produits') }}</strong>. {{ __('Notre savoir-faire est appuyé par du matériel innovant.') }}</p>
</div>
</div>
</li>
<li class="list-group-item d-flex align-items-center">
<li class="list-group-item d-flex align-items-center">
<img src="{{ asset('build/assets/images/Ecoute.svg') }}" alt="renseigner le titre alternatif de l'image">
<div class="ms-4">
<h2 class="font-amatic font-amatic-48 font-amatic-red">{{ __('Écoute client') }}</h2>
<p>{{ __('Notre équipe de télévente est à l\'écoute de nos clients du lundi au samedi pour la prise de commandes. ') }}<strong>{{ __('Des visites sur les points de ventes sont réalisées régulièrement par notre équipe commerciale') }}</strong> {{ __('pour assurer un lien direct avec nos clients, et réaliser si besoin des animations avec nos éleveurs.') }}</p>
</div>
</div>
</li>
<li class="list-group-item d-flex align-items-center">
<li class="list-group-item d-flex align-items-center">
<img src="{{ asset('build/assets/images/Livraison.svg') }}" alt="renseigner le titre alternatif de l'image">
<div class="ms-4">
<h2 class="font-amatic font-amatic-48 font-amatic-red">{{ __('Transport et livraison') }}</h2>
<p><strong>{{ __('Pour garantir la satisfaction de nos clients') }}</strong>, {{ __('nous livrons un maximum de commandes avec') }} <strong>{{ __('nos propres véhicules') }}</strong>.</p>
<p><u><a href="#" title="renseigner le titre du lien" class="fw-bold">> {{ __('Voir toutes nos recettes') }}</a></u></p>
<p><u><a href="#" title="renseigner le titre du lien" class="fw-bold">> {{ __('Où acheter les produits Lionor ?') }}</a></u></p>
</div>
<p><u><a href="{{ route('recipes.index') }}" title="{{ __('Nos recettes') }}" class="fw-bold">> {{ __('Voir toutes nos recettes') }}</a></u></p>
<p><u><a href="{{ route('map') }}" title="Où nous trouver" class="fw-bold">> {{ __('Où acheter les produits Lionor ?') }}</a></u></p>
</div>
</li>
</ul>
</div>
@ -103,4 +103,4 @@
<!-- LOCAL BLOCK -->
@include('fo.partials.local-block')
@endsection
@endsection

View file

@ -1,5 +1,6 @@
@extends('fo.layout')
{{-- PAGE DES GAMMES --}}
@section('title', __('Accueil'))
@section('description', __('Description site'))
@section('breadcrumb', request()->route()->getName())
@ -45,7 +46,7 @@
<h2 class="text-uppercase font-amatic font-amatic-46 mt-4">{{ $range->name }}</h2>
<p>{{ $range->subtitle }}</p>
</div>
<a href="{{ route('ranges.products', ['publishedRange' => $range]) }}" title="renseigner le titre du lien" class="btn btn-primary text-uppercase">{{ __('Découvrir >') }}</a>
<a href="{{ route('ranges.products', ['publishedRange' => $range]) }}" title="{{ __('Découvrez la gamme') }} {{ $range->name }}" class="btn btn-primary text-uppercase">{{ __('Découvrir >') }}</a>
</div>
</div>
@endforeach
@ -55,13 +56,13 @@
<section class="col-md-5">
<img src="{{ asset('build/assets/images/Toque.svg') }}" alt="renseigner le texte alternatif de l'image">
<h2 class="text-uppercase font-amatic font-amatic-60">{{ __('Trouvez l\'inspiration') }}<br>{{ __('avec nos recettes') }}<span class="font-amatic-red">{{ __('de volailles bonnes') }}<br>{{ __('et accessibles') }}</span></h2>
<a href="{{ route('recipes.index') }}" title="renseigner le titre du lien" class="btn btn-primary text-uppercase mt-3">{{ __('Voir les recettes >') }}</a>
<a href="{{ route('recipes.index') }}" title="{{ __('Voir toutes nos recettes') }}" class="btn btn-primary text-uppercase mt-3">{{ __('Voir les recettes >') }}</a>
</section>
<span class="col-md-2 vertical"></span>
<section class="col-md-5">
<img src="{{ asset('build/assets/images/Region.svg') }}" alt="renseigner le texte alternatif de l'image">
<h2 class="text-uppercase font-amatic font-amatic-60">{{ __('Découvrez les engagements') }}<br>{{ __('d\'une filière engagée') }}<span class="font-amatic-red">{{ __('pour manger bon, sain') }}<br>{{ __('et 100% local') }}</span></h2>
<a href="{{ route('local') }}" title="renseigner le titre du lien" class="btn btn-primary text-uppercase mt-3">{{ __('En savoir plus >') }}</a>
<a href="{{ route('local') }}" title="{{ __('En savoir plus sur le 100% local') }}" class="btn btn-primary text-uppercase mt-3">{{ __('En savoir plus >') }}</a>
</section>
</div>
</div>

View file

@ -36,15 +36,15 @@
<div class="container">
<div class="row g-5">
<div class="col-md-6">
<img src="{{ asset('build/assets/images/PACK.jpg') }}" alt="renseigner texte alternatif de l'image" class="img-fluid img-cut">
<img src="{{ asset( $productModel->picture ) }}" alt="{{ $productModel->picture_alt }}" title="{{ $productModel->picture_title }}" class="img-fluid img-cut">
<div class="container mt-4">
<div class="row img-80">
<div class="col-lg-6 d-flex align-items-center">
<img src="{{ asset('build/assets/images/Poele.svg') }}" alt="renseigner le texte alternatif de l'image">
<img src="{{ App\Enums\CookingModeEnum::toArray()[$productModel->cooking_mode->value]->sticker }}" alt="Mode de cuisson">
<p class="fw-bold small ms-2 mb-0">{{ $productModel->info_cooking }}</p>
</div>
<div class="col-lg-6 d-flex align-items-center">
<img src="{{ asset('build/assets/images/Poulet.svg') }}" alt="renseigner le texte alternatif de l'image">
<img src="{{ asset('build/assets/images/Poulet.svg') }}" alt="Information de consommation">
<p class="fw-bold small ms-2 mb-0">{{ $productModel->info_consumption }}</p>
</div>
</div>
@ -112,6 +112,10 @@
<!-- 3 RECETTES -->
@include('fo.partials.recipes-block', ['recipes' => $associatedRecipes])
<p class="text-center mt-3">
<a href="{{ route('recipes.index') }}" title="{{ __('Nos recettes') }}" class="btn btn-primary text-uppercase">{{ __('Voir toutes nos recettes >') }}</a>
</p>
</div>
@endsection

View file

@ -1,5 +1,6 @@
@extends('fo.layout')
{{-- PAGE DES PRODUITS D'UN GAMME --}}
@section('title', __('Accueil'))
@section('description', __('Description site'))
{{-- @section('breadcrumb', request()-route()-getName()) --}}
@ -35,7 +36,8 @@
<div class="container">
<div class="row">
<section class="col-md-8 offset-md-2 stripes">
<h1 class="text-uppercase font-amatic font-amatic-48 ">{{ $range->name }}<span class="font-amatic-red">{{ __('qui ont le goût de la qualité') }}</span></h1>
<h1 class="text-uppercase font-amatic font-amatic-48">{{ $range->name }}</h1>
<h2 class="text-uppercase font-amatic font-amatic-red font-amatic-48">{{ $range->subtitle }}</h2>
</section>
</div>

View file

@ -70,38 +70,15 @@
</div>
</div>
<!-- GRID -->
<div class="row g-3 position-relative my-4">
@foreach ($recipes as $recipe)
<div class="col-md-4 mb-4 recipe-item position-relative">
<ul class="bckg-yellow rounded-pill list-group list-group-flush text-center position-absolute">
<li class="list-group-item">
<img src="{{ asset('build/assets/images/Assiettes.svg') }}" alt="renseigner texte alternatif de l'image">
<span>{{ $recipe->portions }}</span>
</li>
<li class="list-group-item">
<img src="{{ asset('build/assets/images/Cocotte.svg') }}" alt="renseigner texte alternatif de l'image">
<span>{{ $recipe->cooking_time }}</span>
</li>
</ul>
<img src="{{ asset($recipe->sticker) }}" alt="{{ $recipe->sticker_alt }}" title="{{ $recipe->sticker_title }}" class="img-fluid">
<h3 class="text-uppercase font-roboto font-roboto-20 mt-4 pb-3">{{ $recipe->name }}</h3>
<a href="{{ route('recipes.show', ['publishedRecipe' => $recipe]) }}" title="{{ $recipe->name }}" class="fw-bold text-decoration-underline">{{ __('> Voir la recette') }}</a>
</div>
@endforeach
</div>
<!-- END GRID -->
<!-- RECETTES -->
@include('fo.partials.recipes-block', ['recipes' => $publishedRecipes])
{{-- PAGINATOR --}}
<div class="row w-100 justify-content-center">
<div class="col-12 col-md-6 p-0">
{{ $recipes->withQueryString()->onEachSide(1)->links('modules.pagination') }}
{{ $publishedRecipes->withQueryString()->onEachSide(1)->links('modules.pagination') }}
</div>
</div>
<p class="text-center mt-3">
<a href="{{ route('recipes.index') }}" title="renseigner le titre du lien" class="btn btn-primary text-uppercase">{{ __('Voir toutes nos recettes >') }}</a>
</p>
</div>
@endsection

View file

@ -58,12 +58,12 @@
<li class="step-item mx-md-2">
<img src="{{ asset('build/assets/images/Preparation.svg') }}" alt="renseigner texte alternatif de l'image">
<span class="fw-bold">{{ __('préparation') }}</span>
<span class="fw-bold">{{ $recipe->preparation_time }}</span>
<span class="fw-bold">{{ $recipe->preparation_time_label }}</span>
</li>
<li class="step-item mx-md-2">
<img src="{{ asset('build/assets/images/Cuisson.svg') }}" alt="renseigner texte alternatif de l'image">
<span class="fw-bold">{{ __('cuisson') }}</span>
<span class="fw-bold">{{ $recipe->cooking_time }}</span>
<span class="fw-bold">{{ $recipe->cooking_time_label }}</span>
</li>
</ul>
</div>
@ -136,6 +136,10 @@
<!-- RECETTES -->
@include('fo.partials.recipes-block', ['recipes' => $publishedRecipes])
<p class="text-center mt-3">
<a href="{{ route('recipes.index') }}" title="{{ __('Nos recettes') }}" class="btn btn-primary text-uppercase">{{ __('Voir toutes nos recettes >') }}</a>
</p>
</section>
@endsection
@endsection

View file

@ -10,19 +10,15 @@
</li>
<li class="list-group-item">
<img src="{{ asset('build/assets/images/Cocotte.svg') }}" alt="Temps de cuisson">
<span>{{ $recipe->cooking_time }} min</span>
<span>{{ $recipe->cooking_time_label }}</span>
</li>
</ul>
<img src="{{ asset($recipe->sticker) }}" alt="{{ $recipe->sticker_alt }}" title="{{ $recipe->sticker_title }}" class="img-fluid">
<h3 class="text-uppercase font-roboto font-roboto-20 mt-4 pb-3">{{ $recipe->name }}</h3>
<a href="fiche-recette.html" title="renseigner le titre du lien" class="fw-bold text-decoration-underline">{{ __('> Voir la recette') }}</a>
<a href="{{ route('recipes.show', ['publishedRecipe' => $recipe]) }}" title="renseigner le titre du lien" class="fw-bold text-decoration-underline">{{ __('> Voir la recette') }}</a>
</div>
@endforeach
</div>
@endif
@endif
<p class="text-center mt-3">
<a href="{{ route('recipes.index') }}" title="{{ __('Nos recettes') }}" class="btn btn-primary text-uppercase">{{ __('Voir toutes nos recettes >') }}</a>
</p>