web: RSS-Feed je Newsroom, RSS-Übersichtsseite, „RSS" in der Topleiste (Roadmap 3.1, Nachtrag)
- /{edition}/newsroom/{slug}/feed: Sichtbarkeit wie die Newsroom-Seite
(aktiv, nicht entfernt, mindestens eine Meldung), Prüfung vor dem Cache,
301 bei zusammengeführter Firma; Autodiscovery und Link „RSS-Feed" auf
der Newsroom-Seite; Hub leitet auf das Portal der Firma.
- /{edition}/rss (RssPageController, static.rss DE/EN): Was RSS ist, wie
ein Reader funktioniert, Hauptfeed, alle Branchen-Feeds mit Adresse,
Muster des Newsroom-Feeds, Hinweise. Portalseite mit Portal-Kontext,
Hub → presseecho, in Sitemap und llms.txt.
- Topleiste, Burger-Menü und Footer verlinken RSS neben FAQ/Hilfe/API.
- FeedController in portal/category/newsroom aufgeteilt; Panel
„Auslieferung" nennt zusätzlich den Newsroom-Feed.
- Tests: FeedTest (+3), RssPageTest (4), StaticPagesTest, VisibilityStatsTest.
- dev/2026-09-01: Nachtrag in Protokoll Teil 11 und Roadmap 3.1.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
9d5e5a0b54
commit
ff75159b8f
22 changed files with 577 additions and 55 deletions
|
|
@ -20,6 +20,7 @@ use App\Http\Controllers\Web\PressReleaseReportController;
|
|||
use App\Http\Controllers\Web\ReleaseDetailController;
|
||||
use App\Http\Controllers\Web\ReleaseShareTrackingController;
|
||||
use App\Http\Controllers\Web\ReportFormController;
|
||||
use App\Http\Controllers\Web\RssPageController;
|
||||
use App\Http\Controllers\Web\SitemapController;
|
||||
use App\Http\Controllers\Web\SucheController;
|
||||
use App\Http\Controllers\Web\TerminationController;
|
||||
|
|
@ -162,7 +163,7 @@ $htmlRedirect = static function (string $edition, string $path) {
|
|||
$staticPages = [
|
||||
'preise', 'faq', 'veroeffentlichen',
|
||||
'suche', 'newsrooms', 'api',
|
||||
'hilfe', 'gute-pressemitteilung', 'impressum', 'datenschutz', 'agb',
|
||||
'hilfe', 'gute-pressemitteilung', 'rss', 'impressum', 'datenschutz', 'agb',
|
||||
'was-kostet-eine-pressemitteilung', 'pressemitteilung-veroeffentlichen-ohne-abo', 'pressemitteilung-loeschen-oder-aendern-lassen', 'pressemitteilung-kostenlos-veroeffentlichen',
|
||||
];
|
||||
|
||||
|
|
@ -231,8 +232,8 @@ Route::prefix('{edition}')->whereIn('edition', SetEdition::EDITIONS)->group(func
|
|||
|
||||
// RSS-Feeds (Roadmap 3.1): alle Meldungen der Ausgabe und je Branche
|
||||
// (inkl. Unterkategorien). Der Hub leitet auf das Portal weiter.
|
||||
Route::get('feed', FeedController::class)->name('feed');
|
||||
Route::get('category/{slug}/feed', FeedController::class)->name('kategorie.feed');
|
||||
Route::get('feed', [FeedController::class, 'portal'])->name('feed');
|
||||
Route::get('category/{slug}/feed', [FeedController::class, 'category'])->name('kategorie.feed');
|
||||
|
||||
// Detailseite einer Pressemitteilung (z.B. /de/press-release/ki-revolution)
|
||||
Route::get('press-release/{slug}', ReleaseDetailController::class)->name('release.detail');
|
||||
|
|
@ -266,6 +267,8 @@ Route::prefix('{edition}')->whereIn('edition', SetEdition::EDITIONS)->group(func
|
|||
Route::get('suche', SucheController::class)->name('suche');
|
||||
Route::get('newsrooms', NewsroomsController::class)->name('newsrooms');
|
||||
Route::get('newsroom/{slug}', NewsroomDetailController::class)->name('newsroom');
|
||||
// RSS-Feed eines Newsrooms (Roadmap 3.1), gleiche Sichtbarkeitsregel wie die Seite.
|
||||
Route::get('newsroom/{slug}/feed', [FeedController::class, 'newsroom'])->name('newsroom.feed');
|
||||
// „Diesen Newsroom verwalten" (Roadmap 1b.2): Anmeldelink an die
|
||||
// hinterlegte Firmen-E-Mail, unabhängig von der öffentlichen Sichtbarkeit.
|
||||
Route::get('newsroom/{slug}/verwalten', [NewsroomClaimController::class, 'show'])->name('newsroom.claim');
|
||||
|
|
@ -274,6 +277,8 @@ Route::prefix('{edition}')->whereIn('edition', SetEdition::EDITIONS)->group(func
|
|||
->name('newsroom.claim.store');
|
||||
Route::view('api', 'web.api')->name('api');
|
||||
Route::view('hilfe', 'web.hilfe')->name('hilfe');
|
||||
// RSS-Übersicht (Roadmap 3.1): was Feeds sind, wie man sie abonniert, welche es hier gibt.
|
||||
Route::get('rss', RssPageController::class)->name('rss');
|
||||
// Roadmap 1d.1: Hilfeseite ohne kommerziellen Anteil — Ziel des
|
||||
// Textbausteins in der Ablehnungsmail (1d.2).
|
||||
Route::view('gute-pressemitteilung', 'web.gute-pressemitteilung')->name('gute-pressemitteilung');
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue