@foreach ($items as $index => $item) @php $category = $item['category'] ?? ''; $title = $item['title'] ?? ''; $date = $item['date'] ?? null; $location = $item['location'] ?? null; $galleryIndex = $indexOffset + $index; $mediaSlides = []; if (! empty($item['media_slides']) && is_array($item['media_slides'])) { $slideImages = []; $slideYoutubes = []; foreach ($item['media_slides'] as $s) { if (! is_array($s) || empty($s['type']) || empty($s['src'])) { continue; } $type = (string) $s['type']; $src = (string) $s['src']; if ($type === 'video') { continue; } if ($type === 'image' && preg_match('/\.(mp4|webm|ogg)(\?.*)?$/i', $src)) { continue; } if ($type === 'youtube') { $slideYoutubes[] = ['type' => 'youtube', 'src' => $src]; } elseif ($type === 'image') { $slideImages[] = ['type' => 'image', 'src' => $src]; } } $mediaSlides = array_merge($slideImages, $slideYoutubes); } if (count($mediaSlides) === 0) { $imageField = $item['image'] ?? null; if (is_array($imageField)) { $urls = array_values(array_filter($imageField)); } elseif (is_string($imageField) && trim($imageField) !== '') { $urls = [trim($imageField)]; } else { $urls = $item['images'] ?? []; } $urls = array_values(array_filter(array_map(fn ($u) => is_string($u) ? trim($u) : '', $urls))); foreach ($urls as $u) { if (preg_match('/\.(mp4|webm|ogg)(\?.*)?$/i', $u)) { continue; } $mediaSlides[] = ['type' => 'image', 'src' => $u]; } $videoEmbedUrl = $item['video_embed_url'] ?? null; if (! empty($videoEmbedUrl)) { $mediaSlides[] = ['type' => 'youtube', 'src' => (string) $videoEmbedUrl]; } } $coverImage = null; foreach ($mediaSlides as $s) { if (($s['type'] ?? '') === 'image') { $coverImage = $s['src']; break; } } @endphp @if (count($mediaSlides) > 0) @endif @endforeach