From e8317dec18cce067ecb3ca7cbad13e56fb59c049 Mon Sep 17 00:00:00 2001 From: ayrisdev Date: Wed, 22 Jul 2026 10:06:05 +0300 Subject: [PATCH] Add JSON-driven partner links section to footer Reads resources/data/partners.json (url/anchor/title/rel), cached by the file's mtime so edits go live on the next deploy. Skips invalid/non-http entries and renders nothing when the list is empty. Co-Authored-By: Claude Opus 4.8 --- resources/data/partners.json | 1 + .../views/frontend/layouts/app.blade.php | 32 +++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 resources/data/partners.json diff --git a/resources/data/partners.json b/resources/data/partners.json new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/resources/data/partners.json @@ -0,0 +1 @@ +[] diff --git a/resources/views/frontend/layouts/app.blade.php b/resources/views/frontend/layouts/app.blade.php index 0321688..bbf6a4c 100644 --- a/resources/views/frontend/layouts/app.blade.php +++ b/resources/views/frontend/layouts/app.blade.php @@ -1542,6 +1542,38 @@ footer{position:relative}
film izle
+ {{-- Partnerler — resources/data/partners.json'dan okunur. Cache anahtarı dosya + değişim zamanına bağlı: JSON güncellenip deploy edilince otomatik tazelenir. --}} + @php + $__pFile = resource_path('data/partners.json'); + $__partners = \Illuminate\Support\Facades\Cache::remember( + 'footer_partners_' . (is_file($__pFile) ? @filemtime($__pFile) : '0'), + 86400, + function () use ($__pFile) { + if (! is_file($__pFile)) return []; + $rows = json_decode((string) @file_get_contents($__pFile), true); + if (! is_array($rows)) return []; + return array_values(array_filter($rows, fn ($r) => + is_array($r) + && ! empty($r['url']) && ! empty($r['anchor']) + && filter_var($r['url'], FILTER_VALIDATE_URL) + && preg_match('#^https?://#i', $r['url']) + )); + } + ); + @endphp + @if(! empty($__partners)) + + @endif