@php $previewFiles = []; try { $glob = glob(public_path('storage/*preview*.png')) ?: []; foreach ($glob as $path) { $previewFiles[] = basename($path); } } catch (Exception $e) { $previewFiles = []; } $previewUrls = array_map(function($f){ return asset('storage/' . $f); }, $previewFiles); // Build a keyword map for each preview filename to improve matching $previewKeywords = []; foreach ($previewFiles as $f) { $name = pathinfo($f, PATHINFO_FILENAME); // e.g. previewInformationalLeft // remove leading 'preview' if present $core = preg_replace('/^preview/i', '', $name); // break camelCase and non-alphanum into parts $parts = preg_split('/(?=[A-Z])|[^a-z0-9]+/i', $core); $parts = array_filter(array_map('strtolower', $parts)); $keywords = $parts; $keywords[] = strtolower($core); // common abbreviations for informational/download variants if (stripos($core, 'informational') !== false) { $keywords[] = 'info'; // left/middle/right variants if (stripos($core, 'left') !== false) $keywords[] = 'info-l'; if (stripos($core, 'right') !== false) $keywords[] = 'info-r'; if (stripos($core, 'mixed') !== false || stripos($core, 'middle') !== false) $keywords[] = 'info-rl'; } if (stripos($core, 'download') !== false) { $logokeywords[] = 'download'; // try gl capture 1/2 variants if (preg_match('/1|one|1baris/i', $core)) $logokeywords[] = 'download1'; if (preg_match('/2|two|2baris/i', $core)) $logokeywords[] = 'download2'; if (stripos($core, 'logo') !== false) $logokeywords[] = 'logo'; } if (stripos($core, 'guideline') !== false) { $keywords[] = 'guideline'; } if (stripos($core, 'mockup') !== false) { $keywords[] = 'mockup'; } $previewKeywords[$f] = array_values(array_unique($keywords)); } // Explicit mapping from card_type values to preview filenames. // This overrides keyword logic and ensures precise matches when needed. $explicitMap = [ 'info-r' => 'previewInformationalRight.png', 'info' => 'previewInformationalLeft.png', 'info-rl' => 'previewInformationalMixed.png', 'dwnldsatu' => 'previewDownload1Baris.png', 'dwnlddua' => 'previewDownload2Baris.png', 'dwnldlogo' => 'previewDownloadLogo.png', 'guideline' => 'previewGuideline.png', 'carousel' => 'previewCarousel.png', 'slider' => 'previewSlider.png', ]; @endphp
@push('js') @endpush