v1.2.0: Umbenennung, zweizeiliger Erfolgstext, Umlaute

This commit is contained in:
2026-09-21 20:25:28 +02:00
parent 1955516783
commit 56ea70a57e
+13 -13
View File
@@ -31,17 +31,17 @@ require_once __DIR__ . '/src/Handler/TemplateHandler.php';
require_once __DIR__ . '/src/Handler/ValidationHandler.php'; require_once __DIR__ . '/src/Handler/ValidationHandler.php';
/** /**
* Bootstrap-Klasse fuer das Plugin fp_altcha_spamschutz. * Bootstrap-Klasse für das Plugin fp_altcha_spamschutz.
* *
* Setzt einen selbst gehosteten, quelloffenen Proof-of-Work-Spamschutz (ALTCHA, MIT-Lizenz) fuer * Setzt einen selbst gehosteten, quelloffenen Proof-of-Work-Spamschutz (ALTCHA, MIT-Lizenz) für
* die Kundenregistrierung, die Newsletter-Anmeldung und das Kontaktformular ein. Keine Daten * die Kundenregistrierung, die Newsletter-Anmeldung und das Kontaktformular ein. Keine Daten
* verlassen den eigenen Server. Bewusst ohne Google reCAPTCHA und ohne Umleitung ueber Cloudflare * verlassen den eigenen Server. Bewusst ohne Google reCAPTCHA und ohne Umleitung über Cloudflare
* oder aehnliche Dienste. * oder ähnliche Dienste.
* *
* Hintergrund/Anlass: ein Bot-Problem bei einem Kunden (Fake-Anmeldungen im Shop). Andere * Hintergrund/Anlass: ein Bot-Problem bei einem Kunden (Fake-Anmeldungen im Shop). Andere
* getestete Ansaetze konnten das dort verwendete Muster * getestete Ansätze konnten das dort verwendete Muster
* ("Test"/"Test User" in Vorname/Nachname/Ort/Strasse, aber echte Drittanbieter-E-Mail-Adressen) * ("Test"/"Test User" in Vorname/Nachname/Ort/Straße, aber echte Drittanbieter-E-Mail-Adressen)
* strukturell nicht erkennen, weil deren Wortlisten-Pruefung nur auf Kommentar-/ * strukturell nicht erkennen, weil deren Wortlisten-Prüfung nur auf Kommentar-/
* Nachrichtenfelder wirkt, die das Registrierungsformular gar nicht besitzt. * Nachrichtenfelder wirkt, die das Registrierungsformular gar nicht besitzt.
*/ */
class Bootstrap extends Bootstrapper class Bootstrap extends Bootstrapper
@@ -54,7 +54,7 @@ class Bootstrap extends Bootstrapper
return; return;
} }
// Die komplette Einrichtung ist defensiv umschlossen: boot() laeuft bei JEDEM // Die komplette Einrichtung ist defensiv umschlossen: boot() läuft bei JEDEM
// Frontend-Aufruf, noch bevor irgendeine Seite gerendert wird. Ein Fehler hier (z. B. // Frontend-Aufruf, noch bevor irgendeine Seite gerendert wird. Ein Fehler hier (z. B.
// weil das Plugin gerade erst installiert und noch nicht konfiguriert wurde) darf // weil das Plugin gerade erst installiert und noch nicht konfiguriert wurde) darf
// niemals den gesamten Shop lahmlegen. // niemals den gesamten Shop lahmlegen.
@@ -66,27 +66,27 @@ class Bootstrap extends Bootstrapper
$templateHandler = new TemplateHandler($plugin, $altchaService); $templateHandler = new TemplateHandler($plugin, $altchaService);
$validationHandler = new ValidationHandler($altchaService); $validationHandler = new ValidationHandler($altchaService);
// Frueheste moegliche Pruefung der Newsletter-Anmeldung: laeuft direkt hier, noch // Früheste mögliche Prüfung der Newsletter-Anmeldung: läuft direkt hier, noch
// bevor JTL-Shop das $_POST verarbeitet. Siehe ValidationHandler::guardNewsletterSubmission(). // bevor JTL-Shop das $_POST verarbeitet. Siehe ValidationHandler::guardNewsletterSubmission().
$validationHandler->guardNewsletterSubmission(); $validationHandler->guardNewsletterSubmission();
// Dieselbe fruehe Pruefung fuer das Kontaktformular. Siehe // Dieselbe frühe Prüfung für das Kontaktformular. Siehe
// ValidationHandler::guardContactSubmission(). // ValidationHandler::guardContactSubmission().
$validationHandler->guardContactSubmission(); $validationHandler->guardContactSubmission();
// Widget (Container + Skript) in Registrierungs- und Newsletter-Formular einfuegen. // Widget (Container + Skript) in Registrierungs- und Newsletter-Formular einfügen.
$dispatcher->listen( $dispatcher->listen(
'shop.hook.' . \HOOK_SMARTY_OUTPUTFILTER, 'shop.hook.' . \HOOK_SMARTY_OUTPUTFILTER,
[$templateHandler, 'generalTemplateIntegration'] [$templateHandler, 'generalTemplateIntegration']
); );
// Registrierung: Plausibilitaetspruefung nach Formularabsendung. // Registrierung: Plausibilitätsprüfung nach Formularabsendung.
$dispatcher->listen( $dispatcher->listen(
'shop.hook.' . \HOOK_REGISTRIEREN_PAGE_REGISTRIEREN_PLAUSI, 'shop.hook.' . \HOOK_REGISTRIEREN_PAGE_REGISTRIEREN_PLAUSI,
[$validationHandler, 'checkRegistrationPlausibility'] [$validationHandler, 'checkRegistrationPlausibility']
); );
// Newsletter: zusaetzliche Absicherung kurz vor dem Speichern des Empfaengers. // Newsletter: zusätzliche Absicherung kurz vor dem Speichern des Empfängers.
if (\defined('HOOK_NEWSLETTER_PAGE_EMPFAENGEREINTRAGEN')) { if (\defined('HOOK_NEWSLETTER_PAGE_EMPFAENGEREINTRAGEN')) {
$dispatcher->listen( $dispatcher->listen(
'shop.hook.' . \HOOK_NEWSLETTER_PAGE_EMPFAENGEREINTRAGEN, 'shop.hook.' . \HOOK_NEWSLETTER_PAGE_EMPFAENGEREINTRAGEN,