namespace App\Templates;
use App\Models\ProductType;
+use App\Models\News;
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(
)
);
- $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;
+
}
@foreach ($page->get('products_capteurs') as $typeID)
<div class="bg-white px-1v py-6 flex">
<a class="animated-underline partial-underline flex flex-col justify-between w-full"
- href="{{ $nav->findOneById('product_type_'.$typeID)->getHref() }}">
+ href="{{ $nav->getHrefById('product_type_'.$typeID) }}">
<div class="flex items-center justify-center flex-grow">
<img class="mb-4" src="{{ asset("storage/products/1.png") }}">
</div>
@foreach ($page->get('products_systems') as $typeID)
<div class="bg-white px-1v py-6 flex">
<a class="animated-underline partial-underline flex flex-col justify-between w-full"
- href="{{ $nav->findOneById('product_type_'.$typeID)->getHref() }}">
+ href="{{ $nav->getHrefById('product_type_'.$typeID) }}">
<div class="flex items-center justify-center flex-grow">
<img class="mb-4" src="{{ asset("storage/products/1.png") }}">
</div>
<content>
<text-block title-class="h1 text-inherit" title="Solutions / Applications" />
- @php
- // TEMPORARY DATA
- $solutions = [
- 'Énergie',
- 'Aéronautique',
- 'Ferroviaire',
- 'Automobile',
- 'Génie civil',
- 'Industrie',
- ];
- @endphp
-
<grid cols="3" class="sm:grid-cols-2 xs:grid-cols-1">
- @foreach ($solutions as $i => $solution)
- @php($i++)
- <a class="solutions-link">
- <span class="solutions-link-bg" style="background-image:url({{ asset("storage/uploads/images/solutions-{$i}.jpg") }})"></span>
- <span class="solutions-link-text">{{ $solution }}</span>
+ @foreach ($page->get('solutions', []) as $solution)
+ <a class="solutions-link" href="{{ $nav->getHrefByID($solution['page']) }}">
+ <span class="solutions-link-bg" style="background-image:url({{ $page->getImageURLbyCollection($solution['image']) }})"></span>
+ <span class="solutions-link-text">{{ $solution['title'] }}</span>
</a>
@endforeach
</grid>
{{-- Services & Support --}}
@intro(['name' => 'services_support', 'class' => 'bg-grey-100'])
- @if(config('features.news'))
+ @if(config('features.news') && count($news) > 0)
{{-- News --}}
<full-width>
<content>
<text-block title="Actualités" />
<grid cols="4" class="md:grid-cols-2 xs:grid-cols-1 xs:grid-gap-20v">
- @for ($i = 1; $i <= 4; $i++)
+ @foreach ($news as $newsItem)
+
<div>
- <img class="mb-4" src="{{ asset('storage/uploads/images/news-1.jpg') }}" alt="">
- <h4 class="font-display">News 0{{ $i }}</h4>
- <p>PM instrumentation distribue depuis 1986 des Capteurs et Systèmes de haute technicité.
- Issue
- de la société Schaevitz,...</p>
+ {{--Todo: handle missing images + get correct image size--}}
+ <img class="mb-4" src="{{ $newsItem->getFirstMediaUrl($newsItem->image) }}" alt="{{ $newsItem->title }}">
+ <h4 class="font-display">{{ $newsItem->title }}</h4>
+ <p>{{ $newsItem['chapo'] }}</p>
+
+ {{--Todo: set up news URLs in nav--}}
<p><a href="#">Lire la suite</a></p>
</div>
- @endfor
+ @endforeach
</grid>
</content>
</full-width>
{{-- Product details --}}
<div class="p-4">
- <h3>{{$rel->name}}</h3>
+ <h3>{{ $rel->name }}</h3>
<div class="text-sm">
@markdown($rel->highlights)
</div>
<p class="mt-4">
- <a href="{{$nav->findOneById('product/'.$rel->id)->getHref()}}">{{__('Voir la fiche produit')}}</a>
+ <a href="{{ $nav->getHrefById('product/'.$rel->id) }}">{{ __('Voir la fiche produit') }}</a>
</p>
</div>
</div>
{{-- Product details --}}
<div class="p-4">
- <h3>{{$product->get('name')}}</h3>
+ <h3>{{ $product->get('name') }}</h3>
<div class="text-sm">
@markdown($product->highlights)
</div>
<p class="mt-4">
- <a href="{{$nav->findOneById('product/'.$product->id)->getHref()}}">Voir la fiche
- produit</a>
+ <a href="{{ $nav->getHrefById('product/'.$product->id) }}">
+ {{ __('Voir la fiche produit') }}
+ </a>
</p>
</div>
</div>
-@push('scripts')
- <script src="{{ mix('/js/mailform.js') }}"></script>
-@endpush
+@if ($page->get('form'))
-<div id="contact-form">
- <div class="form flex flex-col">
- <p class="form-info text-navy">{{$page->get('form_intro')}}</p>
- <form class="flex flex-col text-navy mailform" action="/ajax/mailform" method="post"
- data-confirmation="{{$page->get('form_confirmation')??__('Votre message a bien été envoyé')}}">
- {{ csrf_field() }}
- <input type="hidden" value="{{$page->get('id')}}" name="page">
- @foreach($page->get('form') as $field)
- @php
- $required=$field['mandatory']?' required':'';
- $asx=$field['mandatory']?' *':'';
- @endphp
- <label class="form-input flex flex-col mr-form">
+ @push('scripts')
+ <script src="{{ mix('/js/mailform.js') }}"></script>
+ @endpush
- @switch($field['type'])
- @case('name')
- {{__('Nom')}}{{$asx}} <input class="py-3 mt-3" type="text" {!! $required !!} name="name">
- @break
+ <div id="contact-form">
+ <div class="form flex flex-col">
+ <p class="form-info text-navy">{{$page->get('form_intro')}}</p>
+ <form class="flex flex-col text-navy mailform" action="/ajax/mailform" method="post"
+ data-confirmation="{{$page->get('form_confirmation')??__('Votre message a bien été envoyé')}}">
+ {{ csrf_field() }}
+ <input type="hidden" value="{{$page->get('id')}}" name="page">
+ @foreach($page->get('form') as $field)
+ @php
+ $required=$field['mandatory']?' required':'';
+ $asx=$field['mandatory']?' *':'';
+ @endphp
+ <label class="form-input flex flex-col mr-form">
- @case('firstname')
- {{__('Prénom')}}{{$asx}} <input class="py-3 mt-3" type="text" {!! $required !!} name="firstname">
- @break
+ @switch($field['type'])
+ @case('name')
+ {{__('Nom')}}{{$asx}} <input class="py-3 mt-3" type="text" {!! $required !!} name="name">
+ @break
- @case('company')
- {{__('Société')}}{{$asx}} <input class="py-3 mt-3" type="text" {!! $required !!} name="company">
- @break
+ @case('firstname')
+ {{__('Prénom')}}{{$asx}} <input class="py-3 mt-3" type="text" {!! $required !!} name="firstname">
+ @break
- @case('email')
- {{__('E-mail')}}{{$asx}} <input class="py-3 mt-3" type="email" {!! $required !!} name="email">
- @break
+ @case('company')
+ {{__('Société')}}{{$asx}} <input class="py-3 mt-3" type="text" {!! $required !!} name="company">
+ @break
- @case('ref')
- {{__('Référence')}}{{$asx}} <input class="py-3 mt-3" type="text" {!! $required !!} name="ref">
- @break
+ @case('email')
+ {{__('E-mail')}}{{$asx}} <input class="py-3 mt-3" type="email" {!! $required !!} name="email">
+ @break
- @case('sku')
- {{__('Numéro de série')}}{{$asx}} <input class="py-3 mt-3" type="text" {!! $required !!} name="sku">
- @break
+ @case('ref')
+ {{__('Référence')}}{{$asx}} <input class="py-3 mt-3" type="text" {!! $required !!} name="ref">
+ @break
- @case('subject')
- {{__('Sujet')}}{{$asx}} <input class="py-3 mt-3" type="text" {!! $required !!} name="subject">
- @break
+ @case('sku')
+ {{__('Numéro de série')}}{{$asx}} <input class="py-3 mt-3" type="text" {!! $required !!} name="sku">
+ @break
- @case('message')
- {{__('Message')}}{{$asx}} <textarea class="py-3 textarea mt-3" type="text"
- {!! $required !!} name="message"></textarea>
- @break
- @endswitch
- </label>
- @endforeach
+ @case('subject')
+ {{__('Sujet')}}{{$asx}} <input class="py-3 mt-3" type="text" {!! $required !!} name="subject">
+ @break
- <div class="form-endmessage mt-5 text-grey-dark">
- @markdown($global->get('form_privacy'))
- </div>
- <div class="flex justify-between items-center xs:flex-col-reverse">
- <span class="text-grey-dark xs:self-start xs:mt-5">*{{__('Champs obligatoires')}}</span>
- <button type="submit" class="btn btn-custom xs:w-full"
- data-sending="{{__('Envoi en cours')}}">{{__('Envoyer')}}</button>
- </div>
- </form>
+ @case('message')
+ {{__('Message')}}{{$asx}} <textarea class="py-3 textarea mt-3" type="text"
+ {!! $required !!} name="message"></textarea>
+ @break
+ @endswitch
+ </label>
+ @endforeach
+
+ <div class="form-endmessage mt-5 text-grey-dark">
+ @markdown($global->get('form_privacy'))
+ </div>
+ <div class="flex justify-between items-center xs:flex-col-reverse">
+ <span class="text-grey-dark xs:self-start xs:mt-5">*{{__('Champs obligatoires')}}</span>
+ <button type="submit" class="btn btn-custom xs:w-full"
+ data-sending="{{__('Envoi en cours')}}">{{__('Envoyer')}}</button>
+ </div>
+ </form>
+ </div>
</div>
-</div>
+
+@endif