Files
fs a101b0c3ec 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
2026-07-31 14:55:27 +02:00

3 lines
5.6 KiB
JavaScript

(()=>{var i=Object.defineProperty;var t=(a,o)=>i(a,"name",{value:o,configurable:!0});var e={};e.strings={addMore:"Dodaj jo\u0161",addMoreFiles:"Dodaj jo\u0161 datoteka",addingMoreFiles:"Dodavanje datoteka",allowAccessDescription:"Molimo Vas, dozvolite pristup Va\u0161oj kameri, kako biste mogli da je koristite za snimanje fotografija i video zapisa.",allowAccessTitle:"Molimo Vas, dozvolite pristup Va\u0161oj kameri",authenticateWith:"Pove\u017Ei se putem %{pluginName}",authenticateWithTitle:"Molimo Vas da se prijavite putem %{pluginName} kako biste preuzeli datoteke",back:"Nazad",browse:"potra\u017Ei",browseFiles:"potra\u017Ei",cancel:"Otka\u017Ei",cancelUpload:"Otka\u017Ei otpremanje",chooseFiles:"Izaberi datoteke",closeModal:"Zatvori",companionError:"Neuspelo povezivanje sa Companion",complete:"Otpremljeno",connectedToInternet:"Povezan na internet",copyLink:"Sastavi link",copyLinkToClipboardFallback:"Kopiraj (sa\u010Duvaj) donji URL",copyLinkToClipboardSuccess:"Link je kopiran u klipbord",creatingAssembly:"Pripremanje otpremanja...",creatingAssemblyFailed:"Transloadit: ne mogu da napravim Assembly",dashboardTitle:"Otpremanje datoteka",dashboardWindowTitle:"Prozor za otpremanje datoteka (pritirnite ESC za izlaz)",dataUploadedOfTotal:"%{complete} od %{total}",done:"Zavr\u0161eno",dropHereOr:"Spusti datoteke ovde ili %{browse}",dropHint:"Spusti datoteke ovde",dropPasteBoth:"Spusti datoteke ovde, umetni ili %{browse}",dropPasteFiles:"Spusti datoteke ovde, umetni ili %{browse}",dropPasteFolders:"Spusti datoteke ovde, umetni ili %{browse}",dropPasteImportBoth:'Spusti datoteke ovde, umetni (eng. "paste"), %{browse} ili preuzmi sa',dropPasteImportFiles:'Spusti datoteke ovde, umetni (eng. "paste"), %{browse} ili preuzmi sa',dropPasteImportFolders:'Spusti datoteke ovde, umetni (eng. "paste"), %{browse} ili preuzmi sa',editFile:"Izmeni datoteku",editing:"Menjanje %{file}",emptyFolderAdded:"Ni jedna datoteka nije dodata iz praznog foldera",encoding:"\u0160ifrovanje...",enterCorrectUrl:"Pogre\u0161an URL: unesite ta\u010Dnu putanju do datoteke",enterUrlToImport:"Unesite URL (putanju) do datoteke",exceedsSize:"Ova datoteka prema\u0161uje najve\u0107u dozvoljenu veli\u010Dinu od %{size}",failedToFetch:"Companion nije uspeo da dopre do date adrese (URL), proverite ispravnost adrese",failedToUpload:"Broj neuspelo otpremljenih datoteka: %{file}",fileSource:"Datoteka: %{name}",filesUploadedOfTotal:{0:"%{complete}. Ukupno otremljenih datoteka: %{smart_count}",1:"%{complete}. Ukupno otremljenih datoteka: %{smart_count}",2:"%{complete}. Ukupno otremljenih datoteka: %{smart_count}"},filter:"Filter",finishEditingFile:"Zavr\u0161i menjanje fajla",folderAdded:{0:"Broj datoteka preuzetih iz %{folder}: %{smart_count}",1:"Broj datoteka preuzetih iz %{folder}: %{smart_count}",2:"Broj datoteka preuzetih iz %{folder}: %{smart_count}"},import:"Preuzmi",importFrom:"Preuzmi sa %{name}",loading:"U\u010Ditavam...",logOut:"Odjava",myDevice:"Moj ra\u010Dunar ili mobilni ure\u0111aj",noFilesFound:"Ovde nema foldera ili datoteka",noInternetConnection:"Nema veze sa internetom",pause:"Zaustavi privremeno",pauseUpload:"Privremeno zaustavi otpremanje",paused:"Privremeno zaustavljeno",poweredBy:"Otpremanje pokre\u0107e %{uppy}",processingXFiles:{0:"Obrada datoteke",1:"Broj datoteka koje se obra\u0111uju: %{smart_count}",2:"Broj datoteka koje se obra\u0111uju: %{smart_count}"},removeFile:"Ukloni dadoteku",resetFilter:"Izbri\u0161i filter",resume:"Nastavi",resumeUpload:"Nastavi otpremanje",retry:"Poku\u0161aj ponovo",retryUpload:"Poku\u0161aj ponovo da otpremi\u0161",saveChanges:"Sa\u010Duvaj izmene",selectX:{0:"Izaberi datoteku",1:"Izaberi %{smart_count}",2:"Izaberi %{smart_count}"},smile:"Osmeh!",startRecording:"Zapo\u010Dni snimanje video zapisa",stopRecording:"Zaustavi snimanje video zapisa",takePicture:"Snimi fotografiju",timedOut:"Prekidamo otpremanje jer je zastalo. Broj sekundi zastoja: %{seconds}.",upload:"Otpremi",uploadComplete:"Otpremanje je zavr\u0161eno u celosti",uploadFailed:"Otpremanje nije uspelo",uploadPaused:"Otpremanje je privremeno zaustavljeno",uploadXFiles:{0:"Otpremi datoteku",1:"Otpremi datoteke. Ukupno: %{smart_count}",2:"Otpremi datoteke. Ukupno: %{smart_count}"},uploadXNewFiles:{0:"Otpremi +%{smart_count} datoteku",1:"Otpremi datoteke. Ukupno: +%{smart_count}",2:"Otpremi datoteke. Ukupno: +%{smart_count}"},uploading:"Otpremanje",uploadingXFiles:{0:"Broj datoteka koje se trenutno otpremaju: %{smart_count}",1:"Broj datoteka koje se trenutno otpremaju: %{smart_count}",2:"Broj datoteka koje se trenutno otpremaju: %{smart_count}"},xFilesSelected:{0:"Broj datoteka za otpremanje: %{smart_count}",1:"Broj datoteka za otpremanje: %{smart_count}",2:"Broj datoteka za otpremanje: %{smart_count}"},xMoreFilesAdded:{0:"Broj dodatih datoteka: %{smart_count}",1:"Broj dodatih datoteka: %{smart_count}",2:"Broj dodatih datoteka: %{smart_count}"},xTimeLeft:"Preostalo vreme %{time} ",youCanOnlyUploadFileTypes:"Mo\u017Eete da otpremite samo: %{types}",youCanOnlyUploadX:{0:"Dozvoljeni broj datoteka za otpremanje: %{smart_count}",1:"Dozvoljeni broj datoteka za otpremanje: %{smart_count}",2:"Dozvoljeni broj datoteka za otpremanje: %{smart_count}"},youHaveToAtLeastSelectX:{0:"Izaberite bar jednu datoteku",1:"Izaberite datoteke. Najmanje: %{smart_count}",2:"Izaberite datoteke. Najmanje: %{smart_count}"},selectFileNamed:"Izaberite fajl %{name}",unselectFileNamed:"Isklju\u010Dite fajl %{name}",openFolderNamed:"Otvori folder %{name}"};e.pluralize=t(function(o){return o===1?0:1},"pluralize");typeof window<"u"&&typeof window.Uppy<"u"&&(window.Uppy.locales.sr_RS_Latin=e);var n=e;})();
//# sourceMappingURL=sr_RS_Latin.min.js.map