Dieses Addon ermöglicht die sichere und einfache Integration von Rechtstexten (Impressum, Datenschutzerklärung) aus dem eRecht24 Projekt Manager in REDAXO.
- Über eRecht24
- Features
- Installation
- Einrichtung
- Verwendung
- Sicherheit
- Performance
- Mehrere Domains
- Support
Dieses Addon wurde nicht von eRecht24 entwickelt und wird auch nicht von eRecht24 supportet.
Support:
- Fragen und Hilfe zum AddOn: REDAXO Slack
- Fehler und technische Probleme: GitHub Issues
eRecht24 ist ein deutscher Anbieter bekannt für sein Angebot für rechtssichere Texte, insbesondere für Impressum und Datenschutzerklärungen, die speziell für Webseitenbetreiber, Online-Shops und Unternehmen erstellt werden. Die Plattform bietet einen Projekt-Manager, mit dem Nutzer individuelle Rechtstexte generieren und automatisch aktualisieren lassen können. Weitere Dienste und Tutorials komplettieren das Angebot auch abseits des Webs.
Mehr Informationen unter: https://www.e-recht24.de
- ✅ Push-API Integration: Automatische Aktualisierung via eRecht24 Push API
- ✅ Multi-Domain Support: Verwaltung mehrerer Domains mit eigenen Rechtstexten
- ✅ Mehrsprachigkeit: Unterstützung für DE/EN Rechtstexte
- ✅ Flexible Integration: PHP-API und automatische Outputfilter-Platzhalter
- ✅ Sicherheit: CSRF-Schutz, Input-Validierung, Secret-basierte API-Authentifizierung
- ✅ Performance: Caching, optimierte Datenbankabfragen, Early-Exit-Patterns
- ✅ Einfache Verwaltung: Backend-Oberfläche für Domain-Registrierung und Vorschau
- ✅ SDK-basiert: Nutzung der offiziellen eRecht24 SDK
- ✅ Modern: PHP 8.2+, Strict Types, objektorientiertes Design mit Namespaces
- REDAXO >= 5.18
- PHP >= 8.2
- PHP-Extensions:
curl,json
- Im REDAXO Installer das Addon "erecht24" herunterladen
- Addon installieren und aktivieren
- Im eRecht24 Projekt Manager neues Projekt anlegen
- Rechtstexte für Impressum und Datenschutzerklärung erstellen
- API-Schlüssel über das Zahnradsymbol des Projekts generieren
- Im Backend zu eRecht24 > Einstellungen navigieren
- Domain eintragen (z.B.
example.com) - API-Schlüssel einfügen
- Speichern und auf "Test" klicken, um die Verbindung zu prüfen
Das Addon verwendet den Namespace FriendsOfRedaxo\eRecht24. Für die Verwendung der Klassen muss dieser importiert werden:
use FriendsOfRedaxo\eRecht24\eRecht24;
use FriendsOfRedaxo\eRecht24\eRecht24Client;Die Rechtstexte werden über eine einheitliche PHP-Schnittstelle eingebunden. Es können wahlweise die Domain (string) oder die ID (int) zum Abruf verwendet werden.
use FriendsOfRedaxo\eRecht24\eRecht24;
$id = 1;
// Prüfen, ob Text vorhanden ist
if (eRecht24::hasText($id, 'imprint')) {
// Text ausgeben
echo eRecht24::getText($id, 'imprint');
}
// Auswahl nach Domain
if (eRecht24::hasText('domain.tld', 'imprint')) {
// Text ausgeben
echo eRecht24::getText('domain.tld', 'imprint');
}imprint- ImpressumprivacyPolicy- DatenschutzerklärungprivacyPolicySocialMedia- Datenschutzerklärung Social Media
use FriendsOfRedaxo\eRecht24\eRecht24;
// Deutsche Version (Standard) hier mit Abruf per Domain
echo eRecht24::getText('domain.tld', 'imprint', 'de');
$id = 1;
// Englische Version
echo eRecht24::getText($id, 'imprint', 'en');
// Prüfen, ob englische Version existiert
if (eRecht24::hasText($id, 'imprint', 'en')) {
echo eRecht24::getText($id, 'imprint', 'en');
}use FriendsOfRedaxo\eRecht24\eRecht24;
$domain = 'example.com';
// Impressum einbinden
if (eRecht24::hasText($domain, 'imprint')) {
echo '<div class="legal-text imprint">';
echo eRecht24::getText($domain, 'imprint');
echo '</div>';
}
// Datenschutzerklärung mit Sprachauswahl
$language = rex_clang::getCurrentId() == 1 ? 'en' : 'de';
if (eRecht24::hasText($domain, 'privacyPolicy', $language)) {
echo '<div class="legal-text privacy">';
echo eRecht24::getText($domain, 'privacyPolicy', $language);
echo '</div>';
}Tipp: Als Platzhalter im Outputfilter verwenden.
Das Addon bietet einen automatischen Outputfilter, der Platzhalter im Frontend und Backend ersetzt. Der Filter ist automatisch aktiv nach der Installation und funktioniert sowohl im Frontend als auch im Backend (außer im Edit-Modus des Structure Content Plugins).
##ER-{TYPE}:{DOMAIN}:{LANG}##
Parameter:
TYPE: Der Typ des RechtstextesPRIVACY- DatenschutzerklärungIMPRINT- ImpressumPRIVACY-SOCIAL- Datenschutzerklärung Social Media
DOMAIN: Die registrierte Domain (z.B.example.com)LANG: Sprache (deoderen)
<!-- Datenschutzerklärung -->
##ER-PRIVACY:example.com:de##
<!-- Impressum -->
##ER-IMPRINT:example.com:de##
<!-- Datenschutz Social Media auf Englisch -->
##ER-PRIVACY-SOCIAL:example.com:en##
<!-- In Modulen oder Templates -->
<div class="legal-text">
<h2>Datenschutzerklärung</h2>
##ER-PRIVACY:example.com:de##
</div>
<footer>
##ER-IMPRINT:example.com:de##
</footer>Unter eRecht24 > Einstellungen werden automatisch alle verfügbaren Platzhalter für deine registrierten Domains angezeigt. Diese kannst du direkt kopieren und verwenden.
- Frontend: Platzhalter werden immer ersetzt
- Backend: Platzhalter werden ersetzt (außer im Edit-Modus von Structure Content)
- Debug-Modus: Bei fehlenden Texten wird ein HTML-Kommentar eingefügt
- Produktion: Bei fehlenden Texten wird ein leerer String zurückgegeben
Der Outputfilter kann überall verwendet werden:
- In Templates
- In Modulen
- In YForm-Ausgaben
- In beliebigen HTML-Bereichen
use FriendsOfRedaxo\eRecht24\eRecht24Client;
// Neue Domain registrieren
try {
eRecht24Client::register('example.com', 'your-api-key');
echo 'Domain erfolgreich registriert';
} catch (rex_exception $e) {
echo 'Fehler bei der Registrierung: ' . rex_escape($e->getMessage());
}
// Domain entfernen
try {
eRecht24Client::unregister('example.com');
echo 'Domain erfolgreich entfernt';
} catch (rex_exception $e) {
echo 'Fehler beim Entfernen: ' . rex_escape($e->getMessage());
}Das Addon implementiert mehrere Sicherheitsebenen:
- Alle Backend-Formulare sind durch CSRF-Tokens geschützt
- DELETE-Operationen erfordern Token-Validierung
- Domain-Validierung: Nur gültige Domain-Formate werden akzeptiert
- API-Key-Validierung: Mindestlänge und Format-Prüfung
- Sprach-Parameter: Whitelist-Validierung (nur
deunden) - Text-Typen: Validierung gegen definierte Typen-Liste
- Secret-basierte Authentifizierung: Push-API verwendet eindeutige Secrets
- Format-Validierung: Alphanumerische Secrets, validierte Type-Parameter
- Keine CSRF-Protection: API-Endpoint ist für externe Webhooks konzipiert
rex_escape()für alle Benutzereingaben im Backendhtmlspecialchars()mitENT_QUOTESfür Debug-Ausgaben- Prepared Statements für alle Datenbankabfragen
- Fehler werden via
rex_loggerprotokolliert - Sensitive Daten (API-Keys, Secrets) werden nicht geloggt
- Debug-Modus kann aktiviert werden (nur für Entwicklung)
- Outputfilter Early-Exit: Prüfung auf
##ER-vor Regex-Ausführung - Static Caching: Platzhalter-Ersetzungen werden pro Request gecached
- Optimierte Regex: Eingeschränkte Domain-Pattern für schnellere Matches
- Indizierte Datenbank: Unique-Index auf
domainunddomain+type - Lazy Loading: Texte werden nur bei Bedarf geladen
// Performance: Prüfen vor Abruf
if (eRecht24::hasText($domain, 'imprint')) {
echo eRecht24::getText($domain, 'imprint');
}
// Outputfilter: Nur aktivieren wenn benötigt
// Backend: eRecht24 > Einstellungen > OutputfilterDiese Klasse handhabt die Kommunikation mit der eRecht24 API.
namespace FriendsOfRedaxo\eRecht24;
class eRecht24Client
{
// Plugin Key für die API-Authentifizierung
public const PLUGIN_KEY = '...';
// Debug-Modus ein-/ausschalten
public const DEBUG = false;
/**
* Registriert eine neue Domain mit eRecht24
*
* @param string $domain Die zu registrierende Domain
* @param string $apiKey Der API-Schlüssel von eRecht24
* @throws rex_exception Bei Fehlern während der Registrierung
* @return void
*/
public static function register(string $domain, string $apiKey): void;
/**
* Entfernt eine Domain aus eRecht24 und der lokalen Datenbank
*
* @param string $domain Die zu entfernende Domain
* @return void
*/
public static function unregister(string $domain): void;
}Die Texte werden automatisch via Push-API von eRecht24 aktualisiert:
- Texte im eRecht24 Projekt Manager ändern
- Auf "Sync" klicken
- eRecht24 sendet die Änderungen automatisch an REDAXO
- Texte sind sofort verfügbar
Manuelle Synchronisation:
- Im Backend unter eRecht24 > Einstellungen
- Auf "Test" bei der gewünschten Domain klicken
Das Addon unterstützt die Verwaltung mehrerer Domains:
- Eigenes Projekt im eRecht24 Projekt Manager
- Eigener API-Schlüssel
- Individuelle Rechtstexte
- Jede Domain wird separat im Backend registriert
- Domains werden über ihre URL identifiziert
- Verschiedene Domains können unterschiedliche Texte haben
// Domain-spezifischer Abruf
echo eRecht24::getText('domain1.com', 'imprint');
echo eRecht24::getText('domain2.com', 'imprint');
// Platzhalter pro Domain
##ER-PRIVACY:domain1.com:de##
##ER-PRIVACY:domain2.com:de##// In lib/eRecht24Client.php
public const DEBUG = true;- Push-API Requests und Responses
- Datenbank-Operationen
- API-Fehler von eRecht24
- Platzhalter-Ersetzungen (wenn nicht gefunden)
Logs finden sich im REDAXO System-Log unter System > Logdateien.
- ✅ Sicherheitsverbesserungen: Input-Validierung, CSRF-Schutz für DELETE
- ✅ Performance-Optimierungen: Caching, Early-Exit-Patterns
- ✅ Domain-Validierung mit Regex
- ✅ Verbesserte Fehlerbehandlung und Logging
- ✅ Erweiterte README-Dokumentation
Die API und das SDK von eRecht24 unterliegen den API-Nutzungsbedingungen von eRecht24 GmbH & Co. KG.
Lizenzen:
- REDAXO-Code: MIT-Lizenz
- eRecht24 SDK: eRecht24 Lizenz (siehe
vendor/)
Weitere Informationen zur API-Nutzung finden sich im Vendor-Ordner.
Entwicklung
Projektleitung
Sponsors
Danke an
- eRecht24 für die API und SDK