BRK Impressum Generator
Automatische Impressum-Generierung für WordPress Multisite-Unterseiten basierend auf BRK Facilities-Daten
by Daniel Weidner, AG IT der Wasserwacht Bayern (+AI) · github.com/weidnerd/brk-impressum · 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/weidnerd/brk-impressum/archive/refs/heads/main.zipWordPress Multisite (MU) Plugin für die automatische Generierung von Impressum-Seiten für BRK-Unterseiten.
Beschreibung
Dieses Plugin ermöglicht es WordPress Multisite-Unterseiten, automatisch ein vollständiges Impressum zu erstellen, basierend auf:
- Daten aus der BRK Facilities API (
https://api.brk.id/api/v1/assets/facility.json) - Individuellen Angaben zum Seiten-Verantwortlichen
Features
- ✅ Automatisches Laden von Verband/Einrichtungs-Daten
- ✅ Einfaches Backend-Formular für Konfiguration
- ✅ Live-Vorschau des generierten Impressums
- ✅ Ein-Klick-Übernahme zur Erstellung/Aktualisierung der Impressum-Seite
- ✅ Shortcode-Unterstützung
[brk_impressum] - ✅ Footer-Link-Erkennung und automatische Aktualisierung (YooTheme Builder)
- ✅ Status-Anzeige für Impressum-Link im Footer
- ✅ Caching für bessere Performance
- ✅ REST API für flexible Integration
- ✅ Multisite-ready
Installation
Als MU-Plugin (empfohlen)
- Laden Sie den gesamten Plugin-Ordner in
wp-content/mu-plugins/hoch - Das Plugin wird automatisch aktiviert und steht allen Sites zur Verfügung
Als normales Plugin
- Laden Sie den Plugin-Ordner in
wp-content/plugins/hoch - Aktivieren Sie das Plugin im WordPress-Backend
- Bei Multisite: Netzwerkweit aktivieren
Verwendung
Backend-Konfiguration
- Gehen Sie zu Einstellungen > BRK Impressum
- Wählen Sie Ihren Verband/Ihre Einrichtung aus der Dropdown-Liste
- Geben Sie die Daten des Seiten-Verantwortlichen ein:
- Name (Pflichtfeld)
- Funktion (optional)
- E-Mail-Adresse (Pflichtfeld)
- Klicken Sie auf "Vorschau anzeigen" um das Impressum zu prüfen
- Klicken Sie auf "Impressum übernehmen" um die Seite zu erstellen/aktualisieren
Footer-Link-Verwaltung (YooTheme)
Das Plugin erkennt automatisch Impressum-Links in YooTheme Builder Widgets:
-
Status-Anzeige: Zeigt an ob ein korrekter Impressum-Link im Footer vorhanden ist
- ✓ Ja - Der Footer-Link zeigt auf das Impressum
- ✗ Falsch - Der Footer-Link zeigt auf eine falsche Seite
- ✗ Nein - Kein Impressum-Link im Footer gefunden
-
Automatische Aktualisierung: Klicken Sie auf "Impressum in Footer übernehmen"
- Sucht nach Navigations-Elementen mit dem Text "Impressum"
- Aktualisiert nur diesen spezifischen Link auf
/impressum - Lässt alle anderen Links (Datenschutz, externe Links etc.) unberührt
Hinweis: Diese Funktion arbeitet nur mit YooTheme Builder Widgets in der "Bottom"-Sidebar.
Impressum anzeigen
Das Impressum wird automatisch unter /impressum verfügbar gemacht.
Alternative: Shortcode
Sie können das Impressum auch auf jeder beliebigen Seite mit dem Shortcode einbinden:
[brk_impressum]
Datenstruktur
Die API liefert aktuell ein Array mit englischen Feldnamen. Das Plugin normalisiert diese intern auf das bisherige Schluesselschema.
[
{
"id": "000",
"name": "Landesgeschäftsstelle",
"title": "Bayerisches Rotes Kreuz Landesgeschäftsstelle",
"level": "Landesverband",
"address": {
"street": "Bauernfeindstraße 17",
"zip": "80939",
"city": "München"
},
"contact": {
"phone": "+49 89 9241-0",
"email": "info@brk.de",
},
"board": {
"name": "Hans-Michael Weisky",
"role": "Präsident"
},
"management": {
"name": "Robert Augustin",
"role": "Landesgeschäftsführer",
"phone": "+49 89 9241-1327"
}
}
]
Interne Zuordnung (beispielhaft):
level->ebeneaddress.street->anschrift.strassecontact.phone->kontakt.telefonboard.role->vorstand.funktionmanagement.role->geschaeftsfuehrung.funktion
API-Endpunkte
Das Plugin stellt folgende REST API Endpunkte bereit:
GET /wp-json/brk-impressum/v1/facilities
Gibt alle verfügbaren Facilities zurück.
Berechtigung: manage_options
POST /wp-json/brk-impressum/v1/preview
Generiert eine Vorschau des Impressums.
Berechtigung: manage_options
Parameter:
{
"facility_id": "123",
"responsible_name": "Max Mustermann",
"responsible_function": "Webmaster",
"responsible_email": "max@example.com"
}
POST /wp-json/brk-impressum/v1/save
Speichert die Einstellungen und erstellt/aktualisiert die Impressum-Seite.
Berechtigung: manage_options
Parameter: Wie bei /preview
Cache-Verwaltung
Die Facilities-Daten werden für 24 Stunden gecacht. Sie können den Cache manuell aktualisieren:
- Im Backend über den Button "Daten jetzt aktualisieren"
- Programmatisch:
BRK_Facilities_Loader::get_instance()->refresh_cache()
Automatische Updates
Das Plugin aktualisiert automatisch alle Impressum-Seiten, wenn sich die Facilities-Daten ändern:
- Tägliche Aktualisierung: Ein WP-Cron-Job lädt die Facilities-Daten einmal pro Tag neu
- Änderungserkennung: Nur wenn sich die JSON-Inhalte wirklich geändert haben (Hash-Vergleich), werden die Impressum-Seiten im Netzwerk neu generiert
- Nach manuellem Refresh: Auch bei "Daten jetzt aktualisieren" gilt dieselbe Änderungserkennung
Dies stellt sicher, dass alle Unterseiten immer die aktuellsten Daten aus https://api.brk.id/api/v1/assets/facility.json verwenden.
Hooks & Filter
Actions
// Nach Cache-Aktualisierung (nur bei echten Datenänderungen)
do_action('brk_impressum_cache_refreshed');
// Täglicher WP-Cron-Refresh der Facilities-Daten
do_action('brk_impressum_daily_update');
Hinweis: brk_impressum_daily_update startet den Daten-Refresh. Die eigentliche Seitenaktualisierung (update_all_impressum_pages()) läuft über brk_impressum_cache_refreshed und nur bei erkannten Datenänderungen.
Systemanforderungen
- WordPress 5.0 oder höher
- PHP 7.4 oder höher
- Multisite (optional, aber empfohlen)
Verzeichnisstruktur
brk-impressum/
├── brk-impressum.php # Haupt-Plugin-Datei
├── admin/
│ ├── class-brk-impressum-admin.php
│ └── class-brk-impressum-tools.php
├── includes/
│ ├── class-brk-facilities-loader.php
│ ├── class-brk-impressum-generator.php
│ └── class-brk-impressum-settings.php
├── assets/
│ ├── css/
│ │ ├── admin.css
│ │ └── frontend.css
│ └── js/
│ └── admin.js
└── README.md
Fehlerbehebung
Facilities-Daten können nicht geladen werden
Problem: "Die Facilities-Daten konnten nicht geladen werden"
Lösung:
Das Plugin verwendet automatisch Fallback-Daten, wenn die API nicht erreichbar ist:
- Automatischer Fallback: Das Plugin lädt lokale Beispieldaten aus
facilities-example.json - Hardcoded-Fallback: Falls keine lokale Datei existiert, werden minimale Demo-Daten verwendet
- Testen: Klicken Sie auf "API-Verbindung testen" in den Debug-Informationen
Für Produktivumgebungen:
- Überprüfen Sie die Verbindung zu
https://api.brk.id/api/v1/assets/facility.json - Stellen Sie sicher, dass SSL-Zertifikate korrekt konfiguriert sind
- Prüfen Sie die PHP-Fehlerlog-Datei:
tail -f /pfad/zu/php-error.log - Versuchen Sie, den Cache zu aktualisieren
- Kontaktieren Sie den BRK-Administrator für API-Zugang
Debug-Modus:
// In wp-config.php
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
Prüfen Sie dann wp-content/debug.log auf Fehler.
Vorschau wird nicht angezeigt
Problem: Die Vorschau bleibt leer
Lösung:
- Öffnen Sie die Browser-Konsole (F12) und prüfen Sie auf JavaScript-Fehler
- Stellen Sie sicher, dass alle Pflichtfelder ausgefüllt sind
- Prüfen Sie, ob REST API funktioniert:
/wp-json/brk-impressum/v1/facilities
Seite wird nicht erstellt
Problem: "Impressum übernehmen" funktioniert nicht
Lösung:
- Prüfen Sie die Benutzerberechtigungen (
manage_options) - Stellen Sie sicher, dass WordPress Seiten erstellen kann
- Prüfen Sie die Datenbankverbindung
Entwicklung
PHP-Coding-Standards
Das Plugin folgt den WordPress PHP Coding Standards.
JavaScript
- ES5-kompatibel für maximale Browserunterstützung
- jQuery als Abhängigkeit
CSS
- BEM-ähnliche Namenskonvention
- Mobile-first responsive Design
Support & Kontakt
Bei Fragen oder Problemen wenden Sie sich bitte an:
- GitHub Issues: https://github.com/weidnerd/BRK-Impressum/issues
- BRK Support: support@brk.de
Lizenz
GPL v2 oder höher
Changelog
Version 1.2.3
- DRK-Vertretungsangabe wird dynamisch aus Facility ID 999 (
geschaeftsfuehrung.nameundgeschaeftsfuehrung.funktion) übernommen - Datenänderungen werden per JSON-Hash erkannt, Seitenaktualisierung erfolgt nur bei echten Änderungen
- WP-Cron-Planung auf tägliche Aktualisierung vereinheitlicht
Version 1.2.2
- Ungenutzte CSS-Styles aus admin.css entfernt (Vorschau-Styles, Loading State)
Version 1.2.1
- Frontend-CSS-Laden deaktiviert: Impressum nutzt Theme-Styles
Version 1.2.0
- Impressum-Struktur komplett überarbeitet (Landesverband zuerst, Ansprechpartner vor Ort)
- Neue Felder: Fax, Internet, USt-Id.-Nr.
- Statische Texte aktualisiert (Ministerium, Satzungsdatum, soziale Netzwerke)
Version 1.1.0
- Footer-Link-Erkennung für YooTheme Builder
- Status-Anzeige und automatische Footer-Link-Aktualisierung
- Debug-Ansicht in Network Admin Tools
- Verbesserte AJAX-Fehlerbehandlung
Version 1.0.0
- Initiales Release
- Basis-Funktionalität für Impressum-Generierung
- Admin-Interface mit Live-Vorschau
- REST API Integration
- Caching-System
- Multisite-Unterstützung
Credits
Entwickelt für das Bayerische Rote Kreuz (BRK)
Mitwirken
Contributions sind willkommen! Bitte erstellen Sie einen Pull Request oder öffnen Sie ein Issue auf GitHub.