From 990c05de5a22aac66dd506d7624fdf6d19beaa30 Mon Sep 17 00:00:00 2001 From: Stephen Cameron Date: Mon, 15 Jul 2019 17:58:37 +0200 Subject: [PATCH] WIP #2738 @7 --- app/Templates/Home.php | 40 +++++- resources/views/pages/home.blade.php | 43 +++---- .../views/pages/product-detail.blade.php | 4 +- resources/views/pages/products.blade.php | 7 +- resources/views/partials/form.blade.php | 114 +++++++++--------- 5 files changed, 118 insertions(+), 90 deletions(-) diff --git a/app/Templates/Home.php b/app/Templates/Home.php index 3ce335b..706afe3 100644 --- a/app/Templates/Home.php +++ b/app/Templates/Home.php @@ -3,6 +3,7 @@ namespace App\Templates; use App\Models\ProductType; +use App\Models\News; class Home extends Base { @@ -69,6 +70,18 @@ class Home extends Base { $page = $data['page']; + // Product Types data used for "Our Products" section + $data['productTypes'] = $this->_getProductTypes($page); + + // News data + $data['news'] = $this->_getNews(); + + } + + protected function _getProductTypes($page) { + + $productTypes = []; + // Fetch product type details from both lists with // one query, making sure we don't repeat any IDs $productTypeIDs = array_unique( @@ -78,12 +91,33 @@ class Home extends Base ) ); - $productTypes = ProductType::whereIn('id', $productTypeIDs)->get(); + $productTypeRecords = ProductType::whereIn('id', $productTypeIDs)->get(); + + foreach ($productTypeRecords as $productType) { + $productTypes[$productType->id] = $productType->getPageData(); + } + + return $productTypes; + } + + protected function _getNews() { - foreach ($productTypes as $productType) { - $data['productTypes'][$productType->id] = $productType->getPageData(); + $newsItems = []; + + $news = News::where([ + ['type', '=', 'news'], + ['status', '=', 1], + ]) + ->orderBy('date', 'desc') + ->take(4) + ->get(); + + foreach ($news as $newsItem) { + $newsItems[$newsItem->id] = $newsItem; } + return $newsItems; + } diff --git a/resources/views/pages/home.blade.php b/resources/views/pages/home.blade.php index ee08f38..ace4d7e 100644 --- a/resources/views/pages/home.blade.php +++ b/resources/views/pages/home.blade.php @@ -55,7 +55,7 @@ @foreach ($page->get('products_capteurs') as $typeID)
+ href="{{ $nav->getHrefById('product_type_'.$typeID) }}">
@@ -75,7 +75,7 @@ @foreach ($page->get('products_systems') as $typeID)
+ href="{{ $nav->getHrefById('product_type_'.$typeID) }}">
@@ -98,24 +98,11 @@ - @php - // TEMPORARY DATA - $solutions = [ - 'Énergie', - 'Aéronautique', - 'Ferroviaire', - 'Automobile', - 'Génie civil', - 'Industrie', - ]; - @endphp - - @foreach ($solutions as $i => $solution) - @php($i++) -
- - {{ $solution }} + @foreach ($page->get('solutions', []) as $solution) + + + {{ $solution['title'] }} @endforeach @@ -126,23 +113,25 @@ {{-- Services & Support --}} @intro(['name' => 'services_support', 'class' => 'bg-grey-100']) - @if(config('features.news')) + @if(config('features.news') && count($news) > 0) {{-- News --}} - @for ($i = 1; $i <= 4; $i++) + @foreach ($news as $newsItem) +
- -

News 0{{ $i }}

-

PM instrumentation distribue depuis 1986 des Capteurs et Systèmes de haute technicité. - Issue - de la société Schaevitz,...

+ {{--Todo: handle missing images + get correct image size--}} + {{ $newsItem->title }} +

{{ $newsItem->title }}

+

{{ $newsItem['chapo'] }}

+ + {{--Todo: set up news URLs in nav--}}

Lire la suite

- @endfor + @endforeach
diff --git a/resources/views/pages/product-detail.blade.php b/resources/views/pages/product-detail.blade.php index 48832b5..359f7ad 100644 --- a/resources/views/pages/product-detail.blade.php +++ b/resources/views/pages/product-detail.blade.php @@ -135,12 +135,12 @@ {{-- Product details --}}
-

{{$rel->name}}

+

{{ $rel->name }}

@markdown($rel->highlights)

- {{__('Voir la fiche produit')}} + {{ __('Voir la fiche produit') }}

diff --git a/resources/views/pages/products.blade.php b/resources/views/pages/products.blade.php index 5d63af7..982172a 100644 --- a/resources/views/pages/products.blade.php +++ b/resources/views/pages/products.blade.php @@ -123,13 +123,14 @@ {{-- Product details --}}
-

{{$product->get('name')}}

+

{{ $product->get('name') }}

@markdown($product->highlights)

- Voir la fiche - produit + + {{ __('Voir la fiche produit') }} +

diff --git a/resources/views/partials/form.blade.php b/resources/views/partials/form.blade.php index a6e6a9a..b50ecbb 100644 --- a/resources/views/partials/form.blade.php +++ b/resources/views/partials/form.blade.php @@ -1,66 +1,70 @@ -@push('scripts') - -@endpush +@if ($page->get('form')) -
-
-

{{$page->get('form_intro')}}

-
- {{ csrf_field() }} - - @foreach($page->get('form') as $field) - @php - $required=$field['mandatory']?' required':''; - $asx=$field['mandatory']?' *':''; - @endphp -
+ +@endif -- 2.39.5