presseportale/resources/views/web/hilfe.blade.php
Kevin Adametz 106edb1384 web: Transparenzseiten — was kostet, ohne Abo, loeschen/aendern (Roadmap 2.4)
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>
2026-09-17 12:00:28 +00:00

124 lines
6.8 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@extends('web.layouts.web-master')
@section('title', __('static.help.meta_title'))
@section('meta_description', __('static.help.meta_description'))
@php
$publisherUrl = rtrim((string) config('domains.domain_portal_url', config('app.url')), '/');
// Host-aware Kontaktadresse (Betreiber-Postfach als Fallback, R2.1).
$helpHost = request()->getHost();
$helpBrandKey = str_contains($helpHost, 'pressekonto')
? 'pressekonto'
: (str_contains($helpHost, 'presseecho') ? 'presseecho' : 'businessportal24');
$helpContactEmail = config('domains.domains.'.$helpBrandKey.'.brand.contact_email') ?? 'info@businessportal24.com';
// Hilfe-Themen mit Links auf vorhandene Ziele; Texte aus static.help.*.
$helpTopics = [
[
'title' => __('static.help.topic_start'),
'links' => [
['label' => __('static.help.link_create_account'), 'href' => $publisherUrl.'/register'],
['label' => __('static.help.link_first_pm'), 'href' => route('veroeffentlichen')],
['label' => __('static.help.link_discover_newsrooms'), 'href' => route('newsrooms')],
['label' => __('static.help.link_faq_start'), 'href' => route('faq')],
],
],
[
'title' => __('static.help.topic_releases'),
'links' => [
['label' => __('static.help.link_good_release'), 'href' => route('gute-pressemitteilung')],
['label' => __('static.help.link_file_formats'), 'href' => route('faq')],
['label' => __('static.help.link_seo'), 'href' => route('faq')],
['label' => __('static.help.link_corrections'), 'href' => route('pressemitteilung-loeschen-oder-aendern-lassen')],
],
],
[
'title' => __('static.help.topic_account'),
'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_change_plan'), 'href' => route('preise')],
['label' => __('static.help.link_invoices'), 'href' => $publisherUrl.'/login'],
['label' => __('static.help.link_cancel'), 'href' => route('kuendigung')],
],
],
[
'title' => __('static.help.topic_advanced'),
'links' => [
['label' => __('static.help.link_api'), 'href' => route('api')],
['label' => __('static.help.link_stats'), 'href' => route('faq')],
['label' => __('static.help.link_newsroom'), 'href' => $publisherUrl.'/login'],
],
],
];
$quickLinks = [
['label' => __('static.help.quick_faq'), 'desc' => __('static.help.quick_faq_desc'), 'href' => route('faq')],
['label' => __('static.help.quick_publish'), 'desc' => __('static.help.quick_publish_desc'), 'href' => route('veroeffentlichen')],
['label' => __('static.help.quick_contact'), 'desc' => __('static.help.quick_contact_desc'), 'href' => null, 'contact' => true],
];
@endphp
@section('content')
<x-web.static-page
:eyebrow="__('static.help.eyebrow')"
:title="__('static.help.title')"
:lead="__('static.help.lead')"
:breadcrumb="__('static.help.breadcrumb')"
>
{{-- Schnellzugriff --}}
<div class="grid gap-px bg-bg-rule border border-bg-rule grid-cols-1 sm:grid-cols-3">
@foreach ($quickLinks as $link)
<a @if ($link['contact'] ?? false) href="#" x-data @click.prevent="$dispatch('open-contact-modal')" @else href="{{ $link['href'] }}" @endif
class="group bg-bg p-6 hover:bg-bg-elev transition-colors cursor-pointer">
<div class="flex items-center justify-between gap-2">
<span class="text-[15px] font-semibold text-ink group-hover:text-brand transition-colors">{{ $link['label'] }}</span>
<svg width="13" height="13" viewBox="0 0 12 12" fill="none" aria-hidden="true" class="text-ink-3 group-hover:text-brand transition-colors">
<path d="M2 6h8M6 2l4 4-4 4" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round" />
</svg>
</div>
<p class="text-[12.5px] text-ink-3 mt-1 mb-0">{{ $link['desc'] }}</p>
</a>
@endforeach
</div>
{{-- Hilfe-Themen --}}
<h2 class="font-serif text-[22px] font-semibold tracking-[-0.3px] text-ink m-0 mt-12 mb-4">{{ __('static.help.topics_heading') }}</h2>
<div class="grid gap-px bg-bg-rule border border-bg-rule grid-cols-1 md:grid-cols-2">
@foreach ($helpTopics as $topic)
<div class="bg-bg p-6">
<h3 class="text-[14px] font-semibold text-ink m-0 mb-3">{{ $topic['title'] }}</h3>
<ul class="list-none p-0 m-0 space-y-2">
@foreach ($topic['links'] as $link)
<li>
<a href="{{ $link['href'] }}" class="inline-flex items-center gap-1.5 text-[13px] text-ink-2 hover:text-brand transition-colors">
<span class="text-ink-4" aria-hidden="true">›</span>
{{ $link['label'] }}
</a>
</li>
@endforeach
</ul>
</div>
@endforeach
</div>
{{-- Support-CTA --}}
<div class="mt-12 border border-bg-rule bg-bg-elev p-6 sm:p-8 flex flex-col sm:flex-row sm:items-center sm:justify-between gap-5">
<div>
<h2 class="font-serif text-[20px] font-semibold tracking-[-0.3px] text-ink m-0">{{ __('static.help.cta_heading') }}</h2>
<p class="text-[13px] text-ink-2 mt-1.5 mb-0">{{ __('static.help.cta_text') }}</p>
</div>
<div class="flex flex-wrap gap-3 flex-shrink-0">
<button type="button" x-data @click="$dispatch('open-contact-modal')"
class="inline-flex items-center justify-center gap-1.5 px-5 py-2.5 text-[12.5px] font-semibold text-white bg-brand hover:bg-brand-deep rounded-[2px] transition-colors cursor-pointer">
{{ __('static.help.cta_contact') }}
</button>
<a href="{{ route('faq') }}"
class="inline-flex items-center justify-center gap-1.5 px-5 py-2.5 text-[12.5px] font-semibold text-ink border border-bg-rule-strong hover:bg-bg transition-colors rounded-[2px]">
{{ __('static.help.cta_faq') }}
</a>
</div>
</div>
</x-web.static-page>
@endsection