Похоже, вы читали о построении отдельных полей , но пропустили некоторые базовые концепции FAPI. Короче говоря, если вы вызываете форму с помощью drupal_get_form () , вы автоматически получаете контейнер формы (и многие преимущества использования FAPI, например, токены, проверка и т. Д.). Для обработки разметки, которая идет вокруг ваших элементов формы, вы можете использовать # префикс , # суффикс и разметка элементы.
Вы можете собрать всю форму снаружи так же, как вы делаете, но есть несколько случаев, в которых это действительно стоило бы. Если вы действительно хотите это сделать, вы, в основном, хотите скопировать то, что делает drupal_get_form (), чтобы добавить обертку формы, которая будет работать с FAPI.