Einbinden der (Handball) nuLiga-Tabellen und Spielplänen in eigene Vereins-Internet-Seiten

Wolltet ihr schon immer eine aktuelle Tabelle/Spielplan in eure eigenen Vereins-Internet-Seiten einbauen? Dann bietet sich hier die Möglichkeit dazu an.
Jede in nuLiga geführte Tabelle (im Prinzip nicht nur für Handball, sondern auch für andere Sportarten) kann mit einfachsten Mitteln in die eigene Seite eingebaut werden, angezeigt wird die Tabelle in einer platzsparenden Form, die weitgehenst an die eigenen Bedürfnisse angepasst werden kann. 

Q: Welche Grundsvoraussetzungen muss mein Webserver erfüllen?
A: <script> -Tags müssen erlaubt sein. Dies ist in den meisten Servern möglich, in Foren in der Regel allerdings nicht

Q: Sind die Tabellen aktuell?
A: Die Tabellen werden direkt von nuLiga geladen, sind also genau so aktuell, wie in nuLiga.

Q: Welche Ligen kann ich anzeigen?
A: Alle Ligen, die in nuLiga vorhanden sind. Angegeben werden sie über die nuLiga URL.

Q: Kann ich auch den Spielplan meiner Mannschaft anzeigen?
A: Ja. Dazu <div class="srsPlan" ...> verwenden.

Q: Kann ich auch den Gesamt-Spielplan meines Vereins anzeigen?
A: Ja. Dazu <div class="srsPlanVerein" ...> verwenden.

Q: Kann ich die Formatierung anpassen?
A: Ja. Bitte dazu tabellen.css laden, ändern, auf dem eigenen Server speichern, und von dort laden. Wer nicht weis, wovon ich rede, muss mit der gewählten Darstellung leben.

Q: Kann ich die Formatierung auch durch Parameter über das Script anpassen?
A: Vielleicht mache ich das ja mal, wenn die Nachfrage dazu groß genug ist. Derzeit aber nicht geplant.

Q: Kann ich die Spalten der Tabelle bestimmen?
A: Ja. Normale Tabelle und Mini-Tabelle werden ganz einfach unterstützt (siehe Beispiele). Es kann auch angegeben werden, welche Spalten in welcher Reihenfolge anzuzeigen sind (siehe Beispiele)

Q: Kann ich noch mehr selber anpassen?
A: Ja, empfehle ich aber nicht, da ihr dann mit eurer Kopie meinen Aktualisierungen selber folgen müsst. Schildert mir, was ihr anpassen wollt, vielleicht bringe ich ja das unter. Oder schickt mir eure Version, wenn die Änderung allgemeingültig sein könnte. 
Wollt ihr das aber trotzdem tun, tabellen.js kopieren, anpassen, auf dem eigenen Server speichern, und von dort laden. Auch in diesem Fall können die Tabellen über den "fetch_table" Server geladen werden. 

Q: Warum geht meine Vereinsseite in Mittelfranken oder dem Bayerischen Handballverband nach der Umstellung nicht mehr?
A: Die OpenSpource Version kommt ohne Datenbank auf dem Server aus. Damit können die alten Parameter srsKlasse, srsLiganummer, srsVerein nicht mehr auf die dafür passenden nuLiga URL-Parameter abgebildet werden. Also kann jetzt nur noch srsURL und srsClub und srsVerband zur Identifikation verwendet werden. Details siehe Beschreibung weiter unten.

SRS ist historisch als Abkürzung von Schiedsrichter-Seiten entstanden.

Staffel und Liga wird in dieser Beschreibung gleichwertig verwendet. In nuLiga besteht eine Liga aus mehreren Staffeln. Ich verwende Liga gleichwertig mit Staffel, eigentlich bezieht sich Tabelle und Spielplan immer auf eine Staffel (group in nuLiga).

