Drupal: почему форма api не работает вне функции _page? - PullRequest
0 голосов
/ 17 мая 2011

Я читал об основных формах API и придумал некоторые основные работоспособные формы ... но есть другой контент, который я хотел бы добавить в мою форму, проблема в том, что они не уживаются вместе.

Если я помещаю drupal_get_form в основную функцию _page (), это прекрасно работает ... Если я помещаю drupal_get_form в другую функцию, она выводит только ArrayЕсли я помещу результаты drupal_get_form в переменную:

 $content = $flash;
 $content .= drupal_get_form;

Я получу 'Array', форма не будет отображаться.Вспышка появляется, хотя.(??) это почему?

Я использую Drupal 7,

Спасибо за чтение.

1 Ответ

0 голосов
/ 17 мая 2011

drupal_get_form() возвращает не строку, а так называемый «рендер-массив» в Drupal 7. Чтобы отобразить его в строку, используйте drupal_render():

$content .= drupal_render(drupal_get_form(...));

Или вы также можете сделать $ content массивом визуализации:

$content['flash']['#markup'] = $flash;
$content['form'] = drupal_get_form(...);

Преимущество состоит в том, что вы можете возвращать массивы рендеринга в обратных вызовах страниц, блоках и аналогичных местах, и они будут отображаться только в конце запроса страницы, давая другим модулям возможность изменять структуру содержимого.

...