WP Manifestindependent plugin directory
manifest / events / saisonmanager-wordpress-plugin

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

0stars
0forks

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.zip

Ships 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.

  1. Auf der GitHub-Seite des Projekts auf Code → Download ZIP klicken.
  2. In WordPress: Plugins → Installieren → Plugin hochladen, die heruntergeladene ZIP-Datei auswählen, hochladen, aktivieren. (Alternativ: Ordner per SFTP nach wp-content/plugins/ kopieren.)
  3. 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:

  1. wp-content/themes/<child-theme>/saisonmanager-floorball/{template}.php
  2. wp-content/themes/<parent-theme>/saisonmanager-floorball/{template}.php
  3. wp-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" (voll oder abgekuerzt, z.B. "Max M.", Standard: abgekuerzt) reduziert den Personenbezug, sofern Namen angezeigt werden. Im Shortcode [sm_scorer] lässt sich dieses Format pro Einbindung über namen="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

TagPublished
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.