Почему эта форма друпала не работает?

Drupal 7, $output показывает строку "Array" на моей странице, я не знаю почему, это код:

Работает только так: return drupal_get_form('test_exp_form')

Но мне нужно добавить html и текст в переменную $output, и я не могу просто вернуть форму.

function test_page() {
     $output = '<div>Hello</div>';
     $output = drupal_get_form('test_exp_form');
     return $output;
}

function test_exp_form($form, &$form_stat) {
  $form = array();

    $form['example_textfield'] = array(
      '#type' => 'textfield',
      '#title' => t('Example Textfield'),
      '#default_value' => 'some text',
    );

  return $form;
}

person Valoda    schedule 03.10.2011    source источник


Ответы (1)


Вам нужно использовать функцию render() в Drupal 7, поскольку drupal_get_form возвращает «массив рендеринга»:

function test_page() {
  $output = '<div>Hello</div>';
  $output .= render(drupal_get_form('test_exp_form'));
  return $output;
}

Вот еще немного информации о массивах рендеринга в Drupal 7:

Визуализация массивов в Drupal 7

person Clive    schedule 03.10.2011
comment
Я обновил код в ответе, я только что проверил это, и он работает - person Clive; 03.10.2011