@once @endonce
@php $activeDisk = env('ACTIVE_STORAGE', 'local'); $folders = []; // Folders to exclude from UI $excluded = ['avatars', 'subtitles']; // Helper to normalize folder entry with translations $formatFolder = function (string $path) { $name = basename(trim($path, '/')); $translationKey = 'folder_' . strtolower($name); // Check if translation exists, otherwise use formatted name if (\Lang::has('messages.' . $translationKey)) { $displayName = __('messages.' . $translationKey); } else { // Fallback: format the folder name nicely $displayName = ucfirst(str_replace(['-', '_'], ' ', $name)); } return [ 'name' => $name, 'display_name' => $displayName, 'path' => trim($path, '/'), ]; }; if ($activeDisk === 'local') { $root = storage_path('app/public'); if (is_dir($root)) { // Read only directories, skip dot entries, and excluded names foreach (scandir($root) as $entry) { if ($entry === '.' || $entry === '..') { continue; } if (in_array($entry, $excluded, true)) { continue; } $full = $root . '/' . $entry; if (is_dir($full)) { $folders[] = $formatFolder($entry); } } } } else { $disk = Storage::disk($activeDisk); // Root-level directories in bucket foreach ($disk->directories('') as $dir) { $dir = trim($dir, '/'); $name = basename($dir); if (in_array($name, $excluded, true)) { continue; } $folders[] = $formatFolder($dir); } } @endphp @foreach ($folders as $folder) @if ($folder['name'] != 'avatars' && $folder['name'] != 'subtitles')
{{ $folder['display_name'] }}
{{-- {{ $folder['name'] }} --}}
@endif @endforeach