Форма отправки Drupal, форма after_build - PullRequest
7 голосов
/ 26 августа 2010

В чем разница между $form['#submit'] и $form['#after_build']?

1 Ответ

14 голосов
/ 26 августа 2010

Api Docs выкладывают это довольно хорошо.$form['#submit'] добавит массив обработчиков отправки в вашу форму: т.е. когда кто-то нажмет кнопку «Отправить», будет вызвана функция в массиве.Они будут называться после отправки .

Обычно вы хотите использовать это свойство при вызове hook_form_alter(), чтобы добавить еще одну функцию отправки в форму, которую вы не создавали самостоятельно., как будто вы сами создаете форму в коде, вы также создаете обработчик отправки по умолчанию. Здесь - это документы FAPI для #submit.

$form['#after_build'] аналогичны тем, что для вызова требуется массив функций, но они будут вызваны после построения формы длядисплей.Это может быть использовано, если у вас есть значение по умолчанию или существующее значение в элементе формы, и вы хотите проверить состояние чего-либо с этим значением перед отправкой .См. FAPI документы для хорошего примера проверки состояния чего-либо перед отправкой, после того как форма построена для отображения.

Итак, в итоге, будут вызваны функции $form['#submit']представления, и функции $form['#after_build'] будут вызываться при отображении формы.

...