{{-- ============================================================================ PAGE CONTENT — Peta Laman (Sitemap) Site : nres · Page slug: sitemap · Page ID: 41 URL : /nres/sitemap Konsep: peta laman penuh, dijana AUTOMATIK daripada menu navbar publik ($menuTree dari PortalHandler) — jadi ia sentiasa selari dengan struktur navigasi sebenar tanpa penyelenggaraan manual. Sumber data: · $menuTree → pokok menu publik (navbar) — nama sudah diterjemah via t() · $sitePages → senarai halaman site (untuk seksyen "Halaman Lain") Item tanpa menu_link dipaparkan sebagai teks biasa (struktur sahaja). BM/EN ikut sesi. CSS sendiri (kelas .sm-*). ============================================================================ --}} @php $smLang = ($lang ?? session('locale', 'ms')) === 'en' ? 'en' : 'ms'; $smTree = is_array($menuTree ?? null) ? $menuTree : []; // Kumpul laluan dalaman yang sudah ada dalam menu $smLinked = []; $smCollect = function ($items) use (&$smCollect, &$smLinked) { foreach ($items as $it) { $link = trim((string) ($it['menu_link'] ?? '')); if (str_starts_with($link, '/')) { $smLinked[] = rtrim(strtok($link, '?'), '/'); } if (! empty($it['children'])) { $smCollect($it['children']); } } }; $smCollect($smTree); // Halaman yang TIDAK dipautkan dalam menu (dan bukan halaman ini sendiri) $smSelf = trim(request()->path(), '/'); $smOther = collect($sitePages ?? []) ->filter(function ($p) use ($smLinked, $siteSlug, $smSelf) { $path = '/'.($siteSlug ?? 'nres').'/'.$p['slug']; if ($smSelf === ($siteSlug ?? 'nres').'/'.$p['slug']) { return false; } return ! in_array(rtrim($path, '/'), $smLinked, true); }) ->values(); // Kira pautan sebenar $smLinks = 0; $smCount = function ($items) use (&$smCount, &$smLinks) { foreach ($items as $it) { if (trim((string) ($it['menu_link'] ?? '')) !== '') { $smLinks++; } if (! empty($it['children'])) { $smCount($it['children']); } } }; $smCount($smTree); $smTotal = $smLinks + $smOther->count(); @endphp {{ t('Sitemap') }} @php $smNote = $smLang === 'en' ? 'Full page index of the NRES Portal — '.$smTotal.' links.' : 'Indeks penuh halaman Portal NRES — '.$smTotal.' pautan.'; @endphp {{ $smNote }} @foreach ($smTree as $smSec) @php $smSecLink = trim((string) ($smSec['menu_link'] ?? '')); $smKids = $smSec['children'] ?? []; @endphp @if ($smSecLink !== '') {{ $smSec['menu_name'] }} @else {{ $smSec['menu_name'] }} @endif @if ($smKids) @foreach ($smKids as $smKid) @php $smKidLink = trim((string) ($smKid['menu_link'] ?? '')); @endphp @if ($smKidLink !== '') {{ $smKid['menu_name'] }} @else {{ $smKid['menu_name'] }} @endif @if (! empty($smKid['children'])) @foreach ($smKid['children'] as $smG) @php $smGLink = trim((string) ($smG['menu_link'] ?? '')); @endphp @if ($smGLink !== '') {{ $smG['menu_name'] }} @else {{ $smG['menu_name'] }} @endif @endforeach @endif @endforeach @endif @endforeach @if ($smOther->isNotEmpty()) {{ t('sm.other_links') }} @foreach ($smOther as $smP) {{ t($smP['name']) }} @endforeach @endif {{ t('sm.footnote') }} {{ \Carbon\Carbon::now()->locale($smLang === 'en' ? 'en' : 'ms')->translatedFormat('d F Y') }}
{{ $smNote }}
{{ t('sm.footnote') }} {{ \Carbon\Carbon::now()->locale($smLang === 'en' ? 'en' : 'ms')->translatedFormat('d F Y') }}