ldc-bien-etre-animal/app/Http/Controllers/Front/LegacyPageController.php

62 lines
1.9 KiB
PHP
Raw Permalink Normal View History

2026-08-28 08:40:04 +00:00
<?php
declare(strict_types=1);
namespace App\Http\Controllers\Front;
use Illuminate\Support\Facades\App;
use Inertia\Inertia;
use Inertia\Response;
use Uwil\LaravelCommon\Controllers\CommonController;
2026-09-03 16:52:27 +02:00
use Uwil\LaravelSchemaOrg\Services\SchemaOrgService;
2026-08-28 08:40:04 +00:00
class LegacyPageController extends CommonController
{
2026-09-03 16:52:27 +02:00
public function __construct(private readonly SchemaOrgService $schemaOrg)
{
}
2026-08-28 08:40:04 +00:00
public function confidentialite(): Response
{
return $this->render('confidentialite');
}
public function mentionsLegales(): Response
{
return $this->render('mentions_legales');
}
private function render(string $page): Response
{
$locale = App::currentLocale();
$viewName = match ($locale) {
2026-08-31 16:54:51 +02:00
'fr' => "front.legacy.fr.{$page}",
'en' => "front.legacy.en.{$page}",
2026-08-28 08:40:04 +00:00
default => "front.legacy.fr.{$page}",
};
$trans = trans("legacy.{$page}");
return Inertia::render('front/Pages/LegacyPage', [
'metaTitle' => $trans['meta']['seo_title'],
'metaDescription' => $trans['meta']['seo_description'],
'headerTitle' => $trans['header']['title'],
'heading' => $trans['heading'],
2026-08-31 16:54:51 +02:00
// @phpstan-ignore-next-line argument.type
2026-08-28 08:40:04 +00:00
'content' => view($viewName)->render(),
2026-09-03 16:52:27 +02:00
'schemas' => [
$this->schemaOrg->setWebPage()
->headline($trans['meta']['seo_title'])
->description($trans['meta']['seo_description'])
->name($trans['header']['title'])
->isAccessibleForFree(true)
->keywords(['page'])
->dateCreated(new \DateTimeImmutable('2026-09-03'))
->dateModified(new \DateTimeImmutable('2026-09-03'))
->datePublished(new \DateTimeImmutable('2026-09-03')),
],
2026-08-28 08:40:04 +00:00
]);
}
}