feat: implement structured data support for blog and page components, enhancing SEO and user experience through JSON-LD integration

This commit is contained in:
Ümit Tunç
2026-05-21 21:54:12 +03:00
parent 8675325f50
commit 6d9ffc808b
15 changed files with 509 additions and 176 deletions
+15 -2
View File
@@ -7,6 +7,7 @@ use App\Models\Setting;
use App\Models\HeaderTemplate;
use App\Models\FooterTemplate;
use App\Services\TemplateService;
use App\Support\PageStructuredData;
use Illuminate\Http\Request;
use Illuminate\Support\Collection;
@@ -32,10 +33,13 @@ class PageController extends Controller
// Hiç sayfa yoksa fallback
if (!$page) {
$meta = $this->getMeta(null, $settings);
return view('templates.home', [
'page' => null,
'settings' => $settings,
'meta' => $this->getMeta(null, $settings),
'meta' => $meta,
'structuredData' => PageStructuredData::forPage(null, url('/'), $meta['title'] ?? null, $meta['description'] ?? null),
]);
}
@@ -136,6 +140,9 @@ class PageController extends Controller
$renderedFooter = $this->renderFooter($page, $settings);
}
$meta = $this->getMeta($page, $settings);
$pageUrl = url()->current();
return view($view, [
'page' => $page,
'settings' => $settings,
@@ -143,7 +150,13 @@ class PageController extends Controller
'templatedSections' => $page ? ($page->templated_sections ?? collect([])) : collect([]),
'renderedHeader' => $renderedHeader,
'renderedFooter' => $renderedFooter,
'meta' => $this->getMeta($page, $settings),
'meta' => $meta,
'structuredData' => PageStructuredData::forPage(
$page,
$pageUrl,
$meta['title'] ?? null,
$meta['description'] ?? null,
),
]);
}