@if(app()->environment('production') && !str_contains(request()->getHost(), 'dev')) @endif @if(app()->environment('production') && !str_contains(request()->getHost(), 'dev')) @else @endif @php $currentRoute = Route::currentRouteName(); $seo = getSeoSetting($currentRoute); // Prioritize passed variables, then DB SEO settings, then default fallback $metaTitle = isset($meta_title) ? $meta_title : ($seo ? $seo->meta_title : (getSeoMeta($currentRoute, 'meta_title') ?: env('APP_NAME'))); $metaDescription = isset($meta_description) ? $meta_description : ($seo ? $seo->meta_description : getSeoMeta($currentRoute, 'meta_description')); $metaKeywords = isset($meta_keywords) ? $meta_keywords : ($seo ? $seo->meta_keywords : getSeoMeta($currentRoute, 'meta_keywords')); $canonicalUrl = ($seo && $seo->canonical_url) ? $seo->canonical_url : url()->current(); $canonicalUrl = strtok($canonicalUrl, '?'); if (request()->integer('page', 1) > 1) { $canonicalUrl .= '?page=' . request()->integer('page'); } @endphp @hasSection('meta-sec') @yield('meta-sec') @else @php $resolvedOgTitle = $og_title ?? ($seo ? ($seo->og_title ?: $seo->meta_title) : getSeoMeta($currentRoute, 'og_title')); $resolvedOgDescription = $og_description ?? ($seo ? ($seo->og_description ?: $seo->meta_description) : getSeoMeta($currentRoute, 'og_description')); $resolvedOgImage = $og_image ?? ($seo ? ($seo->og_image ?: (getSetting('facebook_logo_link') ?: url(asset('fav.png')))) : getSeoMeta($currentRoute, 'og_image')); @endphp @endif @hasSection('canonical') @yield('canonical') @else @endif {{-- hreflang="ar" only (site is Arabic-only). Pages with custom canonical push their own via @section('hreflang'). --}} @hasSection('hreflang') @yield('hreflang') @else @endif {{-- Pagination rel links (pushed from paginated views) --}} @stack('seo-head') @php // Use controller-provided schemas if available, otherwise get defaults if (!isset($schemas) || !is_array($schemas)) { $schemas = getSchemasForPage($currentRoute); } // Add model-specific schemas if available if (isset($blog) && $blog instanceof \App\Models\Blog) { $schemas[] = $blog->schema; } if (isset($project) && $project instanceof \App\Models\Project) { $schemas[] = $project->schema; } // Add FAQ schema if on FAQ page if (isset($faqs) && is_array($faqs) && count($faqs) > 0) { $faqData = []; foreach ($faqs as $faq) { $faqData[] = [ 'question' => $faq->question ?? $faq['question'] ?? '', 'answer' => $faq->answer ?? $faq['answer'] ?? '', ]; } if (!empty($faqData)) { $schemas[] = \App\Services\SchemaService::faqPage($faqData); } } // Add breadcrumb schema if breadcrumbs are available if (isset($breadcrumbs) && is_array($breadcrumbs) && count($breadcrumbs) > 0) { $schemas[] = \App\Services\SchemaService::breadcrumbList($breadcrumbs); } @endphp {!! renderSchemas($schemas ?? []) !!} @if($seo && $seo->custom_meta) {!! $seo->custom_meta !!} @endif @if(auth()->check()) @endif @yield('meta')