newsroom: Seite verschwindet mit der letzten veröffentlichten Meldung (Roadmap 1b.1/1b.5)

Die Sichtbarkeitsregel bestand bereits (Detailseite 404, Verzeichnis und
Sitemap nur mit veröffentlichter Meldung). Neu: archive(),
changeStatusFromAdmin() weg von published und deleteFromAdmin() einer
veröffentlichten Meldung leeren den Seiten-Cache — vorher blieb die
Newsroom-Seite bis zu eine Stunde stehen, während die Depublikation längst
sofort griff.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-09-15 10:34:14 +00:00
parent 0f52e9fddc
commit a3e0042055
2 changed files with 55 additions and 0 deletions

View file

@ -383,6 +383,11 @@ class PressReleaseService
$previous = $pressRelease->status;
$pressRelease->update(['status' => PressReleaseStatus::Archived->value]);
// Sichtbarkeitsregel (Roadmap 1b.1/1b.5): Ein Newsroom ist öffentlich
// nur mit mindestens einer veröffentlichten Meldung. Fällt die letzte
// weg, muss auch seine Seite sofort weg — nicht erst nach Ablauf des
// Seiten-Caches.
WebCaches::forgetPublicPages();
$this->logStatusChange($pressRelease, $previous, PressReleaseStatus::Archived, null, 'admin');
}
@ -439,6 +444,10 @@ class PressReleaseService
if ($previous !== $status) {
$this->logStatusChange($locked, $previous, $status, $reason, 'admin');
}
if ($previous === PressReleaseStatus::Published && $status !== PressReleaseStatus::Published) {
WebCaches::forgetPublicPages();
}
});
$pressRelease->refresh();
@ -457,6 +466,7 @@ class PressReleaseService
'backlink_url' => null,
'no_export' => true,
]);
WebCaches::forgetPublicPages();
return;
}