From c73d448f479c05cb483c366c54f415f501e6e503 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=9Cmit=20Tun=C3=A7?= Date: Tue, 6 Jan 2026 22:03:05 +0300 Subject: [PATCH] Implement Dynamic Header and Footer Templates in Blog Controller: Enhanced the BlogController to prioritize page-specific header and footer templates based on the 'blog' page settings. If no specific templates are set, it falls back to the default active templates. Updated the blog index view to include a header template variable for better customization. Additionally, added redirects for legacy index URLs to improve user navigation. --- app/Http/Controllers/BlogController.php | 52 ++++++++++++++++---- resources/views/blog/index.blade.php | 1 + resources/views/templates/iletisim.blade.php | 3 +- routes/web.php | 4 ++ 4 files changed, 49 insertions(+), 11 deletions(-) diff --git a/app/Http/Controllers/BlogController.php b/app/Http/Controllers/BlogController.php index 6bc1218..d0cdee8 100644 --- a/app/Http/Controllers/BlogController.php +++ b/app/Http/Controllers/BlogController.php @@ -8,6 +8,7 @@ use App\Models\BlogComment; use App\Models\HeaderTemplate; use App\Models\FooterTemplate; use App\Services\TemplateService; +use App\Models\Page; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; @@ -44,31 +45,62 @@ class BlogController extends Controller ? $query->latest('published_at')->paginate(12) : collect(); - // Render Header Template - En son aktif olan header template'i kullan + // Blog sayfa ayarlarını bul (varsa) + $blogPage = Page::where('slug', 'blog')->first(); + + // Render Header Template $renderedHeader = null; - $headerTemplate = HeaderTemplate::where('is_active', true) - ->latest('updated_at') - ->first(); + $headerTemplate = null; + + // 1. Öncelik: Blog sayfasında seçili header template + if ($blogPage && $blogPage->header_template_id) { + $headerTemplate = HeaderTemplate::find($blogPage->header_template_id); + } + + // 2. Öncelik: Varsayılan aktif template + if (!$headerTemplate) { + $headerTemplate = HeaderTemplate::where('is_active', true) + ->latest('updated_at') + ->first(); + } if ($headerTemplate) { $templateDefaults = $headerTemplate->default_data ?? []; + $pageData = $blogPage ? ($blogPage->header_data ?? []) : []; + $mergedData = array_merge($templateDefaults, $pageData); + $renderedHeader = TemplateService::replacePlaceholders( $headerTemplate->html_content, - $templateDefaults + $mergedData, + $blogPage ); } - // Render Footer Template - En son aktif olan footer template'i kullan + // Render Footer Template $renderedFooter = null; - $footerTemplate = FooterTemplate::where('is_active', true) - ->latest('updated_at') - ->first(); + $footerTemplate = null; + + // 1. Öncelik: Blog sayfasında seçili footer template + if ($blogPage && $blogPage->footer_template_id) { + $footerTemplate = FooterTemplate::find($blogPage->footer_template_id); + } + + // 2. Öncelik: Varsayılan aktif template + if (!$footerTemplate) { + $footerTemplate = FooterTemplate::where('is_active', true) + ->latest('updated_at') + ->first(); + } if ($footerTemplate) { $templateDefaults = $footerTemplate->default_data ?? []; + $pageData = $blogPage ? ($blogPage->footer_data ?? []) : []; + $mergedData = array_merge($templateDefaults, $pageData); + $renderedFooter = TemplateService::replacePlaceholders( $footerTemplate->html_content, - $templateDefaults + $mergedData, + $blogPage ); } diff --git a/resources/views/blog/index.blade.php b/resources/views/blog/index.blade.php index e14832f..b69a40a 100644 --- a/resources/views/blog/index.blade.php +++ b/resources/views/blog/index.blade.php @@ -1,3 +1,4 @@ + @extends('layouts.site') @section('content') diff --git a/resources/views/templates/iletisim.blade.php b/resources/views/templates/iletisim.blade.php index a33879e..86679c2 100644 --- a/resources/views/templates/iletisim.blade.php +++ b/resources/views/templates/iletisim.blade.php @@ -1,3 +1,4 @@ + @extends('layouts.site') @section('title', 'Anasayfa') @@ -5,7 +6,7 @@ @section('content')
-
+
diff --git a/routes/web.php b/routes/web.php index f90a424..a4bcaab 100644 --- a/routes/web.php +++ b/routes/web.php @@ -7,6 +7,10 @@ use App\Http\Controllers\TemplatePreviewController; use App\Models\Page; // Debug Route - Veritabanı kontrolü +Route::redirect('/index', '/', 301); +Route::redirect('/index.php', '/', 301); +Route::redirect('/index.html', '/', 301); + Route::get('/debug-homepage', function () { $page = Page::with(['headerTemplate', 'footerTemplate']) ->where('is_homepage', true)