Shopversion 6.1.5
Hallo, ich möchte die Fehlerausgaben auf der “Passwort ändern” Seite im Kundenkonto, also zum user_password.tpl in views/flow/tpl/form für den Benutzer logisch gestalten und benötigen Hilfe zum Verständnis.
Ich fange mal an mit Situation 1: Feld 1 (altes Passwort) befüllt, Feld 2 (neues Passwort) befüllt, Feld 3 (Wiederholung neues Passwort) während des befüllens wird Fehlermeldung ausgegeben “Die Passwörter stimmen nicht überein”. Die Meldung sollte m.E. verschwinden, wenn der Eintrag im Feld 3 derselbe ist wie in Feld 2, was er aber nicht tut.
Gibt man in Feld 3 ein weiteres Zeichen ein verschwindet die Fehlermeldung (obwohl die Passwörter ja nun nicht mehr übereinstimmen) Gibt man dann noch ein Zeichen ein erscheint sie wieder.
Das ist sicherlich so nicht gedacht.
Ich habe gesehen, dass die Fehlermeldungen in Core\InputValidator.php und Application\Controller\AccountPasswordController.php definert werden, aber wie komme ich der Sache bei?
Danke für Eure Tips
Mignon
P.S.: Damit das Testen nicht ein blinde Kuh-Spiel wird lasse ich mir im Frontend mit Bootstrap reveal das Passwort anzeigen.
zum Verständnis musst zwischen Frontend Validierung (JavaScript) und Backend Validierung nach Abschicken vom Formular (PHP) unterscheiden.
Dies wird sicherlich über JavaScript Validierung erfolgen inkl. Fehlermeldung und die Prüfung kann erst erfolgen wenn Du ein Eingabefeld verlässt - so wird sicherlich die JavaScript Validierung umgesetzt sein.
Das wäre dann die anschließende PHP Validierung wenn Formular abgeschickt wird.
Viele Grüße,
Tim
ps. Neben der Shopversion wäre sicherlich viel relevanter welches Shop-Theme in welcher Version mit welcher Bootstrap Version und ggfs. mit Bootstrap Erweiterung jqBootstrapValidation zum Einsatz kommt.
habe es gerade in 2 Shops - 6.1 und 6.4 - getestet und kann das bestätigen. In der Version 4.10 ist das Verhalten des Scriptes aber richtig.
Das ist wohl eindeutig ein Bug.
Würde in eigenem Theme die Bootstrap Version 3.3.5 auf die neuste Bootstrap Version 5.1 aktualisieren und die Standard Validierung von Bootstrap ob Wert gesetzt ist Validation · Bootstrap v5.1 integrieren. Wenn man dann noch das Matching von Eingabewerten im Frontend prüfen möchte könnte man sich selber über Vanilla JavaScript dies ergänzen.
Ich verwende Flow 3.3.0, ja, die jqBootstrapValidation.js in source/Application/views/flow/build/vendor/jquery-bootstrap-validation/js hat die v1.3.6. In der letzten flow Version die ich bei Github finde GitHub - OXID-eSales/flow_theme: OXID Flow Responsive Theme ist es dieselbe Version. Soll das ein Abschied von flow bedeuten?
Ja, langfristig schon. OXID eSales empfiehlt seit der 6.4 Serie selber das Moga Theme was aus der Community heraus entstanden ist. Dies basiert bereits auf Bootstrap Version 5.0.
naja, das moga-theme enthält kein Matchen des Passwortes mehr per javascript.
das gleiche erreicht man einfach auch im flow-theme durch eine Änderung von user_password.tpl
Ich kann mir auch nicht so richtig vorstellen, dass es an der jqBootstrapValidation.js liegt. Wenn ich hier teste jqBootstrapValidation by ReactiveRaven, wähle bei Validators “match”, dann geht es einwandfrei.
Die beiden Dateien jqBootstrapValidation.js in source/Application/views/flow/build/vendor/jquery-bootstrap-validation/js und vom Download auf jqBootstrapValidation by ReactiveRaven sind unterschiedlich.
Da wäre interessant welche Flow Theme Version bei der 4.10 Serie zum Einsatz kommt, dann könnte man von dort aus ausgehend vergleichen was sich ggfs. geändert hat - das sich die Validierung unterschiedlich verhält.
Ja, das würde ich auch interessieren, welche flow Version das ist bei der es geht. In dem 6.1.4 shop habe ich ein flow 3.3.0 und ein wave 1.2.0. Mit wave funktionniert es, mit flow nicht.
Ein Unterschied in HTML Elemente Struktur, CSS Klassen und IDs und des jqBootstrapValidation ist dort nicht wirklich zu erkennen.
Meine Vermutung wäre auch, dass eine andere Prüfung als das Matching fehlschlägt.
Dort würde ich mir im JavaScript alle Prüfungen die stattfinden über die console.log(...) ausgeben lassen. Ggfs. hängt dies auch mit der neuen Passwort Länge zusammen oder mit weiteren JavaScript Abhängigkeiten, dass eine veraltete jQuery Version erwartet wird damit es funktioniert.
Dies kann bei Legacy Code schon mal vorkommen, weil wie oben bereits erwähnt wurde die Validierung Erweiterung vor fast über 10 Jahren programmiert. Seitdem werden sich viele Abhängigkeiten geändert haben wie z.B. Bootstrap HTML Struktur inkl. CSS Klassen und IDs und JavaScript Abhängigkeiten wie jQuery Version. Hinzu kommt die Webbrowser haben sich weiterentwickelt etc.
Daher lohnt aus meiner Sicht der Aufwand nicht dort nach einem Workaround zu suchen, würde lieber nach Vorne programmieren und auf den Stand der Technik bringen.