[gelöst] Drupal-Coretexte rund um Registrierung, 'Passwort vergessen' und 'Erfolgreich gespeichert'
am 16.07.2012 - 10:37 Uhr in
Hallo zusammen,
für ein aktuelles Drupal-7-Projekt gibt es die Anforderung, bestehende Texte rund um Registrierung und 'Passwort vergessen' anzupassen. Ausserdem soll die Meldung über erfolgreiches Speichern (Profil) an manchen Stellen erweitert werden.
Ein Beispiel:
Nach der Registrierung kommt man nach Klick auf den Link aus der Registrierungs-Mail auf eine Seite mit dem Text:
This is a one-time login for %user_name and will expire on %expiration_date.
Click on this button to log in to the site and change your password.
Gesetzt wird der Text in /modules/user/user.pages, Funktion user_pass_reset().
Nun ist es leider so, dass Drupal den gleichen Code auch in der Funktion 'Passwort vergessen' benutzt. Ich möchte aber nur den Text ändern im Registrierungs-Vorgang und NICHT beim 'Passwort vergessen'-Prozedere.
Ein weiteres Beispiel:
Die Systemmeldung 'The changes have been saved.' nach Speichern des Profils möchte ich auch in bestimmten Situationen anpassen, nämlich direkt nach der Registrierung, nachdem man sein Passwort gesetzt hat. Ist es überhaupt möglich, hier nach Fällen zu unterscheiden?? Ich habe keine Lösung gefunden, ohne den Core zu hacken.
Hat jemand so etwas schon mal gemacht oder eine Idee?!
Vielen Dank
Erich
- Anmelden oder Registrieren um Kommentare zu schreiben
hook_form_alter
am 16.07.2012 - 10:44 Uhr
Nach der Registrierung kommt man nach Klick auf den Link aus der Registrierungs-Mail auf eine Seite mit dem Text:
This is a one-time login for %user_name and will expire on %expiration_date.
Click on this button to log in to the site and change your password.
Dieser Text sollte sich eigentlich über [api:hook_form_alter:7] für das entsprechende Formular ändern lassen.
<?php $form['message']['#markup'] = t('something ...'); ?>
Die Systemmeldung 'The changes have been saved.' nach Speichern des Profils möchte ich auch in bestimmten Situationen anpassen, nämlich direkt nach der Registrierung, nachdem man sein Passwort gesetzt hat. Ist es überhaupt möglich, hier nach Fällen zu unterscheiden?
Als einzige Möglichkeit wird Dir hier vermutlich nur bleiben, den submit-callback des Formulars ("user_profile_form") über [api:hook_form_alter:7] mit einem eigenen Callback zu ersetzen.
Dein Callback ist dann eine Kopie von [api:user_profile_form_submit:7] mit zusätzlichem Code zur Unterscheidung, welche Nachricht ausgegeben werden soll.
Das ging schnell
am 16.07.2012 - 18:59 Uhr
Hallo stBorchert,
vielen Dank für die schnelle Antwort!
Deine Tipps haben geholfen, super!
Mit ein bisschen suchen nach Parametern, die in $form bzw. $form_state übergeben werden, konnte ich dann schließlich eine passende Logik aufbauen.
Ich war doch etwas überrascht, mit was für einem Aufwand es verbunden ist, solch eine Änderung umzusetzen.
Viele Grüße
Erich