TeamSL Ligaspielplan als JSON
-
Weiß’te ick versteh et niet! … Da macht der DBB die Spielpläne und Ligainfos aller Ligen öffentlich, bietet aber keine vernünftige Schnittstelle für Webseiten an. Nur CSV export oder dreitausend-mal klick-dich-lick mit Hallen-Adressinfos nur in einer onMouseOver popup Bubble, meine F§($% … ist da noch zeitgemäß oder ist das schon abgelaufen ??
Hey ich hab Ferien und hab es mich mal an der Strandbar mit nem läppy gemüdlich gemacht und dabei ist ein kleiner Link rausgekommen, der dir aus dem Spielplan einer beliebigen Liga in TeamSL einen JSON String baut, so also per AJAX in deine Webseite geladen und dort JS mäßig weiter verarbeitet werden kann.
Wenn du nur böhmische Dörfer verstehst, ist das nicht schlimm, vergiss was ich gesagt habe, wenn du mit dem gesagtem was anfangen kannst, brauchst du jetzt nur noch die Liga ID aus TeamSL … und den link …
NEIN es ist leider nicht die Liga-Nummer, die ihr zum Spielergebnismelden per SMS braucht, sondern dummerweise eine andere … und zwar findet ihr sie in dem URL Query-String unter dem Parameternamen liga_id …
Die Herren RL West hat zum Bleistift die liga_id 17018
hier der link, der sieht für die besagte RLW so aus:
http://al3x.de/bball.php?action=fix&liga=17018
die Aktion “fix” steht für fixtures also Spielplan, in Schritt 2 und 3 sind natürlich noch parser-actions für Ergebnisse und Tabellen geplant … aber hey mein Keyboard verträgt halt nur soviel Bier am Abend …
der JSON string decoded ergibt ein multidimensionales Array, welches die Tabelle der TeamSL Webseite widerspiegelt, dann aber um ein Element erweitert, in dem sich ein assoc-array befindet, in dem die Daten aus dem Hallen-Adress-Tool-Tip stehen.
Bsp.:
array(182) {
[1]=>
array(8) {
[0]=>
string(1) “1”
[1]=>
string(1) “1”
[2]=>
string(16) “03.09.2015 20:30”
[3]=>
string(10) “BSV Wulfen”
[4]=>
string(16) “BSG Grevenbroich”
[5]=>
string(26) “SH der Gesamtschule Wulfen”
[6]=>
string(0) “”
[7]=>
array(5) {
[“Bezeichnung”]=>
string(26) “SH der Gesamtschule Wulfen”
[“Kurzname”]=>
string(7) “406A181”
[“Strasse”]=>
string(16) “Wulfener Markt 2”
[“PLZ”]=>
string(5) “46286”
[“Ort”]=>
string(7) “Dorsten”
}
}
[2]=> …Oh die Keys des Arrays sind gleich die Spielnummer, ich dachte das wäre eine gute Idee, jetzt bin ich mir nicht mehr sooo sicher, weil einige LVs recht eigenwillige Spielnummern vergeben … but what the heck it’s just a hack …
hope u like it
best swishes
-
update:
also die Spielnummer ist nicht mehr key in der Spielansetzungsansicht, und die Ansicht fuer Tabelle und Ergebnisse funktionieren auch. Die Eintraege sind jetzt entsprechend nach TeamSL Vorgabe sortiert, also Ergebnisse und Ansetzungen nach Datum
Beispiel-Links zur 1.RL West
Spielansetzungen (aktuell keine): http://al3x.de/bball.php?action=fix&liga=17018
Tabelle: http://al3x.de/bball.php?action=tab&liga=17018
Ergebnisse: http://al3x.de/bball.php?action=res&liga=17018
Anwendungsbeispiele, z.B. bootstap tabellen folgen
in der NRW u18 wird noch gespielt, Liga-ID ist 16807
-
Könnte manauch so etwas bauen:?
- Übersicht über die anstehenden Spiele ALLER Mannschaften EINES Vereins, z.B. am einem Wochenende oder innerhalb einer Woche
- Übersicht über die aktuellen Spielergebnisse ALLER Mannschaften EINES Vereins, z.B. am einem Wochenende oder innerhalb einer Woche
-
Punkt 1: Ja, weil TeamSL ja eine Uebersicht bereitstellt ueber alle Spiele eines Vereins. Die Daten einmal in JSON eingelesen kann man auf seiner eigenen Webseite mittels JavaScript durchsuchen und filtern.
Punkt 2: prinzipiel auch JA, ABER! aber TeamSL bietet solch eine Liste/Uebersicht nicht an, ergo muesste man durch eine Liste der in Frage kommenden Mannschaften durch iterieren und das dann zusammenbauen. Etwas aufwendiger.
-
so da haste … auf Basis des ersten Scripts, die vorhandene Liste ALLER SPIELE EINES VEREINS aus TeamSL als JSON:
http://al3x.de/spielplan.php?club=[DBB_VEREINS_NR]
=============
Beispiel ETB Essen VereinsNr 1121101 –-------> http://al3x.de/spielplan.php?club=1121101
=============
Beispiel BBC Berlin VereinsNr 0300903 –-------> http://al3x.de/spielplan.php?club=0300903
=============