| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- {{--
- Blade-шаблон блока «Витрина автомобилей».
- $data:
- label — надпись над заголовком
- heading — заголовок секции
- car_ids — массив ID авто (int[]) в нужном порядке
- Рендерит карточки в том порядке, в котором они выбраны в админке.
- Запрашивает актуальные данные из БД при каждой сборке HTML для кеша.
- --}}
- @php
- $carIds = array_filter(array_map('intval', $data['car_ids'] ?? []));
- // Загружаем авто одним запросом, затем упорядочиваем по выбранному порядку
- $carsById = $carIds ? \App\Models\Car::whereIn('id', $carIds)->get()->keyBy('id') : collect();
- $orderedCars = collect($carIds)->map(fn ($id) => $carsById->get($id))->filter();
- $fuelLabels = ['petrol' => 'Бензин', 'diesel' => 'Дизель', 'hybrid' => 'Гибрид', 'electric' => 'Электро', 'gas' => 'Газ'];
- $countryFlags = [
- 'Япония' => '🇯🇵', 'Германия' => '🇩🇪', 'США' => '🇺🇸',
- 'Южная Корея' => '🇰🇷', 'Китай' => '🇨🇳', 'Швеция' => '🇸🇪',
- 'Франция' => '🇫🇷', 'Великобритания' => '🇬🇧', 'Италия' => '🇮🇹',
- ];
- @endphp
- @if ($orderedCars->isNotEmpty())
- <section class="cars-section">
- <div class="container">
- @if (($data['label'] ?? '') || ($data['heading'] ?? ''))
- <div class="sh reveal">
- @if ($data['label'] ?? '')
- <div class="sh-label">{{ $data['label'] }}</div>
- @endif
- @if ($data['heading'] ?? '')
- <h2>{{ $data['heading'] }}</h2>
- @endif
- </div>
- @endif
- <div class="cars-scroll stagger">
- @foreach ($orderedCars as $car)
- @include('pages.partials._car_card', [
- 'car' => $car,
- 'fuelLabels' => $fuelLabels,
- 'countryFlags' => $countryFlags,
- ])
- @endforeach
- </div>
- </div>
- </section>
- @endif
|