Bug in "Mein Konto"

Hi, die Funktionen “Password ändern” und “eMail ändern” unter “Mein Konto” funktionieren nicht richtig: 1. Wenn ich unter “Password ändern” bei der Password-Wiederholung einen Fehler mache wird bei der Fehlermeldung gleich das eMail-Feld mit gelistet. 2. Wenn ich unter “eMail ändern” bei der eMail-Wiederholung einen Fehler mache gibt es statt einer Fehlermeldung nur die Änderungsbestätigung. Auch die Eingabe einer eMail-Adresse ohne @ wird nicht moniert. Der Fehler müsste seinen Ursprung im Template: templates/default/frontend/account/index.tpl haben. Für die Profis von Euch sicher kein großes Problem!? Na dann… Viele Grüße Peter

Hi, danke. Checken wir Morgen mal und melden uns, falls wir das reproduzieren können.

Hi, möchte nochmal an meine Anfrage erinnern. :wink: Gruß Peter

Hi, das Thema möcht ich nochmal auf’s Tablett bringen. Die Funktionen „Password ändern“ und „eMail ändern“ unter „Mein Konto“ funktionieren nicht richtig: 1. Wenn ich unter „Password ändern“ bei der Password-Wiederholung einen Fehler mache wird bei der Fehlermeldung gleich das eMail-Feld mit gelistet. 2. Wenn ich unter „eMail ändern“ bei der eMail-Wiederholung einen Fehler mache gibt es statt einer Fehlermeldung nur die Änderungsbestätigung. Auch die Eingabe einer eMail-Adresse ohne @ wird nicht moniert. Der Fehler müsste seinen Ursprung im Template: templates/default/frontend/account/index.tpl haben. Hat das von Euch noch keiner getestet? Oder ist Euch das nicht so wichtig. Viele Grüße Peter

Hi, haben das in den Bug-Tracker aufgenommen, hier die Anleitung zur Behebung. (Regulär wird das in 3.5.4 behoben!) Datei _default/frontend/_resources/javascript/jquery.shopware.js: Unter ('.account .password').slideToggle('fast');ca. Zeile 206 Einfügen: [code] (’.account .email’).hide(); [/code] Unter ('.account .email').slideToggle('fast'); ca. Zeile 213 Einfügen: [code] (’.account .password’).hide(); [/code] Unterhalb von if(!$('.account .error').length) { $('.account .password').hide(); $('.account .email').hide(); } (Zeile 200 bis 203) Einfügen: else { if ($('.account .error').text().match(/Passwort/)){ $('.account .email').hide(); }else { $('.account .password').hide(); } } Datei engine/core/class/sAdmin.php öffnen: Funktion sValidateStep1 - ca. Zeile 899 if(!$edit) ändern ist: if(!$edit || $p["email"]) Datei engine/Shopware/Controllers/Frontend/Account.php öffnen: Funktion saveAccountAction- ca. Zeile 347 Unter: if (!empty($checkData["sErrorMessages"])){ foreach ($checkData["sErrorMessages"] as $key=\>$error\_message) { $checkData["sErrorMessages"][$key] = $this-\>View()-\>fetch('string:'.$error\_message); } } Einfügen: if (!empty($this-\>Request()-\>email)){ if($this-\>Request()-\>email != $this-\>Request()-\>emailConfirmation){ $checkData['sErrorFlag']["emailConfirmation"] = true; $checkData["sErrorMessages"][] = Shopware()-\>System()-\>sCONFIG['sErrors']['sErrorEmailNotEqual']; } }

1 „Gefällt mir“

Hi Stefan, jetzt funktioniert’s perfekt. Super! Vielen Dank! Viele Grüße Peter

hallöle, ich möchte das Thema nochmal zur Sprache bringen, denn ich bin davon auch betroffen. Habe die Problemlösungsschritte übernommen, mit dem Ergebnis, dass bei Diskrepanz der beiden Passwörter die Fehlermeldung korrekt ausgegeben wurde, jedoch nicht die Passwort-Eingabefelder angezeigt werden, sondern die Eingabefelder für die eMail-Adress-Änderung. Habe den Lösungsvorgang nun 2mal vollzogen, jedes mal mit dem gleichen Ergebnis. Woran kann´s liegen? Danke =)

Zu dem letzten Problem, in der Datei frontend/_resources/jquery.shopware.js ist in dem Abschnitt else { if ($('.account .error').text().match(/Passwort/)){ $('.account .email').hide(); }else { $('.account .password').hide(); } } die If-Abfage unvollständig. Richtig wäre in der zweiten Zeile „Passw“ anstatt „Passwort“.