web: Erstquelle-Absatz in der Veröffentlichungsmail, vierte Transparenzseite „kostenlos veröffentlichen" (Anhang 1: 1d, 2.4, E7)
Meldungen, die über die API eingegangen sind, bekommen in der Veröffentlichungsmail einen Absatz zum Unterschied Erstquelle/Kopie — technische Tatsache, ohne Preis und Angebot; direkt eingereichte nicht. /pressemitteilung-kostenlos-veroeffentlichen beantwortet die Suche nach „kostenlos" ehrlich: kein kostenloser Weg (E7), was kostenlose Portale leisten, warum Links aus Presseportalen kaum tragen (auch bei uns sponsored nofollow), warum Annahme ohne Gegenwert und Prüfung sich ausschließen, wer am Ende zahlt. Die Liste kostenloser Portale ist in config/transparency.php vorbereitet und bleibt leer, bis geprüfte Einträge mit Prüfdatum vorliegen. Unter-Navigation, Hilfe, Sitemaps, llms.txt und die Modelltabelle der Kostenseite verlinken die neue Seite. Anhang 1 und Protokoll Teil 6. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
6b8728242f
commit
375138679d
21 changed files with 597 additions and 12 deletions
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
@php
|
||||
// Roadmap 2.4: Unter-Navigation über der Headline von Preisseite und den
|
||||
// drei Transparenzseiten — damit die Antworten auf „Was kostet das?",
|
||||
// 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 = [
|
||||
|
|
@ -12,6 +12,7 @@
|
|||
'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
|
||||
|
||||
|
|
|
|||
|
|
@ -45,6 +45,18 @@
|
|||
</p>
|
||||
@endif
|
||||
|
||||
{{-- 4) Erstquelle gegen Kopie (Roadmap 1d, Anhang 17.09.2026): nur bei
|
||||
Meldungen, die über einen Verteiler eingegangen sind. Technische
|
||||
Tatsache, ohne Verkaufsdruck — kein Preis, kein Angebot. --}}
|
||||
@if ($viaSyndication)
|
||||
<p style="font-size: 12.5px; color: #6b7280;">
|
||||
Zur Einordnung: Diese Meldung ist über einen Verteiler bei uns eingegangen und liegt gleichlautend
|
||||
auch auf anderen Portalen. Für Such- und KI-Systeme hat ein solcher Text keine erkennbare Erstquelle.
|
||||
Eine direkt eingereichte Meldung erscheint dagegen mit strukturierten Daten, geprüften Angaben und
|
||||
einer stabilen Adresse als Erstquelle. Das ist kein Werturteil über diesen Weg, nur der technische Unterschied.
|
||||
</p>
|
||||
@endif
|
||||
|
||||
<div class="note">
|
||||
<p>Bei Fragen erreichen Sie uns über den <a href="{{ config('domains.domain_portal_url') }}/de/hilfe">Hilfe-Bereich auf pressekonto</a>.</p>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@
|
|||
'links' => [
|
||||
['label' => __('static.help.link_cost'), 'href' => route('was-kostet-eine-pressemitteilung')],
|
||||
['label' => __('static.help.link_no_subscription'), 'href' => route('pressemitteilung-veroeffentlichen-ohne-abo')],
|
||||
['label' => __('static.help.link_free'), 'href' => route('pressemitteilung-kostenlos-veroeffentlichen')],
|
||||
['label' => __('static.help.link_change_plan'), 'href' => route('preise')],
|
||||
['label' => __('static.help.link_invoices'), 'href' => $publisherUrl.'/login'],
|
||||
['label' => __('static.help.link_cancel'), 'href' => route('kuendigung')],
|
||||
|
|
|
|||
|
|
@ -0,0 +1,86 @@
|
|||
@extends('web.layouts.web-master')
|
||||
|
||||
@php
|
||||
// Roadmap 2.4, Transparenzseite 4 (Anhang 17.09.2026): Wer „kostenlos"
|
||||
// sucht, bekommt die ehrliche Begründung, warum es das hier nicht gibt
|
||||
// (E7) — und am Ende eine geprüfte Liste kostenloser Portale, sofern
|
||||
// config transparency.free_portals gefüllt ist.
|
||||
$params = [
|
||||
'net' => $singleNet,
|
||||
'gross' => $singleGross,
|
||||
];
|
||||
$freePortals = (array) config('transparency.free_portals', []);
|
||||
$checkedAt = config('transparency.free_portals_checked_at');
|
||||
$checkedAt = $checkedAt ? \Illuminate\Support\Carbon::parse((string) $checkedAt) : null;
|
||||
@endphp
|
||||
|
||||
@section('title', __('static.free.meta_title', ['brand' => $brandLabel]))
|
||||
@section('meta_description', __('static.free.meta_description'))
|
||||
|
||||
@section('content')
|
||||
<x-web.static-page
|
||||
:eyebrow="__('static.free.eyebrow')"
|
||||
:title="__('static.free.title')"
|
||||
:lead="__('static.free.lead')"
|
||||
:breadcrumb="__('static.free.breadcrumb')"
|
||||
>
|
||||
<x-slot:aboveTitle>
|
||||
<x-web.transparency-nav current="pressemitteilung-kostenlos-veroeffentlichen" />
|
||||
</x-slot:aboveTitle>
|
||||
|
||||
<div class="pm-body max-w-[760px]">
|
||||
<h2 id="antwort">{{ __('static.free.short_heading') }}</h2>
|
||||
<p>{{ __('static.free.short_p1', $params) }}</p>
|
||||
<p>{{ __('static.free.short_p2') }}</p>
|
||||
|
||||
<h2 id="leistung">{{ __('static.free.delivers_heading') }}</h2>
|
||||
<p>{{ __('static.free.delivers_intro') }}</p>
|
||||
<ul>
|
||||
@foreach ([1, 2, 3, 4] as $item)
|
||||
<li>{{ __('static.free.delivers_'.$item) }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
|
||||
<h2 id="links">{{ __('static.free.links_heading') }}</h2>
|
||||
<p>{!! __('static.free.links_p1') !!}</p>
|
||||
<p>{{ __('static.free.links_p2') }}</p>
|
||||
|
||||
<h2 id="pruefung">{{ __('static.free.gate_heading') }}</h2>
|
||||
<p>{{ __('static.free.gate_p1') }}</p>
|
||||
<p>{{ __('static.free.gate_p2') }}</p>
|
||||
|
||||
<h2 id="wer-zahlt">{{ __('static.free.pays_heading') }}</h2>
|
||||
<p>{{ __('static.free.pays_intro') }}</p>
|
||||
<ul>
|
||||
@foreach ([1, 2, 3, 4] as $item)
|
||||
<li>{{ __('static.free.pays_'.$item) }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
|
||||
@if ($freePortals !== [] && $checkedAt !== null)
|
||||
<h2 id="portale">{{ __('static.free.portals_heading') }}</h2>
|
||||
<p>{{ __('static.free.portals_intro', ['date' => $checkedAt->format('d.m.Y')]) }}</p>
|
||||
<ul>
|
||||
@foreach ($freePortals as $portal)
|
||||
<li>
|
||||
<a href="{{ $portal['url'] }}" rel="nofollow noopener" target="_blank">{{ $portal['name'] }}</a>
|
||||
@if (! empty($portal['note']))
|
||||
— {{ $portal['note'] }}
|
||||
@endif
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
<p>{{ __('static.free.portals_note') }}</p>
|
||||
@endif
|
||||
|
||||
<div class="mt-10 p-6 sm:p-8 bg-ink text-white">
|
||||
<h2 class="font-serif text-[22px] font-semibold m-0 mb-2 text-white">{{ __('static.free.cta_heading') }}</h2>
|
||||
<p class="text-[14px] leading-[1.55] m-0 mb-5 text-white/80">{{ __('static.free.cta_text', $params) }}</p>
|
||||
<div class="flex flex-wrap gap-3">
|
||||
<a href="{{ route('pressemitteilung-veroeffentlichen-ohne-abo') }}" class="inline-flex items-center justify-center px-[18px] py-3 text-[14px] font-semibold bg-brand text-white hover:bg-brand-deep transition-colors no-underline">{{ __('static.free.cta_button') }} →</a>
|
||||
<a href="{{ route('was-kostet-eine-pressemitteilung') }}" class="inline-flex items-center justify-center px-[18px] py-3 text-[14px] font-semibold text-white border border-white/30 hover:bg-white/10 transition-colors no-underline">{{ __('static.free.cta_cost') }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</x-web.static-page>
|
||||
@endsection
|
||||
|
|
@ -55,7 +55,7 @@
|
|||
@foreach ([1, 2, 3, 4] as $model)
|
||||
<tr>
|
||||
<th scope="row">{{ __('static.cost.model_'.$model) }}</th>
|
||||
<td>{{ __('static.cost.model_'.$model.'_cost') }}</td>
|
||||
<td>{{ __('static.cost.model_'.$model.'_cost') }}@if ($model === 4) — <a href="{{ route('pressemitteilung-kostenlos-veroeffentlichen') }}">{{ __('static.cost.model_4_link') }}</a>@endif</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
|
|
@ -111,6 +111,7 @@
|
|||
<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('pressemitteilung-kostenlos-veroeffentlichen') }}">{{ __('static.cost.related_free') }}</a></li>
|
||||
<li><a href="{{ route('preise') }}">{{ __('static.cost.related_pricing') }}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue