Widgets
Der Widget Bereich besteht aktuell aus einer Vorschau und entsprechenden Selector. Es gibt aktuell 12 Widget-Typen zur Auswahl, welche sich von einader Unterscheiden.
Technische Vorraussetzung
Um das Widget ein darstellen zu können müssen folgenden Bediendungen erfüllt sein. Eine entsprechden API-Instanz, welche auf den Mandanten (Id) eingerichtet ist. Die API Calls finden in der Datei types/index.ts statt. Eingebunden in der index.html
<script src="/src/types/index.ts" type="module"></script><script src="/src/types/index.ts" type="module"></script>Tabelle nach Spieltag
Der erste Widget-Typ ist die Table einer Liga. Als Parameter kann der Spiel mit geliefert werden. In dem View wird folgenden Action des PiniaStates getriggert. Die API liefert entsprechend ein HTML, welches die Tabelle darstellt.
var url = `/api/v1.0/${paperId}/public/widget/table/${leagueId}/${seasonId}/${matchDay}/${paperId}/1`;var url = `/api/v1.0/${paperId}/public/widget/table/${leagueId}/${seasonId}/${matchDay}/${paperId}/1`;Für die Heimtabelle und für die Auswärtstabelle
var url = `/api/v1.0/${paperId}/public/widget/table/home/${leagueId}/${seasonId}/${matchDay}/${paperId}/1`;
var url = `/api/v1.0/${paperId}/public/widget/table/away/${leagueId}/${seasonId}/${matchDay}/${paperId}/1`;var url = `/api/v1.0/${paperId}/public/widget/table/home/${leagueId}/${seasonId}/${matchDay}/${paperId}/1`;
var url = `/api/v1.0/${paperId}/public/widget/table/away/${leagueId}/${seasonId}/${matchDay}/${paperId}/1`;Spielplan nach Liga
Dieser Widget-Typ zeigt den Spielplan einer Liga an. Diese ist Spieltags bezogen daher gibt es den Parameter Match-Day.
var url = `/api/v1.0/${paperId}/public/widget/league/matches/${paperId}/${leagueId}/${seasonId}/${matchDay}`;var url = `/api/v1.0/${paperId}/public/widget/league/matches/${paperId}/${leagueId}/${seasonId}/${matchDay}`;Spielplan nach Team
Hier werden alle Spiele zum Team in der Saison angezeigt. Dieses Widget ist allerdings Wettbewerbsabhängig.
var url = `/api/v1.0/${paperId}/public/widget/team/matches/season/${paperId}/${leagueId}/${teamId}/${seasonId}/1970-01-01/0`;var url = `/api/v1.0/${paperId}/public/widget/team/matches/season/${paperId}/${leagueId}/${teamId}/${seasonId}/1970-01-01/0`;Torschützenliste
Die besten Torschützen eines Wettbewerbs.
var url = `/api/v1.0/${paperId}/public/widget/league/topgoaler/${paperId}/${leagueId}/${seasonId}/${matchDay}`;var url = `/api/v1.0/${paperId}/public/widget/league/topgoaler/${paperId}/${leagueId}/${seasonId}/${matchDay}`;Liveticker Übersicht
Hier tauchen alle Liveticker zum heutigen Tag auf.
var url = `/api/v1.0/${paperId}/public/widget/liveticker/overview`;var url = `/api/v1.0/${paperId}/public/widget/liveticker/overview`;Liveticker der Liga
Alle Liveticker einer Liga.
var url = `/api/v1.0/${paperId}/public/widget/liveticker/league/${leagueId}`;var url = `/api/v1.0/${paperId}/public/widget/liveticker/league/${leagueId}`;Liveticker zum Spiel
Ein Liveticker zu einem spezifischem Spiel.
var url = `/api/v1.0/${paperId}/public/widget/liveticker/match/${matchId}`;var url = `/api/v1.0/${paperId}/public/widget/liveticker/match/${matchId}`;Turnier Ansicht
Das Tunier Widget, welches ein komplettes Turnier abbildet.
var url = `/api/v1.0/${paperId}/public/widget/tournament/overview/${paperId}/${tournamentId}`;var url = `/api/v1.0/${paperId}/public/widget/tournament/overview/${paperId}/${tournamentId}`;Spielkalender
Dieser Widget-Typ zeigt alle Spiele zum Kunden an. Parameter hierbei kann das Datum sein.
var url = `/api/v1.0/${paperId}/public/widget/matches/calendar/${paperId}`;var url = `/api/v1.0/${paperId}/public/widget/matches/calendar/${paperId}`;Diesen Typ gibt es auch für einen einzelnen Wettbewerb.
var url = `/api/v1.0/${paperId}/public/widget/league/matches-calendar/${paperId}/${leagueId}?date=${matchDate}`;var url = `/api/v1.0/${paperId}/public/widget/league/matches-calendar/${paperId}/${leagueId}?date=${matchDate}`;Spieldetail
Die Detail Anischt eines Spiel´s vorher und nach dem das Spiel gelaufen ist.
var url = `/api/v1.0/${paperId}/public/widget/match/pre/${paperId}/${matchId}?date=${matchDate}&type=${nav}`;
var url = `/api/v1.0/${paperId}/public/widget/match/after/${paperId}/${matchId}?date=${matchDate}&type=${nav}`;var url = `/api/v1.0/${paperId}/public/widget/match/pre/${paperId}/${matchId}?date=${matchDate}&type=${nav}`;
var url = `/api/v1.0/${paperId}/public/widget/match/after/${paperId}/${matchId}?date=${matchDate}&type=${nav}`;Anfrage an die Instanz
Sobald einer der Widget-Typ ausgewählt wurden wird im nächsten Schritt die API-Anfrage gestellt. Dies geschieht via fetch und sieht folgend aus.
fetch(window._spmwidget.baseurl + url).then((res) => {
res.json().then((data) => {
container.innerHTML = data.html;
window._spmwidget.nodeScriptReplace(container);
});
});fetch(window._spmwidget.baseurl + url).then((res) => {
res.json().then((data) => {
container.innerHTML = data.html;
window._spmwidget.nodeScriptReplace(container);
});
});Der Container wird in diesem Fall mit dem entsprechenden Ergebnis der API ausgefüllt. Hier bei erscheint dann das Widget in der Preview.