Änderungen

  • 2021-03-27: Anpassung an URL und Layout Struktur von nuLiga. Tabelle nicht mehr über Team-Seite möglich. auchAK nicht mehr unterstützt
  • 2020-02-29: PHP 7.4 und Wochentag und Halle_Name_Kurz eingeführt (alles als Beitrag über Pull-Request)
  • 2019-09-09: srsAuchAK eingeführt. srsClub unterstützt auch Einschränkung auf bestimmte Ligen dieses Vereins.
  • 2019-06-23: Tennis Vereinsspielplan und Tennis Team-Tabelle geht jetz auch. Jede Tabelle kann über srsClass=xxx mit einer CSS Klasse versehen werden
  • 2019-06-10: Unterstützung für Tennis (Tabelle und Spielplan. Vereinsspielplan wird nicht unterstützt)
  • 2019-02-08: srsNeueVorne eingeführt um Vereinsspielplan verkehrt zu sortieren. Andere Sportarten als Handball duch srsSportart (zB DARTDE) eingeführt
  • 2018-07-22: Erste OpenSource Version, losgelöst von dem ursprünglichen Server
  • 2017-08-29: Link auf Spielbericht durch @sbb. Default als Link am Ergebnis.
  • Vorbereitung

    In jeder Seite müssen die folgenden Einträge vorhanden sein, um den benötigten JavaScript-Code zu laden. 

    <!-- Einbinden der CSS und JS Dateien -->
    <link rel="stylesheet" type="text/css" href="//SERVER/pfad/tabellen/tabellen.css">
    <script src="//SERVER/pfad/jquery.js" type="text/javascript"></script>
    <script src="//SERVER/pfad/tabellen.js" type="text/javascript"></script>

    Falls auf der Seite JQuery schon geladen ist, dann kann die entsprechende Zeile von oben entfernt werden.

    Falls eure eigene Seite als https aufgerufen ist, dann bitte oben entsprechend src=https:... eingeben

    Danach können beliebig viele Tabellen oder Spielpläne durch entsprechend parametrierte <div> Elemente angezeigt werden.

    Schreibweise der Parameter

    Alle Parameter haben den Aufbau srsName. Dabei ist Klein- Großschreibung egal. srsURL kann also auch als srsurl geschrieben werden.

    Das "markup" ist leider schon so alt, dass es nicht kompatible mit HTML5 ist. Manche von euch können so Schwierigkeiten haben, wenn sie in relativ neuen CMS-Systemen arbeiten.

    Alle Parameter der Form srsXYZ können auch als data-srsXYZ angegeben werden. Und natürlich auch in kompletter Kleinschreibung. Damit sollte das Ganze konform zu HTML5 sein. Das alte Format wird weiterhin unterstützt.

    Beispiel wäre in neuer Schreibweise: <div class="srsPlan" data-srsurl="..." data-srsverein="Zirndorf"></div> (alt: <div class="srsPlan" srsurl="..." srsVerein="Zirndorf"></div>)

    Tabelle einer Staffel (srsTab)

    Allgemein kann eine Tabelle folgendermaßen eingebunden werden: 
    <div class="srsTab" Parameter="Wert"></div>

    In der kürzesten Form also
    <div class="srsTab" srsurl="..."></div>

    Notwendige Parameter (die Staffel muss durch einen der folgenden Parameter gewählt werden)

    srsURL URL auf Tabelle der Liga in nuLiga.
    zB srsURL="https://bhv-handball.liga.nu/cgi-bin/WebObjects/nuLigaHBDE.woa/wa/groupPage?championship=MF+2019%2F20&group=246367"

     Optionale Parameter

    srsTitle Titel, der über der Tabelle angezeigt wird
    srsVerein Name des Vereins, dessen Zeilen in der Tabelle und in den Spielen herausgehoben werden sollen. Geht derzeit nur einer. 
    srsMiniTab Es wird eine kleine Tabelle ausgegeben, nur Platz, Mannschaft, Punkte
    Mögliche Werte: 0 (oder fehlt), 1
    srsAuchSpiele Vor und nach der Tabelle werden auch die letzten und nächsten Spiele ausgegeben
    Mögliche Werte: 0 (oder fehlt), 1
    srsKeineAK Mannschaften, die außer Konkurrenz spielen, werden nicht ausgegeben
    Mögliche Werte: 0 (oder fehlt), 1
    srsAuchAK NICHT MEHR UNTERSTÜTZT. Mannschaften, die außer Konkurrenz spielen, werden normal eingereit in der Tabelle ausgegeben
    Mögliche Werte: 0 (oder fehlt), 1
    srsKeineEx Mannschaften, die zurückgezogen haben, werden nicht ausgegeben
    Mögliche Werte: 0 (oder fehlt), 1
    srsTabellenKopf Text, der in der Kopfzeile ausgegeben wird, Spalten durch ; getrennt
    Wenn der Wert - (also srsTabellenKopf="-") ist, dann wird kein Tabellenkopf bei der Tabelle angegeben
    srsTabellenSpalten Felder, die aus dem Tabellendaten in die Spalten gesetzt werden soll. Feldnamen, oder Ausdrücke wie oben beschrieben
    srsTabellenFormat Für jede Spalte ein Wert aus (l,r,c), durch ; getrennt
    srsClass CSS Klasse für diese Tabelle. Damit kann dann sehr spezifisch mittels CSS formatiert werden. Beispiel: srsClass="myTable"

     Anzeige der Spalten selber steuern (Spaltennamen durch ";" trennen)

    <div class="srsTab" srsurl="..." srsVerein="Zirndorf" srsTabellenKopf="M;Pl" srsTabellenSpalten="Team_Kurzname;Platz" srsTabellenFormat="l;c"></div>

    Spaltennamen sind die folgenden Feldnamen: 
    Platz, Team_Kurzname, PlusPunkte, MinusPunkte, Spiele (sind die Begegnungen), SpieleGewonnen, SpieleUnentschieden, SpieleVerloren, PlusTore, MinusTore, DiffTore
    Für Tennis noch: PlusMatchPunkte, MinusMatchPunkte, PlusSaetze, MinusSaetze, PlusSpiele, MinusSpiele
    Für Tennis Team-Tabelle noch: PlusEinzel, MinusEinzel, PlusDoppel, MinusDoppel, PlusGesamt, MinusGesamt

    TabellenFormat: gibt für die Spalte an, ab links (l), rechtbündig (r), oder zentriert (c)

    Der Inhalt einer Spalte kann auch eine "Formel" sein, die sich auf eine oder mehrere Felder von oben beziehen können.

    Um die Zeit anzuzeigen, kann man also Spieldatum!11!5 verwenden.

    Dies ist natürlich nur noch den Experten vorbehalten, ist aber gar nicht so kompliziert, wie es klingt.

    Spielplan einer Staffel (srsPlan)

    Ein Spielplan einer Staffel oder einer Mannschaft kann  folgendermaßen eingebunden werden: 
    <div class="srsPlan" Parameter="Wert"></div>

    Notwendige Parameter (die Staffel muss durch einen der folgenden Parameter gewählt werden)

    srsURL URL auf Tabelle der Liga in nuLiga.
    zB srsURL="https://bhv-handball.liga.nu/cgi-bin/WebObjects/nuLigaHBDE.woa/wa/groupPage?championship=MF+2019%2F20&group=246367"
    Für Tennis ist auch die URL auf die Team-Seite möglich, dann wird der Spielplan der Mannschaft ausgegeben, und nicht der Spielplan der Liga.
    zB "https://htv.liga.nu/cgi-bin/WebObjects/nuLigaTENDE.woa/wa/teamPortrait?team=2306425&championship=TB+Mittelhessen+19&group=22"

     Optionale Parameter

    srsTitle Titel, der über dem Spielplan angezeigt wird
    srsVerein Name des Vereins, dessen Spiele angezeigt oder hervorgehoben werden sollen. Geht derzeit nur einer. 
    srsAlle Zeigt in dem Spielplan die Spiele aller Mannschaften an. Sonst werden nur die Spiele des srsVerein angezeigt.
    Mögliche Werte: 0 (oder fehlt), 1
    srsHeimGast Zeigt in dem Spielplan nur Heim- oder Auswärtsspiele an.
    =1: Nur Heimspiele anzeigen
    =2: nur Auswärtsspiele anzeigen
    andere Werte oder wenn der Parameter fehlt, schränkt nicht weiter ein. srsVerein muss dazu angegeben sein.
    srsVon und srsBis Damit kann man angeben, für welchen Zeitraum man die Spiele anzeigen will. Default ist 14/14. 
    Kann ein Datum in der Form dd.mm.yyyy sein. Oder eine Zahl, die die Anzahl der Tage relativ zu heute anzeigt. 
    srsVon=14 sagt: vor 14 Tagen, srsBis=21 sagt alles innerhalb er nächsten 21 Tage.
    TBD: gilt dies bei Plan?
    srsAktuell Zeigt in dem Spielplan nur die aktuellen Spiele an, das sind die Spiele um den aktuellen Spieltag. 
    Dies ist einfacher als von/bis, v.a. wenn die Spieltage weit auseinander liegen.
    Mögliche Werte: 0 (oder fehlt), 1
    srsNurHalle Es werden nur die Spiele ausgegeben, die in dieser Halle stattfinden. Mehrere Hallen können mit , getrennt angegeben werden. 
    Wirkt als Filter und schränkt alles was durch andere Angaben gefunden wurde, auf diese Hallen ein.
    Beispiel: srsNurHalle=OAS,230001
    Im BHV können auch Hallenkürzel verwendet werden. Sonst die Hallenbezeichnung in nuLiga.
    srsOhneHalle Halle wird im Standardausgabeformat nicht angezeigt
    srsTabellenKopf Text, der in der Kopfzeile ausgegeben wird, Spalten durch ; getrennt
    Wenn der Wert - (also srsTabellenKopf="-") ist, dann wird kein Tabellenkopf bei der Tabelle angegeben
    srsTabellenSpalten Felder, die aus dem Tabellendaten in die Spalten gesetzt werden soll. Feldnamen, oder Ausdrücke wie oben beschrieben
    srsTabellenFormat Für jede Spalte ein Wert aus (l,r,c), durch ; getrennt
    srsMaxZeilen Beschränkt die Anzahl der Zeilen (Spiele)
    srsClass CSS Klasse für diese Tabelle. Damit kann dann sehr spezifisch mittels CSS formatiert werden. Beispiel: srsClass="myTable"

    Spaltennamen sind die folgenden Feldnamen: 
    Liga_Nummer, Liga_Name_kurz, Liga_Name_lang, Spieldatum (Form 2008-05-03T17:45:00+02:00), Spieltag, SpieldatumTag (Form 2008.05.03), Wochentag, Spielnummer, HeimTeam_Name_lang, HeimTeam_Name_kurz, GastTeam_Name_lang, GastTeam_Name_kurz, Halle_Nummer, Halle_Kuerzel, Halle_Name_kurz, Halle_Abk, Punkte_Heim, Tore_Heim, Punkte_Gast, Tore_Gast, sbb
    Für Tennis noch: MatchPunkte_Heim, MatchPunkte_Gast, Saetze_Heim, Saetze_Gast, Spiele_Heim, Spiele_Gast

     

    Gesamtspielplan eines Vereins (srsPlanVerein)

    Der Gesamt-Spielplan eines Vereins kann folgendermaßen eingebunden werden:
    <div class="srsPlanVerein" Parameter="Wert"></div>

    Notwendige Parameter (der Verein muss durch srsClub und srsVerband bestimmt werden)

    srsClub nuLiga Club-Nummer des Vereins, dessen Gesamtplan ausgegeben werden soll. Ist der Wert des club Parameters in nuLiga (nicht die Vereinsnummer)
    In diesem Fall muss auch der Landesverband über srsVerband angegeben werden, sonst wird der BHV angenommen.
    Mehrere Clubs können angegeben werden, mit , getrennt
    Beispiel: <div class="srsPlanVerein" srsVerband="hvn-handball" srsClub="32402" srsAlle=0 srsVon=7 srsBis=21 ></div> 

    Pro Verein kann noch eingeschränkt werden, welche Ligen dieses Vereins eingemischt werden sollen.
    Dies geschieht durch Angabe der exakten Liga-Bezeichung aus dem Vereinsspielplan, nach einem "/". Mehrere Ligen können mit ";" getrennt angegeben werden.
    Beispiel srsClub="32402,30745/LL MB;BZL WD,30777/ÜBOL WA"
    srsVerband Nur wenn srsClub angegeben wurde. Kann für den BHV verwendet werden. Muss für andere Landesverbände angegeben werden.
    Dieser besteht aus den Zeichen ab dem // in der URL bis zum .liga.nu, also bremerhv-handball, oder hvn-handball, oder bdv-dart für Dart
    srsSportart Falls eine andere Sportart als Handball angezeigt werden soll, zB DARTDE für Dart in Deutschland.
    Dies ist in der URL (WebObjects/nuLigaDARTDE.woa/wa/) der Teil zwischen nuLiga und .woa, der dort DARTDE sein wird. Falls nicht angegeben wird HBDE (also Handball) genommen.
    Gibt es bei Tennis nicht, dort sollte man srsPlanVerein also nicht nehmen

     Optionale Parameter

    srsTitle Titel, der über dem Spielplan angezeigt wird
    srsVerein Name des Vereins, dessen Spiele angezeigt oder hervorgehoben werden sollen. Geht derzeit nur einer. 
    srsAlle Es werden alle Spiele eines Vereins der Saison angezeigt, ansonsten nur die Spiele zwei Wochen vor und nach dem aktuellen Datum. Siehe auch von und bis.
    NuLiga erlaubt nur 200 Einträge in einer Suche nach allen Spielen eines Vereins, also ist srsAlle in diesem Fall nur was für kleine Vereine.
    Mögliche Werte: 0 (oder fehlt), 1
    srsHeimGast Zeigt in dem Spielplan nur noch Heim- oder Auswärtsspiele an.
    =1: Nur Heimspiele anzeigen
    =2: nur Auswärtsspiele anzeigen
    andere Werte oder wenn der Parameter fehlt, schränkt nicht weiter ein. srsVerein muss dazu angegeben sein.
    srsVon und srsBis Damit kann man angeben, für welchen Zeitraum man die Spiele anzeigen will. Default ist 14/14. 
    Kann ein Datum in der Form dd.mm.yyyy sein. Oder eine Zahl, die die Anzahl der Tage relativ zu heute anzeigt. 
    srsVon=14 sagt: vor 14 Tagen, srsBis=21 sagt alles innerhalb er nächsten 21 Tage.
    srsNeueVorne plan wird verkehrt sortiert, also neueste Spiele sind oben. Dies ist sinnvoll bei der Anzeige der Historie.
    srsNurHalle Es werden nur die Spiele ausgegeben, die in dieser Halle stattfinden. Mehrere Hallen können mit , getrennt angegeben werden. 
    Wirkt als Filter und schränkt alles was durch andere Angaben gefunden wurde, auf diese Hallen ein.
    Beispiel: srsNurHalle=OAS,230001
    Im BHV können auch Hallenkürzel verwendet werden. Sonst die Hallenbezeichnung in nuLiga.
    srsOhneHalle Halle wird im Standardausgabeformat nicht angezeigt. 
    srsTabellenKopf Text, der in der Kopfzeile ausgegeben wird, Spalten durch ; getrennt
    Wenn der Wert - (also srsTabellenKopf="-") ist, dann wird kein Tabellenkopf bei der Tabelle angegeben
    srsTabellenSpalten Felder, die aus dem Tabellendaten in die Spalten gesetzt werden soll. Feldnamen, oder Ausdrücke wie oben beschrieben
    srsTabellenFormat Für jede Spalte ein Wert aus (l,r,c), durch ; getrennt
    srsMaxZeilen Beschränkt die Anzahl der Zeilen (Spiele)
    srsClass CSS Klasse für diese Tabelle. Damit kann dann sehr spezifisch mittels CSS formatiert werden. Beispiel: srsClass="myTable"

    Spielplan in einer Halle (srsPlanHalle)

    Um es gleich vorwegzunehmen: dies geht noch gar nicht! Es war aber eine Anforderung dazu da, und dies könnte man auf nuLiga auch einfach abbilden. Vielleicht mach ich das also irgendwann.

    In der Zwischenzeit kann man sich dadurch helfen, dass der Spielplan für einen oder mehrere Vereine (über srsClub) ausgegeben wird, dieser aber über srsNurHalle auf eine oder mehrere Hallen einschränkt. Ist nicht genau das gleiche, v.a. nicht bei Turniermodus z.B. während der Quali. 

    Links auf alle Ligen der Seite

    In eine Seite können mehrere der obigen Tabellen/Spielpläne eingefügt werden. Links zu allen diesen Tabellen werden in alle <div class="srsLinks"> eingebaut.

    Z.B. kann das so ausschauen, um drei Tabellen anzuzeigen, und über den drei Tabellen eine Link-Leiste auf die einzelnen Tabellen.
    <div class="srsLinks"></div>
    <div class="srsTab" srsurl="...BOLM"></div>
    <div class="srsTab" srsurl="...BOLF"></div>
    <div class="srsTab" srsurl="...LLFN"></div>

    Beispiele

     Anzeige einer "Mini" Tabelle (falls man wenig Platz auf seiner Seite verbrauchen möchte)

    <div class="srsTab" srsurl="..." srsVerein="Zirndorf" srsMiniTab="1"></div>

     Anzeige einer Tabelle, die auch Spiele vor und nach der Tabelle anzeigt

    <div class="srsTab" srsurl="..." srsVerein="Zirndorf" srsAuchSpiele="1"></div>

     Anzeige einer "normalen" Tabelle

    <div class="srsTab" srsurl="..." srsVerein="Buckenhofen"></div>

    Diverses

    Falls der Server unter HTTPS läuft

    Alle links, die über http://... eingebunden werden, können nicht geladen werden. Bitte in diesem Fall https:// für die Links verwenden.

    Verwendung von jQuery

    Solltet ihr auf eurer Seite jQuery schon verwenden und geladen haben, lasst doch das nochmalige Laden von meiner Seite weg. Mit etwas Glück habe ich mit eurer jQuery Version keine Probleme.