Stadionzeitung: Ausgabe 19.09., Gegnerseiten ohne Fest, Gegner-Kurzname
Gegnerseiten lassen sich jetzt ueber `gegner_teams` auch ohne Veranstaltung fuer weitere Mannschaften anlegen (Fenster zwei Tage vor bis drei Tage nach dem Ausgabedatum, auch auswaerts), und `opponent_short` liefert den gedruckten Anzeigenamen, waehrend `opponent` die BFV-Schreibweise fuer den Namensvergleich behaelt. Dazu die Ausgabe zum Heimspiel gegen Wirsberg/Kupferberg als Entwurf samt Seitenbildern. Die gemeinsamen QR-Codes sind neu erzeugt (die vendorte Bibliothek arbeitet nicht reproduzierbar, das Maskenmuster wechselt). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Hv9SGDu3m3diiPrW9Fmj3v
This commit is contained in:
@@ -202,6 +202,11 @@ $oldAufruf = $oldIssue['aufruf'] ?? null;
|
||||
// Turnierpläne, Gegnerseiten je Heimspiel) und Cover-Kennung — chat-gepflegt.
|
||||
$oldVeranstaltung = $oldIssue['veranstaltung'] ?? null;
|
||||
$oldCover = $oldIssue['cover'] ?? null;
|
||||
// Anzeigename des Gegners fürs Cover und die Liste ("Wirsberg/Kupferberg" statt
|
||||
// der BFV-Zeile) und die Liste der Mannschaften, die zusätzlich eine
|
||||
// Gegnerseite bekommen — beides Chat-Pflege, überlebt erneute Läufe wie vorwort.
|
||||
$oldOpponentShort = $oldIssue['opponent_short'] ?? null;
|
||||
$oldGegnerTeams = is_array($oldIssue['gegner_teams'] ?? null) ? array_values($oldIssue['gegner_teams']) : null;
|
||||
$veranstaltung = null;
|
||||
if (is_string($oldVeranstaltung) && $oldVeranstaltung !== '') {
|
||||
$veranstaltung = veranstaltung_find($oldVeranstaltung);
|
||||
@@ -376,13 +381,22 @@ try {
|
||||
// dieselbe Funktion, aus der stadionzeitung_build_snapshot() die Daten baut,
|
||||
// damit nie eine Seite ohne Daten oder Daten ohne Seite entstehen.
|
||||
$gegnerSeiten = [];
|
||||
foreach (stadionzeitung_gegner_fixtures([
|
||||
$gegnerFixtures = stadionzeitung_gegner_fixtures([
|
||||
'date' => $date, 'team_key' => $teamKey, 'opponent' => $opponent,
|
||||
'veranstaltung' => $oldVeranstaltung,
|
||||
]) as $gegnerTeam => $fixture) {
|
||||
'veranstaltung' => $oldVeranstaltung, 'gegner_teams' => $oldGegnerTeams ?? [],
|
||||
]);
|
||||
foreach ($gegnerFixtures as $gegnerTeam => $fixture) {
|
||||
$gegnerSeiten[] = $live('gegner', ['team' => (string) $gegnerTeam]);
|
||||
$log("Gegnerseite {$gegnerTeam}: {$fixture['opponent']} ({$fixture['date']}).");
|
||||
}
|
||||
// Eine benannte Mannschaft ohne Spiel im Fenster bekommt keine Seite. Das ist
|
||||
// richtig so, darf aber nicht stillschweigend passieren: ein Tippfehler im
|
||||
// Team-Key sähe genauso aus wie ein spielfreies Wochenende.
|
||||
foreach ($oldGegnerTeams ?? [] as $gewuenscht) {
|
||||
if (!isset($gegnerFixtures[(string) $gewuenscht])) {
|
||||
$log("gegner_teams: '{$gewuenscht}' hat kein Spiel im Fenster um {$date} (oder der Team-Key ist falsch) — keine Gegnerseite.", 'WARN');
|
||||
}
|
||||
}
|
||||
if ($gegnerSeiten === []) {
|
||||
// Ohne Treffer (Gegner leer) bleibt die Seite der tragenden Mannschaft —
|
||||
// sie meldet dann selbst, dass keine Vergleichsdaten vorliegen.
|
||||
@@ -425,7 +439,7 @@ try {
|
||||
if ($rueckseite !== null) {
|
||||
$bloecke[] = [
|
||||
'name' => 'rueckseite',
|
||||
'seiten' => [$bild($rueckseite, 'rueckseite', "Rückseite der Stadionzeitung gegen {$opponent}")],
|
||||
'seiten' => [$bild($rueckseite, 'rueckseite', "Rückseite der Stadionzeitung gegen " . stadionzeitung_opponent_display(['opponent' => $opponent, 'opponent_short' => $oldOpponentShort]))],
|
||||
'anzeigen_danach' => false,
|
||||
];
|
||||
}
|
||||
@@ -734,6 +748,8 @@ if ($oldIssue !== null && ($oldIssue['status'] ?? '') === 'veroeffentlicht') {
|
||||
$issues[] = [
|
||||
'slug' => $slug,
|
||||
'opponent' => $opponent,
|
||||
'opponent_short' => $oldOpponentShort,
|
||||
'gegner_teams' => $oldGegnerTeams,
|
||||
'date' => $date,
|
||||
'team_key' => $teamKey,
|
||||
'status' => 'entwurf',
|
||||
|
||||
Reference in New Issue
Block a user