Was ist der Unterschied zwischen drupal_get_form()
und drupal_retrieve_form()
? Kann jemand den Unterschied erklären? Ich schaue auf die API, aber die Beschreibung scheint mir ähnlich zu sein.
10
Was ist der Unterschied zwischen drupal_get_form()
und drupal_retrieve_form()
? Kann jemand den Unterschied erklären? Ich schaue auf die API, aber die Beschreibung scheint mir ähnlich zu sein.
drupal_retrieve_form()
dass Ihr Code auf das aktualisierte Dokument zugreifen kann,$form_state
wenn es als Referenz übergeben wird. Geben Sie jedochdrupal_get_form()
nur das$form
und nicht den Status zurück.Antworten:
Der Unterschied besteht darin, dass
drupal_get_form()
das automatische Abrufen, Verarbeiten und Anzeigen eines gerenderten HTML-Formulars für Module behandelt wird, währenddrupal_retrieve_form()
das strukturierte Array zurückgegeben wird, das ein Formular definiert.Formular abrufen
drupal_get_form()
prüft zunächst mit form_get_cache () , ob das Formular im Formularcache vorhanden ist ; Wenn es nicht vorhanden ist, ruft es drupal_retrieve_form () und drupal_prepare_form () auf .Bearbeitung des Formulars
drupal_get_form()
ruft drupal_process_form () auf , die Funktion, die drupal_validate_form () aufruft und die Übermittlungshandler mit form_execute_handlers () aufruft .Formular rendern
Das Rendern erfolgt von
drupal_process_form()
, das form_builder () aufruft .In den meisten Fällen
drupal_get_form()
ist die Funktion zu verwenden, wie im folgenden Code.Das einzige Modul, das ich gefunden habe und das
drupal_retrieve_form()
direkt aufruft, ist das Mollom-Modul in mollom_moderate () , das es zum automatischen Senden eines Formulars verwendet. Der Code könnte drupal_form_submit () verwenden , aber (wie ein Kommentar sagt): "Programmatische Formularübermittlungen können die Schaltfläche / Aktion zum Senden des primären Formulars nicht automatisch verwenden, daher müssen wir uns ähnelndrupal_form_submit()
."quelle