@php $seo_title = ($meta['title'] ?? null) ? $meta['title'] . ' - ' . setting('site_name') : setting('seo_meta_title'); $seo_description = $meta['description'] ?? setting('seo_meta_description'); $seo_image = $meta['image'] ?? setting('default_meta_image'); if ($seo_image && !str_starts_with($seo_image, 'http')) { $seo_image = asset($seo_image); } @endphp @php $seo_canonical = $meta['canonical'] ?? null; if (!$seo_canonical) { $seo_canonical = url()->current(); $localeQuery = request()->query('locale') ?? request()->query('lang'); if ($localeQuery && function_exists('available_language_codes') && in_array($localeQuery, available_language_codes())) { $seo_canonical .= '?locale=' . $localeQuery; } } $seo_robots = $meta['robots'] ?? 'index, follow'; $seo_og_type = $meta['og_type'] ?? 'website'; $seo_og_locale = str_replace('_', '-', $meta['locale'] ?? app()->getLocale()); $activeLanguages = class_exists(\App\Models\Language::class) ? \App\Models\Language::where('is_active', true)->get() : collect([]); $currentUrl = url()->current(); @endphp {{ $seo_title }} @foreach($activeLanguages as $lang) @endforeach @if($activeLanguages->count() > 0) @endif @if(setting('site_name')) @endif @if($seo_image) @endif @if($seo_image) @endif @if(!empty($structuredData)) @endif @stack('structured-data') @stack('head') @if(request()->routeIs('homepage')) @php $hero_bg_preload = setting('hero_bg') ?: './assets/img/photos/bg16.webp'; if ($hero_bg_preload && !str_starts_with($hero_bg_preload, 'http')) { $hero_bg_preload = asset($hero_bg_preload); } @endphp @endif @if(setting('seo_google_search_console')) @endif @if(setting('seo_bing_webmaster')) @endif @if(setting('seo_google_analytics_id')) @endif @stack('styles') {{-- Dynamic Header Template or Static Navbar --}} @php $finalHeader = null; // 1. String Başlık Kontrolü: Eğer string geldiyse (örn: "Demo29 Header"), modelini bul if (isset($headerTemplate) && is_string($headerTemplate)) { $foundTemplate = \App\Models\HeaderTemplate::where('title', $headerTemplate) ->where('is_active', true) ->first(); if ($foundTemplate) { $headerTemplate = $foundTemplate; } } // 2. Model Instance Varsa Render Et (En Yüksek Öncelik) // Kullanıcı template seçtiyse bu çalışır ve renderedHeader'ı ezer. if (isset($headerTemplate) && $headerTemplate instanceof \App\Models\HeaderTemplate) { $templateDefaults = $headerTemplate->default_data ?? []; $templateData = $header_data ?? []; $mergedData = array_merge($templateDefaults, $templateData); $model = $page ?? null; $finalHeader = \App\Services\TemplateService::replacePlaceholders( $headerTemplate->html_content, $mergedData, $model ); } // 3. Blade dosyası path'i varsa include et (RenderedHeader'dan ÖNCE kontrol edilmeli) if (!$finalHeader && isset($header) && $header) { $finalHeader = view($header)->render(); } // 4. Eğer yukarıdan sonuç çıkmadıysa ve Controller zaten render ettiyse onu kullan if (!$finalHeader && isset($renderedHeader) && $renderedHeader) { $finalHeader = $renderedHeader; } @endphp @if($finalHeader) {!! $finalHeader !!} @else @include('partials.header') @endif {{-- Main Content --}}
@yield('content')
{{-- Dynamic Footer Template or Static Footer --}} @php $finalFooter = null; // 1. String Başlık Kontrolü if (isset($footerTemplate) && is_string($footerTemplate)) { $foundTemplate = \App\Models\FooterTemplate::where('title', $footerTemplate) ->where('is_active', true) ->first(); if ($foundTemplate) { $footerTemplate = $foundTemplate; } } // 2. Model Instance Varsa Render Et (En Yüksek Öncelik) if (isset($footerTemplate) && $footerTemplate instanceof \App\Models\FooterTemplate) { $templateDefaults = $footerTemplate->default_data ?? []; $templateData = $footer_data ?? []; $mergedData = array_merge($templateDefaults, $templateData); $model = $page ?? null; $finalFooter = \App\Services\TemplateService::replacePlaceholders( $footerTemplate->html_content, $mergedData, $model ); } // 3. Blade dosyası path'i (RenderedFooter'dan ÖNCE) if (!$finalFooter && isset($footer) && $footer) { $finalFooter = view($footer)->render(); } // 4. Controller'dan gelen renderedFooter if (!$finalFooter && isset($renderedFooter) && !empty(trim($renderedFooter ?? ''))) { $finalFooter = $renderedFooter; } @endphp @if($finalFooter) {!! $finalFooter !!} @else @include('partials.footer') @endif @stack('scripts')