Drupal:在块tpl中渲染表单

时间:2012-10-16 09:21:42

标签: php drupal drupal-7 drupal-fapi drupal-forms

如何渲染表单,该表单是可渲染数组的一部分?



在.module

/**
 * Implements hook_block_view();
 */
function bibdk_vejviser_block_view($delta = '') {

  switch ($delta) {
    case 'bibdk_vejviser':
      $block['title'] = t('Find Library');
      $block['content'] = array(
        'link' => array(
          '#type' => 'link',
          '#title' => t("Find library"),
          '#href' => 'http://example.org',
        ),
        'form' => drupal_get_form('bibdk_vejviser_form'),
      );
      break;
  }
  return $block;
}



在自定义块.tpl

// This will work (renders both elements)
print $content;

// This will also work (renders link)
print render($elements['link']);

// This will NOT work (renders nothing)
print render($elements['form']);



我做错了什么?



更新: 如果我将drupal_get_form()包装在一个数组中,它就可以工作。为什么???

...
'form' => array(drupal_get_form('bibdk_vejviser_form')),
...

1 个答案:

答案 0 :(得分:1)

使用drupal_get_form

打包drupal_render时,它应该有效

类似的东西:

...
'form' => array(
'#markup' => drupal_render(drupal_get_form('bibdk_vejviser_form'))),
...

希望这有效......穆罕默德。