Files
einundzwanzig-app/app/Traits/SeoTrait.php
HolgerHatGarKeineNode 25843db5a9 Add SEO support with configuration and traits
- Introduced `config/seo.php` to centralize SEO settings.
- Implemented `SeoTrait` for dynamic SEO management.
- Added `SeoDataAttribute` to set SEO metadata at the class level.
- Updated various views to integrate dynamic SEO handling.
- Included fallback settings for titles, descriptions, images, and more.
2025-11-22 22:12:45 +01:00

32 lines
743 B
PHP

<?php
namespace App\Traits;
use App\Attributes\SeoDataAttribute;
use Illuminate\Support\Facades\View;
trait SeoTrait
{
public function mountSeoTrait(): void
{
$this->setupSeo();
}
/**
* Setup SEO data from attributes and share it globally.
*/
protected function setupSeo(): void
{
$reflection = new \ReflectionClass($this);
$attributes = $reflection->getAttributes(SeoDataAttribute::class);
if (!empty($attributes)) {
$seoDataAttribute = $attributes[0]->newInstance();
$seoData = $seoDataAttribute->resolve();
} else {
$seoData = SeoDataAttribute::getData('default');
}
View::share('SEOData', $seoData);
}
}