Ich möchte in das Registrierungsmodul einhängen. Ich habe bereits eine Datenbank mit 50000 Benutzern, die meine alte Website verwenden. Jetzt migriere ich nach Drupal.Haken in Drupal Registrierung und validiere Benutzerinformationen gegen Geschäftslogik
Ich habe noch nicht die Einträge in die Drupal-Datenbank migriert. Ich werde nach meiner alten Datenbank suchen.
Wenn ein Benutzer versucht, sich in Drupal zu registrieren, muss ich überprüfen, ob der Benutzername, den er gab, bereits in dieser Liste von 50000 (und wachsenden) Einträgen vorhanden ist. Wenn es existiert, muss ich die Registrierung abbrechen, die eine Fehlermeldung anzeigt, dass der Benutzername existiert.
Welchen Haken soll ich verwenden? Wenn mein Code feststellt, dass die Validierung fehlgeschlagen ist, wie kann ich Drupal mitteilen, dass eine Fehlermeldung angezeigt wird?
Edit: Ich hakte in den hook_user und überprüft für die 'validate' op. Ich bin in der Lage, Fehlermeldungen zu validieren und zuzuweisen. Aber es passiert für alle Formen. Ich möchte nur das neue Kontoerstellungsformular validieren. Wie kann ich das machen?
Danke.
+1 Vielen Dank. Es hat funktioniert, ich bin in der Lage, die Validierung für die Felder dieses bestimmten Formulars festzulegen. Ich wusste nichts über die FORM_ID-Sache, ich benutzte einen anderen Haken und es lief für alle Formen: D – user266803
Obwohl dies eine großartige Lösung ist, bedenken Sie, dass Drupal derzeit hook_form_alter AFTER hook_form_FORM_ID_alter ausführt. So kann es einen Fall auf der Straße geben, wo ein anderes Modul Ihre hook_form_FORM_ID_alter Änderungen übersteuert. In 95% der Fälle wird kein Problem auftreten, aber einige sagen, dass es am sichersten ist, hook_form_alter und eine switch-Anweisung zu verwenden. –
Wenn Ihre Überprüfungsfunktion nur ein einzelnes Feld überprüft, sollten Sie stattdessen die Funktion [Elementüberprüfung] (https://api.drupal.org/api/drupal/developer!topics!forms_api_reference.html/7#element_validate) erstellen. – rymo