{{-- ============================================================ COMPONENT: Agency NRES — JABATAN & AGENSI Data dari modul Content Application (CMS) — kategori AGENCY_LINKS. Sumber data: · content_applications → application_cat = 'AGENCY_LINKS', application_status = 'ACTIVE', application_code (nama pendek, cth. INSTUN), application_url (pautan laman agensi), application_img (logo — disimpan LOKAL), application_sort · content_application_translations → application_translation_title (nama penuh) Logo disimpan LOKAL di /storage/content-application/… (TIADA hotlink). CSS .agency-* ada dalam Layout site NRES (site 2) dan JS marquee bergantung pada .agency-track → markup/kelas di bawah MESTI kekal. Track digandakan ×2 supaya animasi translateX(-50%) berulang tanpa putus. Guna pada page lain: assign komponen ini + letak {!! $agency_nres !!}. ============================================================ --}} @php $agnLang = ($lang ?? session('locale', 'ms')) === 'en' ? 'en' : 'ms'; $agnRows = DB::table('content_applications') ->where('application_cat', 'AGENCY_LINKS') ->where('application_status', 'ACTIVE') ->orderBy('application_sort') ->orderBy('application_id') ->get(); $agnIds = $agnRows->pluck('application_id')->all(); $agnTr = $agnIds ? DB::table('content_application_translations') ->whereIn('application_translation_parent_id', $agnIds) ->get() ->groupBy('application_translation_parent_id') : collect(); // Laluan relatif (disk public) → URL /storage/… ; URL penuh dibiarkan $agnUrl = function ($path) { $path = trim((string) $path); if ($path === '') { return ''; } if (preg_match('#^(https?:)?//#i', $path)) { return $path; } return asset('storage/'.ltrim($path, '/')); }; $agnItems = []; foreach ($agnRows as $agnRow) { $rows = $agnTr[$agnRow->application_id] ?? collect(); $tr = $rows->firstWhere('application_translation_language', $agnLang) ?? $rows->firstWhere('application_translation_main', 1) ?? $rows->first(); $img = $agnUrl($agnRow->application_img); if ($img === '') { continue; } $agnItems[] = [ 'code' => trim((string) $agnRow->application_code), 'title' => trim((string) ($tr->application_translation_title ?? '')), 'img' => $img, 'url' => trim((string) $agnRow->application_url), ]; } $agnTotal = count($agnItems); @endphp @if ($agnTotal > 0)

{{ $agnLang === 'en' ? 'DEPARTMENTS & AGENCIES' : 'JABATAN & AGENSI' }}

{{ $agnTotal }} {{ $agnLang === 'en' ? 'departments and agencies under the Ministry of Natural Resources and Environmental Sustainability.' : 'jabatan dan agensi di bawah Kementerian Sumber Asli dan Kelestarian Alam.' }}

{{ $agnLang === 'en' ? 'View All' : 'Lihat Semua' }}
@foreach ([0, 1] as $agnPass) @foreach ($agnItems as $agnItem) @php $agnLabel = $agnItem['code'] !== '' ? $agnItem['code'] : $agnItem['title']; @endphp @php $agnTip = ($agnItem['code'] !== '' && $agnItem['title'] !== '') ? $agnItem['code'].' – '.$agnItem['title'] : $agnLabel; @endphp @if ($agnItem['url'] !== '') {{ $agnLabel }}{{ $agnLabel }} @else {{ $agnLabel }}{{ $agnLabel }} @endif @endforeach @endforeach
@endif