@extends('layouts.store') @section('content') @php /** @var \App\Models\StoreSetting $s */ $currency = $s->currency_code ?? '$'; $nlBtn = __('messages.Subscribe'); /** @var \Illuminate\Support\Collection $banners */ $byPos = collect($banners ?? [])->groupBy('position'); $printedCenter = false; $renderBanners = function($list, $wrapClass = 'store-banner-wrap') { foreach ($list ?? collect() as $b) { $src = $b->image_url ?? ($b->image ? asset($b->image) : asset('images/brands/no-image.png')); $href = $b->link ?: route('store.shop'); echo ''.e($b->title ?? __('messages.Banner')).''; } }; @endphp @include('store.partials.homepage-styles')
{{-- ===== TOP ===== --}} @if(($byPos['top_left'] ?? collect())->count() || ($byPos['top_right'] ?? collect())->count())
{!! $renderBanners($byPos['top_left'] ?? collect()) !!}
{!! $renderBanners($byPos['top_right'] ?? collect()) !!}
@endif @forelse($blocks ?? [] as $block) @switch($block['type']) @case('hero') @php $heroImg = $block['image'] ?? $s->hero_image_path; $heroUrl = 'https://picsum.photos/seed/hero-store/960/520'; if (!empty($heroImg) && is_string($heroImg) && !\Illuminate\Support\Str::startsWith($heroImg, ['http://', 'https://']) && file_exists(public_path($heroImg))) { $heroUrl = asset($heroImg); } elseif (file_exists(public_path('store_files/hero_image.jpg'))) { $heroUrl = asset('store_files/hero_image.jpg'); } @endphp

{{ $block['title'] ?? $s->hero_title }}

{{ $block['subtitle'] ?? $s->hero_subtitle }}

{{ __('messages.ShopNow') }}
Hero
{{-- ===== CENTER (left / right) — print once after the first hero ===== --}} @if(!$printedCenter && ( ($byPos['center_left'] ?? collect())->count() || ($byPos['center_right'] ?? collect())->count() ))
{!! $renderBanners($byPos['center_left'] ?? collect()) !!}
{!! $renderBanners($byPos['center_right'] ?? collect()) !!}
@php $printedCenter = true; @endphp @endif @break @case('collection') @php $col = $block['collection']; $prods = $block['products'] ?? collect(); $title = $block['title'] ?? ($col->title ?? $col->name ?? __('messages.Collection')); @endphp @if($prods->count())

{{ $title }}

{{ __('messages.ViewAll') }}
@foreach($prods as $p)
@include('store.partials.product-card', ['p' => $p, 'currency' => $currency])
@endforeach
@endif @break @case('newsletter') @php $nlTitle = $s->newsletter_title ?? __('messages.GetFreshDealsTitle'); $nlSubtitle = $s->newsletter_subtitle ?? __('messages.GetFreshDealsSubtitle'); $nlPlaceholder = $s->newsletter_placeholder ?? __('messages.NewsletterEmailPlaceholder'); @endphp

{{ $nlTitle }}

{{ $nlSubtitle }}

@csrf
@break @endswitch @empty {{-- ===== CENTER (left / right) after fallback hero ===== --}} @if(!$printedCenter && ( ($byPos['center_left'] ?? collect())->count() || ($byPos['center_right'] ?? collect())->count() ))
{!! $renderBanners($byPos['center_left'] ?? collect()) !!}
{!! $renderBanners($byPos['center_right'] ?? collect()) !!}
@php $printedCenter = true; @endphp @endif @endforelse {{-- ===== If no hero rendered, still print CENTER once ===== --}} @if(!$printedCenter && ( ($byPos['center_left'] ?? collect())->count() || ($byPos['center_right'] ?? collect())->count() ))
{!! $renderBanners($byPos['center_left'] ?? collect()) !!}
{!! $renderBanners($byPos['center_right'] ?? collect()) !!}
@endif {{-- ===== FOOTER (left / right) ===== --}} @if(($byPos['footer_left'] ?? collect())->count() || ($byPos['footer_right'] ?? collect())->count())
{!! $renderBanners($byPos['footer_left'] ?? collect()) !!}
{!! $renderBanners($byPos['footer_right'] ?? collect()) !!}
@endif
{{-- ==== Quick View Modal (image + description + VARIANTS) ==== --}} {{-- ==== Variant Picker Modal ==== --}} {{-- ==== Page styles ==== --}} {{-- ==== Quick View + Variant Picker + Newsletter scripts ==== --}} @endsection