Oeffentliche Strecke durchgaengig auf das Editorial-Design umgestellt und
datengetrieben gemacht:
- Newsrooms-Verzeichnis + Newsroom-Detailseiten (Suche, Pagination)
- Preise-Seite neu (Abos via Plan, Einzel-PM via config/billing, Add-ons via
config/credits); Texte ausgelagert nach lang/{de,en}/pricing.php
- Pricing-Teaser-Komponente auf den Startseiten + Preise-Link in Header/Footer
- Statische Seiten im Editorial-Design ueber neue Komponente x-web.static-page:
impressum, datenschutz, agb, cookies, faq (Akkordeon), hilfe, kontakt,
ueber-uns, api (altes Theme/gradient-hero entfernt)
- Header/Footer-Linkpflege: tote #-Anker raus, FAQ/Hilfe/Cookies verlinkt,
"Anmelden" fuehrt in den Hub
- Legacy-URL-Redirects (.html, presskit->newsroom, Regionen)
- Datums-Bugfix in Feed-Komponenten
Tests: NewsroomPage, PreisePage, PricingTeaser, StaticPages, NavigationLinks,
LegacyRedirect. Doku in docs/frontend aktualisiert.
Co-authored-by: Cursor <cursoragent@cursor.com>
44 lines
2.7 KiB
PHP
44 lines
2.7 KiB
PHP
@props([
|
|
'paginator' => null,
|
|
])
|
|
|
|
@if ($paginator && $paginator->hasPages())
|
|
@php
|
|
$start = max(1, $paginator->currentPage() - 2);
|
|
$end = min($paginator->lastPage(), $paginator->currentPage() + 2);
|
|
@endphp
|
|
<nav class="mt-8 flex items-center justify-center gap-1.5" aria-label="Seitennummerierung">
|
|
@if ($paginator->onFirstPage())
|
|
<span class="inline-flex items-center justify-center w-9 h-9 border border-bg-rule text-ink-4 opacity-40 cursor-not-allowed" aria-hidden="true">
|
|
<svg width="14" height="14" viewBox="0 0 24 24" fill="none"><path d="M15 19l-7-7 7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
|
|
</span>
|
|
@else
|
|
<a href="{{ $paginator->previousPageUrl() }}" rel="prev"
|
|
class="inline-flex items-center justify-center w-9 h-9 border border-bg-rule-strong text-ink hover:bg-bg-elev transition-colors"
|
|
aria-label="Vorherige Seite">
|
|
<svg width="14" height="14" viewBox="0 0 24 24" fill="none"><path d="M15 19l-7-7 7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
|
|
</a>
|
|
@endif
|
|
|
|
@foreach ($paginator->getUrlRange($start, $end) as $page => $url)
|
|
@if ($page === $paginator->currentPage())
|
|
<span class="inline-flex items-center justify-center min-w-9 h-9 px-2 border border-brand bg-brand text-white text-[13px] font-mono" aria-current="page">{{ $page }}</span>
|
|
@else
|
|
<a href="{{ $url }}"
|
|
class="inline-flex items-center justify-center min-w-9 h-9 px-2 border border-bg-rule-strong text-ink hover:bg-bg-elev text-[13px] font-mono transition-colors">{{ $page }}</a>
|
|
@endif
|
|
@endforeach
|
|
|
|
@if ($paginator->hasMorePages())
|
|
<a href="{{ $paginator->nextPageUrl() }}" rel="next"
|
|
class="inline-flex items-center justify-center w-9 h-9 border border-bg-rule-strong text-ink hover:bg-bg-elev transition-colors"
|
|
aria-label="Nächste Seite">
|
|
<svg width="14" height="14" viewBox="0 0 24 24" fill="none"><path d="M9 5l7 7-7 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
|
|
</a>
|
|
@else
|
|
<span class="inline-flex items-center justify-center w-9 h-9 border border-bg-rule text-ink-4 opacity-40 cursor-not-allowed" aria-hidden="true">
|
|
<svg width="14" height="14" viewBox="0 0 24 24" fill="none"><path d="M9 5l7 7-7 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
|
|
</span>
|
|
@endif
|
|
</nav>
|
|
@endif
|