{{-- Partial: investors/_dynamic_content.blade.php --}} @php $locale = app()->getLocale(); // sudah di-set oleh middleware setlocale dari prefix /id/ atau /ja/ $item = DB::table('mst_investor') ->whereRaw('LOWER(TRIM(menu_key)) = ?', [strtolower(trim($menu_key))]) ->where('isactive', 1) ->first(); @endphp @if (!$item)
Belum ada konten untuk halaman ini.
@else @php $raw = json_decode($item->data); // Support dua format: // Format LAMA (flat) : { "content": "..." } atau { "items": [...] } atau { "groups": [...] } // Format BARU (nested): { "en": {...}, "id": {...}, "ja": {...} } // // Cek nested: kalau ada key 'en' atau 'id' atau 'ja' di root → format baru $isNested = isset($raw->en) || isset($raw->id) || isset($raw->ja); if ($isNested) { // Format baru: ambil slice locale aktif, fallback ke EN kalau locale belum diisi $data = $raw->$locale ?? ($raw->en ?? $raw); // Khusus collapse & upload_file: // file_url, file_url_id, file_url_en, file_url_jp selalu ada di EN (master file) // locale lain hanya beda judul/deskripsi, file-nya sama $dataEn = $raw->en ?? $raw; } else { // Format lama: langsung pakai as-is (backward compatible) $data = $raw; $dataEn = $raw; } $sortByUrut = function ($items) { if (!is_array($items)) { return []; } usort($items, function ($a, $b) { $aUrut = isset($a->urut) ? (int) $a->urut : 9999; $bUrut = isset($b->urut) ? (int) $b->urut : 9999; return $aUrut <=> $bUrut; }); return $items; }; $findByUrut = function ($items, $targetUrut) use ($sortByUrut) { $items = $sortByUrut($items ?? []); foreach ($items as $item) { $itemUrut = isset($item->urut) ? (int) $item->urut : 9999; if ($itemUrut === (int) $targetUrut) { return $item; } } return null; }; $resolveExistingFileUrl = function ($candidate, $fallback = null) { $paths = []; foreach ([$candidate, $fallback] as $value) { if (!is_string($value) && !is_null($value)) { $value = (string) $value; } if (is_string($value)) { $trimmed = trim($value); if ($trimmed !== '' && $trimmed !== 'null' && $trimmed !== '[]') { $paths[] = $trimmed; } } } foreach ($paths as $path) { if (preg_match('/^https?:\/\//i', $path)) { return $path; } $diskPath = public_path($path); if (file_exists($diskPath)) { return $path; } } return null; }; @endphp {{-- ================================================================ --}} {{-- TEMPLATE: TEXT EDITOR --}} {{-- ================================================================ --}} @if ($item->template_type === 'text_editor')
Belum ada file tersedia.
@endif {{-- ================================================================ --}} {{-- TEMPLATE: COLLAPSE --}} {{-- file_url_id / file_url_en / file_url_jp selalu dari EN master --}} {{-- judul & deskripsi dari locale aktif --}} {{-- ================================================================ --}} @elseif ($item->template_type === 'collapse') @php $groups = $sortByUrut($data->groups ?? []); @endphp @if (count($groups) > 0){{ $ci->judul ?? '-' }}
@if (!empty($ci->deskripsi)){{ $ci->deskripsi }}
@endif {{-- end sm-doc-buttons --}}Belum ada data tersedia.
@endif @endif @endif {{-- Accordion CSS & JS --}} @once @endonce