Drei Seiten mit unterschiedlicher Suchintention, DE/EN, Hub + Spokes: - /was-kostet-eine-pressemitteilung: kurze Antwort im ersten Bildschirm, vier Abrechnungsmodelle ohne Anbieternamen und fremde Preise, sechs Prueffragen fuer Folgekosten, "Was bei uns gilt" (sieben Zusagen mit Einloesung), Rechenbeispiel Einzelabrechnung gegen Starter-Monate mit Zeilen fuer beide Seiten. - /pressemitteilung-veroeffentlichen-ohne-abo: Ablauf, enthalten / nicht enthalten, nichts verfaellt, wann sich ein Tarif lohnt. - /pressemitteilung-loeschen-oder-aendern-lassen: fuenf Wege als Tabelle (Korrektur, Aenderung, DSGVO, Depublikation, DSA), Antragsweg ueber /melden/pm, Korrektur statt Loeschung, Absatz fuer Meldungen auf fremden Portalen ohne Zusagen ueber Dritte. PricingTransparencyData liefert alle Zahlen aus config/billing, credits, legal und dem Starter-Tarif; TransparencyPageController leitet die Marke aus dem Host ab. Tabellen-Typografie fuer .pm-body. Verlinkt aus Preisuebersicht, Hilfe-Center, Sitemaps und llms.txt. Test TransparencyPagesTest (9) erzwingt u. a., dass im Rechenbeispiel beide Modelle Zeilen gewinnen. Protokoll Teil 5, Roadmap 2.4 abgehakt. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
114 lines
5.4 KiB
PHP
114 lines
5.4 KiB
PHP
@extends('web.layouts.web-master')
|
|
|
|
@php
|
|
// Roadmap 2.4, Transparenzseite 1: Modellvergleich ohne Anbieternamen
|
|
// und fremde Preise (kein Vergleich im Sinne von § 6 UWG, weil kein
|
|
// Wettbewerber erkennbar), Prüfliste, eigene Zusagen, Rechenbeispiel nur
|
|
// mit eigenen Optionen. Alle Zahlen aus PricingTransparencyData.
|
|
$params = [
|
|
'net' => $singleNet,
|
|
'gross' => $singleGross,
|
|
'vat' => $vatPercent,
|
|
'starter' => $starterName,
|
|
'starter_price' => $starterMonthlyNet,
|
|
'quota' => $starterQuota,
|
|
'change' => $changeNet,
|
|
'depub' => $depublicationNet,
|
|
'extra' => $extraPmStarterNet,
|
|
'pricing_url' => route('preise'),
|
|
'cancel_url' => route('kuendigung'),
|
|
'change_url' => route('pressemitteilung-loeschen-oder-aendern-lassen'),
|
|
];
|
|
$spreadLabel = fn (array $row): string => __('static.cost.spread_'.$row['spread'], ['months' => $row['months'], 'per' => $starterQuota]);
|
|
$cheaperLabel = fn (array $row): string => __('static.cost.cheaper_'.$row['cheaper'], ['starter' => $starterName]);
|
|
@endphp
|
|
|
|
@section('title', __('static.cost.meta_title', ['brand' => $brandLabel]))
|
|
@section('meta_description', __('static.cost.meta_description', ['price' => $singleNet]))
|
|
|
|
@section('content')
|
|
<x-web.static-page
|
|
:eyebrow="__('static.cost.eyebrow')"
|
|
:title="__('static.cost.title')"
|
|
:lead="__('static.cost.lead')"
|
|
:breadcrumb="__('static.cost.breadcrumb')"
|
|
>
|
|
<div class="pm-body max-w-[760px]">
|
|
<h2 id="kurz">{{ __('static.cost.short_heading') }}</h2>
|
|
<p>{!! __('static.cost.short_p1', $params) !!}</p>
|
|
<p>{!! __('static.cost.short_p2', $params) !!}</p>
|
|
|
|
<h2 id="modelle">{{ __('static.cost.models_heading') }}</h2>
|
|
<p>{{ __('static.cost.models_intro') }}</p>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th scope="col">{{ __('static.cost.models_col_model') }}</th>
|
|
<th scope="col">{{ __('static.cost.models_col_cost') }}</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@foreach ([1, 2, 3, 4] as $model)
|
|
<tr>
|
|
<th scope="row">{{ __('static.cost.model_'.$model) }}</th>
|
|
<td>{{ __('static.cost.model_'.$model.'_cost') }}</td>
|
|
</tr>
|
|
@endforeach
|
|
</tbody>
|
|
</table>
|
|
<p>{{ __('static.cost.models_note') }}</p>
|
|
|
|
<h2 id="folgekosten">{{ __('static.cost.check_heading') }}</h2>
|
|
<p>{{ __('static.cost.check_intro') }}</p>
|
|
<ol>
|
|
@foreach ([1, 2, 3, 4, 5, 6] as $question)
|
|
<li>{{ __('static.cost.check_'.$question) }}</li>
|
|
@endforeach
|
|
</ol>
|
|
|
|
<h2 id="bei-uns">{{ __('static.cost.ours_heading') }}</h2>
|
|
<p>{{ __('static.cost.ours_intro') }}</p>
|
|
<ol>
|
|
@foreach ([1, 2, 3, 4, 5, 6, 7] as $promise)
|
|
<li><strong>{{ __('static.cost.ours_'.$promise.'_t') }}</strong> — {!! __('static.cost.ours_'.$promise.'_d', $params) !!}</li>
|
|
@endforeach
|
|
</ol>
|
|
|
|
@if ($examples !== [])
|
|
<h2 id="rechenbeispiel">{{ __('static.cost.example_heading') }}</h2>
|
|
<p>{{ __('static.cost.example_intro', $params) }}</p>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th scope="col">{{ __('static.cost.example_col_count') }}</th>
|
|
<th scope="col">{{ __('static.cost.example_col_spread') }}</th>
|
|
<th scope="col" class="text-right">{{ __('static.cost.example_col_single') }}</th>
|
|
<th scope="col" class="text-right">{{ __('static.cost.example_col_starter', ['starter' => $starterName]) }}</th>
|
|
<th scope="col">{{ __('static.cost.example_col_cheaper') }}</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@foreach ($examples as $row)
|
|
<tr>
|
|
<td class="tabular-nums">{{ $row['count'] }}</td>
|
|
<td>{{ $spreadLabel($row) }}</td>
|
|
<td class="text-right tabular-nums">{{ $row['single'] }} €</td>
|
|
<td class="text-right tabular-nums">{{ $row['starter'] }} €</td>
|
|
<td><strong>{{ $cheaperLabel($row) }}</strong></td>
|
|
</tr>
|
|
@endforeach
|
|
</tbody>
|
|
</table>
|
|
<p>{{ __('static.cost.example_note') }}</p>
|
|
<p>{!! __('static.cost.example_extra', $params) !!}</p>
|
|
@endif
|
|
|
|
<h2 id="weiterlesen">{{ __('static.cost.related_heading') }}</h2>
|
|
<ul>
|
|
<li><a href="{{ route('pressemitteilung-veroeffentlichen-ohne-abo') }}">{{ __('static.cost.related_no_sub') }}</a></li>
|
|
<li><a href="{{ route('pressemitteilung-loeschen-oder-aendern-lassen') }}">{{ __('static.cost.related_change') }}</a></li>
|
|
<li><a href="{{ route('preise') }}">{{ __('static.cost.related_pricing') }}</a></li>
|
|
</ul>
|
|
</div>
|
|
</x-web.static-page>
|
|
@endsection
|