Stadionzeitung, Veranstaltungen, News-Artikel, Lightbox und Anzeigen-Verteilung
Stadionzeitung: Live-Seiten (Tabellen, Ergebnisse, Vorschau, Termine, News, Kontakt, Historie, Sportheim, Partner, Momente, Impressum), automatisches Cover, Swipe-Viewer mit Vollbildmodus und die Druckfassung als Falt-Heft. Anzeigen kommen jetzt aus dem Bestand und werden gleichmäßig verteilt, nie mehr als zwei hintereinander (vorher vier Blöcke à fünf). Die Doppelseiten-Regel rechnet das Skript selbst, statt sie von Hand zu prüfen. Veranstaltungen: Bereich /veranstaltungen mit Detailseite pro Fest, Lebenszyklus über das Datum (Ankündigung vor dem Fest, Rückblick danach), Galerie mit Lightbox. veranstaltungen.json ist dritte Termin-Quelle, damit ein Fest nie doppelt gepflegt wird. News-Artikel als dritte dynamische Prefix-Route, gemeinsamer detail-head. Behobene Fehler: - Wappen-Kontexte setzten Zeilen-Layout auf .crest statt auf die Zeile; das Wappen wurde zum Grid, Vereinsname und Tore rutschten darunter zusammen (Ergebnis-Rückblick, Vorschau, Cover). - --header-h (60px) unterschätzt die Kopfleiste um 32px (Logo 72px + 20px Versatz): neues abgeleitetes --header-space, sonst klebten Zurück-Links unter dem Logo. - base_url in der Produktions-Config ohne www, während .htaccess auf www umleitet; preflight prüft das jetzt. - .lightbox brauchte display:none mit (0,2,0), sonst lag das Overlay offen. Neue Werkzeuge: bin/anzeige-add.php (Anzeigen-Bestand), bin/veranstaltung-bilder.php (Plakate und Galerien, Alt-Texte folgen der Quelldatei), bin/qr.php (Druck-QR mit Warnung, wenn base_url nicht auf die echte Domain zeigt). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NzeVVgMCrzCDJAKeLEdKr7
This commit is contained in:
22
public/assets/js/stadionzeitung-druck.js
Normal file
22
public/assets/js/stadionzeitung-druck.js
Normal file
@@ -0,0 +1,22 @@
|
||||
/* Druckfassung der Stadionzeitung: blendet den „Jetzt drucken"-Button ein und
|
||||
bindet ihn an den Browser-Druckdialog. Progressive enhancement — ohne JS
|
||||
bleibt der Button [hidden] und der Dialog kommt wie immer über Strg/Cmd+P,
|
||||
die Druckansicht selbst ist reines server-gerendertes HTML+CSS. */
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
/* Alle lazy geladenen Bilder sofort laden: Chrome druckt Bilder, die nie
|
||||
im Sichtfeld waren, sonst als leere Flächen (Wappen, QR, Porträts —
|
||||
die großen Seiten-Bilder rendert PHP in der Druckfassung schon eager,
|
||||
das hier fängt die kleinen Bilder aus den geteilten Komponenten). */
|
||||
Array.prototype.slice.call(document.querySelectorAll('img[loading="lazy"]')).forEach(function (img) {
|
||||
img.loading = 'eager';
|
||||
});
|
||||
|
||||
Array.prototype.slice.call(document.querySelectorAll('[data-druck-print]')).forEach(function (btn) {
|
||||
btn.hidden = false;
|
||||
btn.addEventListener('click', function () {
|
||||
window.print();
|
||||
});
|
||||
});
|
||||
})();
|
||||
Reference in New Issue
Block a user