WPWOW
Eine Sammlung von selbstgestrickten modularen Wordpress Plugins für WOW (World of Warcraft). Die Namen der Plugins sind selbstsprechend.
Gern gesehene Spende
Diese Plugins schliessen eine große Lücke, denn die vorhandenen WP-Plugins für WOW sind sehr veraltet und werden anscheinend nicht mehr gepflegt. Mit diesen Plugins aus der Serie WPWOW sollen WOW-Gilden in die Lage versetzt werden, ihre Gildenhomepage möglichst frei gestalten zu können und durch die automatischen API-Daten aktuell und attraktiv für ihre Member zu halten.
Wer findet, dass das ein Taschengeld für die Produktion dieser Plugins verdient, kann hier direkt an den Autor einen Beitrag "spenden":
wpwow-core
Das wpwow-core Plugin dient als zentrale Schnittstelle zur Battle.net API für alle WPWOW-Plugins. Es stellt die grundlegende Infrastruktur und Datenversorgung sicher, die von anderen WPWOW-Add-on-Plugins (z.B. wpwow-guildroster) benötigt wird.
Kernfunktionen:
-
API-Verbindungsmanagement:
- Herstellung und Verwaltung der Verbindung zur Battle.net API.
- Sichere Handhabung von API-Zugangsdaten (Client ID und Client Secret).
- Implementierung des OAuth 2.0 Authentifizierungsflusses zur Beschaffung und Aktualisierung von Access Tokens.
- Caching von Access Tokens und API-Antworten (mittels Transients) zur Performance-Optimierung und Vermeidung von Rate Limiting.
-
Datenbereitstellung für Add-on-Plugins:
- Bereitstellung einer globalen Funktion (
wpwow_core_api_request()) für andere WPWOW-Plugins, um standardisiert und sicher auf Battle.net API-Daten zuzugreifen. - Bereitstellung von Referenzdaten wie Klassennamen, Rassennamen und Gildenrangnamen für die Nutzung in Add-on-Plugins.
- Bereitstellung einer globalen Funktion (
Admin-Bereich:
Das Plugin bietet einen dedizierten Admin-Bereich unter der Hauptkategorie "WPWOW" im WordPress-Dashboard. Die Standardseite dieser Kategorie ist das "Dashboard".
1. Admin-Seite "Dashboard" (Standardseite unter WPWOW):
- API-Verbindungsstatus: Anzeige des aktuellen Status der Verbindung zur Battle.net API (z.B. "Verbunden", "Fehler", "Nicht konfiguriert").
- Anzahl der Rassen: Anzeige der Gesamtzahl der aus der API abgerufenen Rassen.
- Anzahl der Klassen: Anzeige der Gesamtzahl der aus der API abgerufenen Klassen.
- Tabelle mit Rassen: Eine übersichtliche Tabelle, die alle verfügbaren Rassen mit relevanten Details auflistet.
- Tabelle mit Klassen: Eine übersichtliche Tabelle, die alle verfügbaren Klassen mit relevanten Details auflistet.
2. Admin-Seite "API Settings":
- Eingabefelder für API-Zugangsdaten:
- Region: Ein Dropdown zur Auswahl der API-Region (US, EU, Korea, Taiwan).
- Locale: Ein Dropdown zur Auswahl der API-Sprache (Locale). Die verfügbaren Optionen in diesem Dropdown passen sich dynamisch an die ausgewählte Region an.
- Client ID: Textfeld zur Eingabe der Battle.net API Client ID.
- Client Secret: Passwortfeld zur Eingabe des Battle.net API Client Secrets. Das Feld bleibt aus Sicherheitsgründen nach dem Speichern leer und zeigt nur einen Platzhalter an.
- Die Felder für Client ID und Secret sind deaktiviert, wenn die Zugangsdaten über
wp-config.phpdefiniert wurden.
- API-Test Button: Ein Button, der eine Testanfrage an die Battle.net API sendet, um die Konfiguration zu überprüfen.
- Inklusive eines Ajax Loaders zur visuellen Rückmeldung während des Tests.
- Anzeige des Testergebnisses (Erfolg/Fehler).
3. Admin-Seite "Rank Names":
- Eingabefelder für Gildenrangnamen:
- Zehn separate Eingabefelder (für Ränge 0 bis 9), in denen der Benutzer benutzerdefinierte Namen für die Gildenränge eingeben kann.
- Diese Namen werden dann von anderen WPWOW-Plugins verwendet, um numerische Ränge in lesbare Bezeichnungen umzuwandeln.
4. Admin-Seite "Data Import":
- Zweck: Verwaltung des Imports großer Datensätze von der Battle.net API in die lokale WordPress-Datenbank zur Verbesserung der Performance.
- Funktionalität:
- Start-Button: Ein Button, um den Importprozess manuell zu starten (z.B. für Reittiere).
- Hintergrundverarbeitung: Der Import läuft im Hintergrund über das WordPress Cron-System, um Timeouts und Performance-Probleme zu vermeiden.
- Import von Reittier-Icons: Während des Imports wird für jedes Reittier eine zusätzliche API-Anfrage gestellt, um die URL zum Icon/Thumbnail abzurufen und in der Datenbank zu speichern.
- Statusanzeige: Eine Live-Statusanzeige, die via AJAX-Polling den Fortschritt des Imports anzeigt (z.B. "in Bearbeitung", "abgeschlossen", "Fehler", "verarbeitete Einträge / Gesamtzahl").
Admin-Menüstruktur:
- Hauptmenüpunkt: "WPWOW"
- Untermenüpunkt: "Dashboard" (Standard)
- Untermenüpunkt: "API Settings"
- Untermenüpunkt: "Rank Names"
- Untermenüpunkt: "Data Import"
wpwow-classes
Das wpwow-classes Plugin stellt einen Gutenberg-Block bereit, der detaillierte Informationen zu einer ausgewählten World of Warcraft-Klasse in einer ansprechenden "Card"-Darstellung anzeigt.
Kernfunktionen:
-
Gutenberg Block "Class Card":
- Zweck: Eine kleine, verlinkbare "Visitenkarte" für eine Klasse, ideal für Übersichtsseiten.
- Klassenauswahl: Im Block-Editor kann der Benutzer eine spielbare Klasse aus einer dynamisch geladenen Liste (Dropdown) auswählen.
- Darstellung:
- Anzeige des Klassennamens und des offiziellen Klassen-Icons.
- Anzeige des primären Ressourcentyps und einer Liste der Spezialisierungen.
- Anpassung:
- Header-Bild: Optional kann ein Bild aus der Mediathek als Kopf der Karte ausgewählt werden.
- Verlinkung: Die gesamte Karte kann auf eine beliebige URL oder eine interne Seite verlinkt werden.
- Beispiel(e): https://gens-der-allianz.de/game-play/klassen/
-
Gutenberg Block "Class Page":
- Zweck: Eine vollflächige, detaillierte Darstellung einer einzelnen Klasse, gedacht als Hauptinhalt für eine Klassenseite.
- Klassenauswahl: Identisch zur "Class Card", der Benutzer wählt eine Klasse aus einem Dropdown aus.
- Darstellung:
- Header: Ein großer Kopfbereich mit dem Klassennamen, der Klassen-ID und dem offiziellen Icon.
- Spezialisierungen: Eine detaillierte Raster-Ansicht aller Spezialisierungen der Klasse. Jede Spezialisierung wird als eigene Karte mit Icon, Name, Rolle (z.B. Tank, Heiler, Schaden) und einer ausführlichen Beschreibung von der API dargestellt.
- Beispiel: https://gens-der-allianz.de/game-play/klassen/warlock-2/
Abhängigkeiten:
- Das Plugin ist zwingend auf das
wpwow-corePlugin angewiesen, um API-Anfragen durchzuführen.
wpwow-guildactivity
Das wpwow-guildactivity Plugin soll einen Gutenberg-Block bereitstellen, der einen Feed der letzten Gildenaktivitäten anzeigt. Dies gibt Besuchern einer Gilden-Webseite einen schnellen Überblick darüber, was in der Gilde in letzter Zeit passiert ist.
Datenquelle
- API-Endpunkt: Die Daten werden vom offiziellen Battle.net API-Endpunkt
/data/wow/guild/{realm-slug}/{guild-name}/activitybezogen. - Datenumfang: Die API liefert die Aktivitäten der letzten 7 Tage. Es handelt sich also um einen "Kürzliche Aktivitäten"-Feed, nicht um ein vollständiges historisches Log.
- Datenaktualität: Die Daten werden laut API-Dokumentation aktualisiert, nachdem sich ein Charakter nach dem wöchentlichen Server-Reset ausgeloggt hat.
1. Gutenberg Block "Guild Activity Feed" (wpwow/guild-activity)
- Zweck: Das Plugin wird einen einzigen Gutenberg-Block bereitstellen, der eine chronologische Liste der letzten Gildenaktivitäten anzeigt.
- Konfiguration (Editor):
- Der Block soll, wie der "Raid Progression"-Block, primär die global in WordPress hinterlegten Gilden- und Realm-Daten (
wpwow-guildroster-settings) nutzen. - Es sollen optionale Felder im Block-Editor bereitgestellt werden, um diese globalen Einstellungen für diesen spezifischen Block zu überschreiben.
- Der Block soll, wie der "Raid Progression"-Block, primär die global in WordPress hinterlegten Gilden- und Realm-Daten (
- Darstellung (Frontend):
- Eine Liste von Ereignissen, z.B.:
- "Charaktername hat den Erfolg [Name des Erfolgs] errungen."
- "Die Gilde hat [Boss-Name] im Modus [Schwierigkeitsgrad] besiegt."
- Die Darstellung sollte optisch ansprechend sein, eventuell mit kleinen Icons für die jeweilige Aktivitätsart.
- Eine Liste von Ereignissen, z.B.:
- Beispiel: https://gens-der-allianz.de/gilde/aktivitaet/
Abhängigkeiten:
- Das Plugin ist zwingend auf das
wpwow-corePlugin angewiesen.
wpwow-guildinfo
Dieses Plugin stellt einen Gutenberg-Block dar, der die Kern-Parameter der gesetzten Gilde (wpwow-core) anzeigt:
- Realm
- Faction
- Members (count)
- Achievement Points
- Created
Dieser Block kann an passenden Stellen, z.B. in einer Sidebar oder auf der "Über uns" Seite eingesetzt werden.
Abhängigkeiten:
- Das Plugin ist zwingend auf das
wpwow-corePlugin angewiesen.
wpwow-guildroster
Das wpwow-guildroster Plugin ist ein Add-on für das wpwow-core Plugin und dient dazu, Gildeninformationen aus der Battle.net API abzurufen und in WordPress darzustellen.
Kernfunktionen:
-
Admin-Seite "Guild Roster Settings":
- Diese Seite wird als Untermenüpunkt unter der Hauptkategorie "WPWOW" im WordPress-Dashboard hinzugefügt.
- Eingabefelder:
- "Guild Name": Textfeld zur Eingabe des genauen Namens der Gilde, deren Roster angezeigt werden soll.
- "Realm": Textfeld zur Eingabe des Realms, auf dem sich die Gilde befindet.
-
Gutenberg Block "Guild Roster":
- Ein dedizierter Gutenberg-Block, der eine Tabelle mit dem Gildenroster anzeigt.
- Anzeigbare Daten pro Gildenmitglied:
- Gildenrang-Nummer (aus der API)
- Gildenrang-Name (übersetzt durch
wpwow-coreRank Names) - Name des Charakters
- Rasse des Charakters
- Klasse des Charakters
- Block-Einstellungen (im Editor):
- Filter nach Gildenrang: Eine Einstellung, die es dem Benutzer ermöglicht, entweder "Alle Ränge" anzuzeigen oder eine spezifische Gildenrang-Nummer auszuwählen, um nur Mitglieder dieses Ranges anzuzeigen (z.B. nur Offiziere).
- Datenquelle: Der Block muss die
wpwow_core_api_request()Funktion verwenden, um die Gildenroster-Daten von der Battle.net API über daswpwow-corePlugin abzurufen.
- Beispiele:
- Guild-Roster complete: https://gens-der-allianz.de/roster/
- Sub-Roster "Members": https://gens-der-allianz.de/roster/rank-7/
Abhängigkeiten:
- Das Plugin ist zwingend auf das
wpwow-corePlugin angewiesen.
wpwow-mounts
Das wpwow-mounts Plugin stellt zwei Gutenberg-Blöcke bereit, um World of Warcraft Reittierdaten anzuzeigen und zu analysieren.
1. Gutenberg Block "Mounts List" (wpwow/mounts)
- Zweck: Anzeige einer Tabelle von Reittieren, filterbar nach Fraktion.
- Konfiguration (Editor):
- Fraktion: Ein Dropdown-Menü im Block-Editor ermöglicht die Auswahl der Fraktion (Allianz, Horde). Reittiere, die für beide Fraktionen verfügbar sind (Neutral), werden immer angezeigt.
- Darstellung (Frontend):
- Reittier-Tabelle: Eine Tabelle, die alle Reittiere auflistet, die der ausgewählten Fraktion entsprechen. Die Tabelle enthält Spalten für ein Icon/Thumbnail, den Namen, die Quelle und eine Beschreibung des Reittiers.
- Thumbnail-Anzeige: Für jedes Reittier wird, falls verfügbar, ein kleines Vorschaubild direkt in der Tabelle angezeigt.
- Lightbox-Funktion: Ein Klick auf das Thumbnail öffnet eine vergrößerte Ansicht des Bildes in einer Lightbox. Unter dem vergrößerten Bild wird der Name des Reittiers als Bildunterschrift angezeigt.
- Live-Filter: Oberhalb der Tabelle befindet sich ein Dropdown-Menü, mit dem die angezeigten Reittiere sofort nach ihrer Quelle gefiltert werden können. Die Filterung erfolgt auf der Client-Seite (via JavaScript) ohne Neuladen der Seite.
- Beispiel: https://gens-der-allianz.de/game-play/mounts/
2. Gutenberg Block "Mount Statistics" (wpwow/mount-stats)
- Zweck: Anzeige einer Zusammenfassung der Reittierzahlen, die aus der Battle.net API importiert wurden.
- Konfiguration (Editor): Keine Konfiguration im Editor erforderlich. Der Block zeigt die Statistiken automatisch an.
- Darstellung (Frontend):
- Gesamtzahl der Reittiere: Zeigt die Gesamtzahl der in der Datenbank vorhandenen Reittiere an.
- Statistiken nach Fraktion: Eine Tabelle, die die Anzahl der Reittiere nach Fraktion aufschlüsselt (Allianz, Horde, Neutral).
- Statistiken nach Herkunftsquelle: Eine Tabelle, die die Anzahl der Reittiere pro Herkunftsquelle (z.B. "Achievement", "Drop", "Quest") anzeigt.
Abhängigkeiten:
- Datenimport: Beide Blöcke sind zwingend auf die vom
wpwow-corePlugin importierten Reittierdaten angewiesen. Vor der Verwendung der Blöcke muss der Administrator den "Mount Import" auf der Seite "WPWOW > Data Import" ausführen. Ohne importierte Daten können die Blöcke keine Informationen anzeigen. - Core-Plugin: Das Plugin erfordert das
wpwow-corePlugin für die grundlegende Funktionalität und Datenbankinteraktion.
wpwow-pets
Das wpwow-pets Plugin stellt zwei Gutenberg-Blöcke bereit, um World of Warcraft Haustierdaten anzuzeigen und zu analysieren.
1. Gutenberg Block "Pet List" (wpwow/pet-list)
- Zweck: Anzeige einer Tabelle von Haustieren, die aus einer bestimmten Quelle im Spiel stammen.
- Konfiguration (Editor):
- Herkunftsquelle: Ein Dropdown-Menü im Block-Editor ermöglicht die Auswahl der Herkunftsquelle der Haustiere (z.B. "DROP", "QUEST", "VENDOR", "PROFESSION"). Die Liste der verfügbaren Quellen wird dynamisch aus den importierten Haustierdaten generiert.
- Darstellung (Frontend):
- Haustier-Tabelle: Eine Tabelle, die alle Haustiere auflistet, die der ausgewählten Quelle entsprechen. Die Tabelle enthält Spalten für das Icon, den Namen und die Eigenschaften des Haustiers.
- Live-Filter: Oberhalb der Tabelle befinden sich klickbare Filter-Buttons, mit denen die angezeigten Haustiere sofort gefiltert werden können. Verfügbare Filter sind:
- "Alle" (Standard)
- "Fangbar" (Zeigt nur Haustiere, die in der Wildnis gefangen werden können)
- "Handelbar" (Zeigt nur Haustiere, die handelbar sind)
- "Kampfhaustier" (Zeigt nur Haustiere, die für Haustierkämpfe verwendet werden können)
- Die Filterung erfolgt auf der Client-Seite (via JavaScript) ohne Neuladen der Seite für eine schnelle und reaktionsschnelle Benutzererfahrung.
- Beispiel: https://gens-der-allianz.de/game-play/pets/
2. Gutenberg Block "Pet Statistics" (wpwow/pet-stats)
- Zweck: Anzeige einer Zusammenfassung der Haustierzahlen, die aus der Battle.net API importiert wurden.
- Konfiguration (Editor): Keine Konfiguration im Editor erforderlich. Der Block zeigt die Statistiken automatisch an.
- Darstellung (Frontend):
- Gesamtzahl der Haustiere: Zeigt die Gesamtzahl der in der Datenbank vorhandenen Haustiere an.
- Statistiken nach Eigenschaft: Eine Tabelle, die die Anzahl der Haustiere nach folgenden Eigenschaften aufschlüsselt:
- "Fangbar"
- "Handelbar"
- "Kampfhaustiere"
- Statistiken nach Herkunftsquelle: Eine Tabelle, die die Anzahl der Haustiere pro Herkunftsquelle (z.B. "Achievement", "Drop", "Store") anzeigt.
Abhängigkeiten:
- Datenimport: Beide Blöcke sind zwingend auf die vom
wpwow-corePlugin importierten Haustierdaten angewiesen. Vor der Verwendung der Blöcke muss der Administrator den "Pet Import" auf der Seite "WPWOW > Data Import" ausführen. Ohne importierte Daten können die Blöcke keine Informationen anzeigen. - Core-Plugin: Das Plugin erfordert das
wpwow-corePlugin für die grundlegende Funktionalität und Datenbankinteraktion.
wpwow-raidprogress
Dieser Gutenberg-Block zeigt den Raid-Progress des jeweils aktiven Contents an.
Beispiel: https://gens-der-allianz.de/raid/