Wie kann man das “Passwort ändern”-Formular direkt anzeigen lassen?
Wenn man auf der Benutzerkonto Seite ist, kann man direkt auf "Passwort ändern" gehen, aber man kommt nur zu dem allgemeinen Formular und muss erst runterscrollen und das Häckchen bei Passwort ändern setzten. Nicht gerade Benutzerfreundlich gestaltet. Um gleich das Formular anzuzeigen und dort hinzuspringen sind zwei kleine Änderungen zu machen.
Als erstes den Link anpassen, dieser findet man in der Datei *templatepfad*/customer/account/dashboard/info.html. Hier nur ?p=1#p hinzufügen:
<a href="<?php echo $this->getChangePasswordUrl() ?>?p=1#p"><?php echo $this->__('Change Password') ?></a>
Im Template unter *templatepfad*/customer/form/edit.phtml die Zeile
<input type="checkbox" name="change_password" id="change_password" value="1" onclick="setPasswordForm(this.checked)" title="<?php echo $this->__('Change Password') ?>"<?php if($this->getCustomer()->getChangePassword()==1): ?> checked="checked"<?php endif; ?> /> <label for="change_password"><?php echo $this->__('Change Password') ?></label>
mit der Zeile
<input type="checkbox" name="change_password" id="change_password" value="1" onclick="setPasswordForm(this.checked)" title="<?php echo $this->__('Change Password') ?>"<?php if($this->getCustomer()->getChangePassword()==1||$_GET[p]==1): ?> checked="checked"<?php endif; ?> /> <label for="change_password"><?php echo $this->__('Change Password') ?></label>
austauschen. Und hinter dem Fieldset (~Zeile 117) diese Zeilen anfügen, damit das Formular auch als Pflichtfeld gesetzt wird.
<?php
if($_GET[p]==1) echo "<script language=\"javascript\">$('current_password').up(3).show();$('current_password').addClassName('required-entry');$('password').addClassName('required-entry');$('confirmation').addClassName('required-entry');</script>";
?>
Getestet unter Magento 1.3.2.x