E9: Kategorie-Zuordnung wie vorgeschlagen übernommen, Zuordnung ist standardmäßig an (CANONICAL_ASSIGNMENT_ENABLED). Auf der Dev-Kopie verifiziert: Kopie trägt rel=canonical auf die Erstquelle und fällt aus der Sitemap ihres Portals. E10: faq, hilfe, gute-pressemitteilung, die vier Transparenzseiten und die API-Doku lagen auf allen drei Hosts mit identischem Text und je eigenem Self-Canonical. Jetzt führt presseecho die Informationsseiten, der Hub die API-Doku; Sitemap und llms.txt nennen nur die führende Adresse. Rechtstexte (Impressum, Datenschutz, AGB, Richtlinien, Meldeweg, Kündigung) bleiben bewusst je Host — jede Domain ist ein eigenes Angebot mit eigener Anbieterkennzeichnung. Bei der Erreichbarkeitsprüfung des Hubs gefunden und behoben: /de/preise, /de/veroeffentlichen, /de/newsrooms und /de/suche wurden unter pressekonto.com mit dem Branding von businessportal24 ausgeliefert (der Portal-Kontext fällt dort darauf zurück) — jetzt 301 auf presseecho, die Transparenz-Navigation verlinkt direkt dorthin. /de/kontakt und /de/ueber-uns sprangen über /de auf die Startseite, jetzt in einem Schritt. Der Self-Canonical kommt jetzt aus dem aufgerufenen Host; Portal-Inhalte, die über den Hub laufen, behalten ihr Portal (webPortalContextApplied). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
32 lines
1.7 KiB
PHP
32 lines
1.7 KiB
PHP
@props([
|
|
'current' => null,
|
|
])
|
|
|
|
@php
|
|
// Roadmap 2.4: Unter-Navigation über der Headline von Preisseite und den
|
|
// vier Transparenzseiten — damit die Antworten auf „Was kostet das?",
|
|
// „Geht das ohne Abo?" und „Wie werde ich es wieder los?" neben den
|
|
// Tarifen stehen. `current` = Routenname der aktuellen Seite.
|
|
$items = [
|
|
'preise' => __('pricing.transparency_nav.pricing'),
|
|
'was-kostet-eine-pressemitteilung' => __('pricing.transparency_nav.cost'),
|
|
'pressemitteilung-veroeffentlichen-ohne-abo' => __('pricing.transparency_nav.no_subscription'),
|
|
'pressemitteilung-loeschen-oder-aendern-lassen' => __('pricing.transparency_nav.change_delete'),
|
|
'pressemitteilung-kostenlos-veroeffentlichen' => __('pricing.transparency_nav.free'),
|
|
];
|
|
@endphp
|
|
|
|
<nav {{ $attributes->merge(['class' => 'flex items-center gap-x-4 gap-y-2 flex-wrap']) }} aria-label="{{ __('pricing.transparency_nav.label') }}">
|
|
<span class="eyebrow muted text-[10px]">{{ __('pricing.transparency_nav.label') }}</span>
|
|
<ul class="m-0 p-0 list-none flex flex-wrap gap-1.5">
|
|
@foreach ($items as $routeName => $label)
|
|
<li>
|
|
@if ($routeName === $current)
|
|
<span class="inline-flex items-center px-3 py-1.5 text-[12.5px] font-semibold border border-brand bg-brand text-white" aria-current="page">{{ $label }}</span>
|
|
@else
|
|
<a href="{{ \App\Support\StaticPageCanonical::publicUrlFor($routeName) }}" class="inline-flex items-center px-3 py-1.5 text-[12.5px] font-semibold border border-bg-rule-strong bg-white text-ink hover:bg-bg-elev transition-colors">{{ $label }} →</a>
|
|
@endif
|
|
</li>
|
|
@endforeach
|
|
</ul>
|
|
</nav>
|