SM Floorball self-updates
Zeigt Floorball-Spiele, Tabellen und Ligen aus der Saisonmanager-API via Shortcodes an. Inoffizielles Community-Projekt, nicht von Saisonmanager/FVD betrieben.
by Kasche · github.com/jarse32/saisonmanager-wordpress-plugin · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/jarse32/saisonmanager-wordpress-plugin/archive/refs/heads/main.zipShips its own WordPress updater (Plugin Update Checker), so new versions show up under Dashboard → Updates.
Readme
SM Floorball
WordPress-Plugin für Floorball-Vereine: zeigt Spielpläne, Ergebnisse und Tabellen aus der Saisonmanager-API auf beliebigen WordPress-Seiten an – per Shortcode, ohne eigene Programmierung.
Inoffizielles Community-Projekt. Dieses Plugin steht in keiner Verbindung zum Saisonmanager oder zum Floorball Verband Deutschland e. V. Datenquelle: Saisonmanager / Floorball Verband Deutschland e. V.
Funktionen
- Liga-Tabelle, Spielplan, nächstes/letztes Spiel per Shortcode einbinden
- Vereinsübersicht: alle anstehenden und gespielten Spiele aller Teams eines Vereins auf einen Blick, über alle Wettbewerbe (Liga, Pokal, Relegation, …) hinweg – automatisch ermittelt über die Club-ID
- Team-Finder: Club-IDs, Team-IDs und Liga-IDs finden, ohne im Saisonmanager-Frontend danach suchen zu müssen
- Klick auf ein Spiel öffnet ein Modal mit Details (Ereignisse, Spielstand)
- Serverseitiges Caching, um API-Anfragen gering zu halten
Voraussetzungen
- WordPress ≥ 5.0, PHP ≥ 7.4
- Ein eigener Saisonmanager-API-Key. Beantragung unter saisonmanager.de/api-zugang (nicht-kommerzielles Vorhaben, ein Key pro Projekt/Website).
Installation
Dieses Plugin wird nicht über das offizielle WordPress-Plugin-Verzeichnis vertrieben, lässt sich aber direkt von GitHub installieren und danach ganz normal über WordPress aktualisieren.
- Auf der GitHub-Seite des Projekts auf Code → Download ZIP klicken.
- In WordPress: Plugins → Installieren → Plugin hochladen, die
heruntergeladene ZIP-Datei auswählen, hochladen, aktivieren.
(Alternativ: Ordner per SFTP nach
wp-content/plugins/kopieren.) - Unter SM Floorball (linkes Adminmenü) konfigurieren, siehe unten.
Updates
Das Plugin bringt einen Update-Checker
mit, der WordPress direkt gegen den main-Branch dieses Repositories prüfen
lässt (MIT-lizenziert, liegt in vendor/plugin-update-checker/). Sobald hier
eine neue Version veröffentlicht wird, zeigt WordPress ganz normal unter
Plugins ein "Update verfügbar" an – kein manuelles Neu-Herunterladen
nötig. Ein Update-Check lässt sich über den Link "Nach Updates suchen" auf
der Plugins-Seite jederzeit sofort auslösen (sonst alle 12 Std. automatisch).
Konfiguration
API-Key
Unter SM Floorball → Allgemeine Einstellungen den eigenen
Saisonmanager-API-Key eintragen. Der Key wird ausschließlich serverseitig als
X-Api-Key-Header verwendet – er erscheint nie im Seitenquelltext oder im
Browser der Besucher:innen.
Team-Finder
Club-IDs und Team-IDs kennt man selten auswendig. Unter SM Floorball → Team-Finder lässt sich nach Vereinsname (Teilstring reicht, z. B. "Eiche Horn") oder Saisonmanager-Club-ID suchen – durchsucht wird über alle bekannten Spielbetriebsstellen hinweg, optional für eine bestimmte Saison-ID (leer = aktuelle Saison; nützlich für historische Team-IDs vergangener Saisons, da sich Team-IDs von Saison zu Saison ändern können). Das Ergebnis zeigt die gefundene Club-ID sowie alle Teams mit ihrer ID zum Reinkopieren. Die Buttons "Aktuelle Saison"/"Vorsaison" neben dem Saison-ID-Feld füllen die richtige Nummer automatisch aus (Saisons sind fortlaufend nummeriert) – so muss man die Saison-ID nicht selbst heraussuchen, um z. B. Team-IDs der Vorsaison für historische Ergebnisse in der Vereinsübersicht zu finden.
Vereine & Teams
Unter SM Floorball → Vereine einen Verein anlegen und die per
Team-Finder gefundene Club-ID eintragen. Auf "Teams laden" klicken –
das ermittelt automatisch alle Teams dieses Vereins der aktuellen Saison
inkl. ihrer Liga-IDs (praktisch, um diese direkt in [sm_tabelle liga_id="…"]
o. ä. auf anderen Seiten zu verwenden). Kein Zeitplan, keine automatische
Aktualisierung im Hintergrund – bei Bedarf (z. B. zu Saisonbeginn oder wenn
ein neues Team gemeldet wurde) einfach erneut klicken.
Zusätzlich lassen sich einzelne Team-IDs manuell ergänzen – als Fallback für Sonderfälle, die die Club-ID-Erkennung nicht abdeckt (z. B. Spielgemeinschaften).
Shortcodes
| Shortcode | Beschreibung | Wichtigste Parameter |
|---|---|---|
[sm_tabelle liga_id="123"] |
Liga-Tabelle | liga_id, titel, logos |
[sm_spiele liga_id="123"] |
Spielplan einer Liga | liga_id, anzahl, team, modus (alle/vergangen/kommend), titel, logos |
[sm_naechstes_spiel liga_id="123"] |
Nächstes kommendes Spiel | liga_id, team, logos |
[sm_letztes_spiel liga_id="123"] |
Letztes gespieltes Spiel | liga_id, team, logos |
[sm_vereinsuebersicht verein="hannover"] |
Alle Spiele aller Teams eines Vereins | verein (Slug oder Name), anzahl |
[sm_scorer team_id="6754"] |
Scorerliste (Punkteliste) eines Teams | team_id (Pflicht), anzahl, spalten (voll/kompakt), namen (voll/abgekuerzt), titel, summe |
Die liga_id/team_id findest du über den Team-Finder oder den "Teams
laden"-Button bei einem Verein (Spalte "Liga(en)" bzw. Team-ID).
Vollständige Referenz direkt in der Admin-Oberfläche unter
SM Floorball → Shortcode-Referenz. [sm_scorer] zeigt dauerhaft
Klarnamen von Spieler:innen an – siehe
Personenbezogene Daten weiter unten, bevor du
den Shortcode einsetzt.
Hooks für Theme-Entwickler:innen
Über SM Floorball → Design lässt sich das Erscheinungsbild bereits ohne Code anpassen (siehe oben). Für Sonderfälle, die die Design-Seite nicht abdeckt, stehen folgende Filter/Templates zur Verfügung:
Eigene Templates (smf_template_path)
smf_render_template() sucht jedes Template zuerst im aktiven Child-Theme,
dann im Parent-Theme, jeweils im Unterordner saisonmanager-floorball/,
und erst danach im Plugin selbst:
wp-content/themes/<child-theme>/saisonmanager-floorball/{template}.phpwp-content/themes/<parent-theme>/saisonmanager-floorball/{template}.phpwp-content/plugins/saisonmanager-floorball/templates/{template}.php(Default)
Die Template-Namen (ohne .php) entsprechen den Dateinamen in
templates/: table, games-list, single-game, club-overview,
game-detail, scorer. Am einfachsten kopierst du die Plugin-Datei als
Ausgangspunkt in dein Theme.
Für Sonderfälle (z.B. Templates aus einem anderen Plugin laden) gibt es
zusätzlich den Filter smf_template_path:
add_filter( 'smf_template_path', function ( $file, $template, $data ) {
if ( $template === 'table' ) {
return '/pfad/zu/meinem/table.php';
}
return $file;
}, 10, 3 );
Eigene Bezeichnungen (smf_labels)
Das Plugin hat keine eigene Textdomain (siehe Umsetzungsplan) - Texte lassen
sich stattdessen über den Filter smf_labels anpassen oder übersetzen:
add_filter( 'smf_labels', function ( $labels ) {
$labels['no_games_found'] = 'No games scheduled yet.';
$labels['next_game_label'] = 'Next match';
return $labels;
} );
Verfügbare Schlüssel und ihre Standardtexte:
| Schlüssel | Standardtext |
|---|---|
games_list_title_alle |
Alle Spiele |
games_list_title_vergangen |
Vergangene Spiele |
games_list_title_kommend |
Kommende Spiele |
games_list_title_default |
Spiele |
no_games_found |
Keine Spiele gefunden. |
no_table_data |
Keine Tabellendaten verfügbar. |
game_day_prefix |
Spieltag |
time_suffix |
Uhr |
detail_link_played |
Spielbericht |
detail_link_upcoming |
Details |
single_game_btn_played |
Spielbericht ansehen |
single_game_btn_upcoming |
Details ansehen |
next_game_label |
Nächstes Spiel |
last_game_label |
Letztes Spiel |
timeline_title |
Spielverlauf |
referees_title |
Schiedsrichter |
club_overview_upcoming_title |
Anstehende Spiele |
club_overview_no_upcoming |
Keine kommenden Spiele gefunden. |
club_overview_played_title |
Letzte Ergebnisse |
club_overview_no_played |
Noch keine Ergebnisse vorhanden. |
team_side_home |
Heim |
team_side_away |
Gast |
vs_label |
vs. |
vs_label_compact |
vs |
scorer_list_title |
Scorerliste |
scorer_no_data |
Für dieses Team liegen noch keine Scorerpunkte vor. |
scorer_not_visible |
Die Scorerliste ist für dieses Team nicht verfügbar. |
scorer_names_hidden |
Die Scorerliste mit Personennamen ist in den Einstellungen deaktiviert. |
scorer_totals_label |
Team gesamt |
team_side_away z.B. auf "Auswärts" umstellen, ohne Template-Override:
add_filter( 'smf_labels', function ( $labels ) {
$labels['team_side_away'] = 'Auswärts';
return $labels;
} );
Kurze Tabellenspalten-Abkürzungen (Sp/S/SV/N/Pkt) sind bewusst nicht Teil dieses Filters - dafür reicht in der Regel eigenes CSS oder ein Template-Override. Die Pflicht-Quellenangabe (Datenquelle Saisonmanager/FVD) ist nicht überschreibbar, ihre Farbe zieht aber automatisch mit dem gewählten Design mit.
Design-Werte programmatisch anpassen (smf_design_vars)
Die auf SM Floorball → Design gespeicherte Konfiguration lässt sich vor der CSS-Ausgabe per Filter anpassen oder ergänzen - z.B. für Werte, die die UI nicht abdeckt:
add_filter( 'smf_design_vars', function ( $vars, $config ) {
$vars['--smf-color-primary'] = '#0055aa';
return $vars;
}, 10, 2 );
$vars ist das Array der finalen CSS-Variablen (Name => Wert), $config
die gespeicherte Design-Konfiguration. Der Filter läuft bei jedem
Seitenaufruf, sollte also keine teuren Berechnungen enthalten.
Sicherheit & Datenschutz
- Der API-Key verlässt den Server nie – alle Anfragen laufen serverseitig
über
wp_remote_get(). - Keine Weitergabe an Dritte: Das Plugin ruft ausschließlich die konfigurierte Saisonmanager-API-URL auf, es gibt keine weiteren Aufrufe an Drittanbieter (Tracking, Werbung o.ä.).
- Keine externen Schriften oder sonstigen Fremd-Assets – Design und Schrift werden aus dem Plugin bzw. dem Theme der Installation bedient (siehe SM Floorball → Design im Adminmenü).
Personenbezogene Daten
Das Plugin kann an zwei Stellen Namen von Spieler:innen und Schiedsrichter:innen anzeigen:
- Spieldetail (Modal, öffnet sich beim Klick auf eine Spielkarte): in der Ereignis-Chronik ("Spielverlauf") Torschütz:innen und Vorlagengeber:innen bei Toren, die bestrafte Person bei Strafzeiten, ggf. die eingesetzten Schiedsrichter:innen. Diese Namen stammen unverändert aus der Saisonmanager-API zu einem einzelnen Spiel.
- Scorerliste (
[sm_scorer], siehe Shortcode-Tabelle oben): eine dauerhafte, nach Saisonleistung sortierte Liste aller Spieler:innen eines Teams mit Namen. Anders als beim Spieldetail ist das keine beiläufige Erwähnung in einem Ereignisprotokoll, sondern eine gezielte Zusammenstellung – datenschutzrechtlich entsprechend gewichtiger.
Diese Namen sind personenbezogene Daten im Sinne von Art. 4 DSGVO und können auch minderjährige Spieler:innen betreffen, z.B. in Jugendligen. Wichtig dazu:
- Das Plugin erhebt diese Daten nicht selbst und speichert sie nicht dauerhaft. Sie stammen unverändert aus der Saisonmanager-API und werden bei Abruf lediglich kurzzeitig serverseitig zwischengespeichert (WordPress-Transient-Cache, Standarddauer 5 Minuten, unter SM Floorball → Einstellungen von 1 Minute bis 24 Stunden konfigurierbar) und danach automatisch verworfen.
- Die Einstellung "Personennamen anzeigen" unter
SM Floorball → Einstellungen steuert beide Stellen gemeinsam
(Spieldetail-Modal und
[sm_scorer]) – ein einzelner Schalter, damit eine Vereinsentscheidung nicht versehentlich nur an einer Stelle greift. Standard: aus. Ist die Option deaktiviert, gelangen keine Namen ins ausgelieferte HTML: Im Spieldetail erscheint stattdessen die Trikotnummer,[sm_scorer]zeigt einen Hinweis statt der Liste. Dieser Schalter ist bewusst nicht per Shortcode-Attribut übersteuerbar – nur die Vereinsseite (Backend) darf entscheiden, ob Namen überhaupt erscheinen.- Bestandsinstallationen (Update von einer Version vor diesem Feature): Migration setzt die Option einmalig auf "an", damit sich am bisherigen Verhalten des Spieldetail-Modals nichts ändert. Wer die Scorerliste neu einsetzt, sollte an dieser Stelle bewusst entscheiden, ob das weiterhin gewünscht ist.
- Neuinstallationen starten mit "aus" (datensparsamer Default).
- Die Einstellung "Format der Personennamen" (
volloderabgekuerzt, z.B. "Max M.", Standard:abgekuerzt) reduziert den Personenbezug, sofern Namen angezeigt werden. Im Shortcode[sm_scorer]lässt sich dieses Format pro Einbindung übernamen="voll"/namen="abgekuerzt"überschreiben – der Schalter "Personennamen anzeigen" selbst bleibt davon unberührt. - Alle übrigen vom Plugin dargestellten Daten (Team-/Vereinsnamen, Spielpläne, Ergebnisse, Tabellen) sind keine personenbezogenen Daten.
Verantwortung der nachnutzenden Vereine: Wer dieses Plugin einsetzt,
insbesondere den Shortcode [sm_scorer], muss die Anzeige von Spieler-
und Schiedsrichternamen in der eigenen Datenschutzerklärung
berücksichtigen (z.B. Datenquelle, Umgang mit Betroffenenanfragen) und
braucht dafür eine eigene Rechtsgrundlage (Art. 6 DSGVO). Dieser
Abschnitt ist keine Rechtsberatung und trifft keine Aussage darüber, auf
welcher Rechtsgrundlage die Veröffentlichung dieser Daten zulässig ist –
das zu bewerten liegt bei den Website-Betreiber:innen, ggf. in
Abstimmung mit dem eigenen Datenschutzbeauftragten. Die Optionen
"Personennamen anzeigen" (aus) und "Format der Personennamen"
(abgekürzt) machen die datensparsame Nutzung zum Standard, ersetzen aber
keine eigene Prüfung.
Lizenz
GPL-2.0+
Read the full README on GitHub →
Releases
| Tag | Published |
|---|---|
| v1.4.0 | Sep 1, 2026 |
These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.