1

レンダリング可能な配列の一部であるフォームをレンダリングするにはどうすればよいですか?



.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')),
...
4

1 に答える 1

1

あなたがラップdrupal_get_formするときにそれは動作するはずですdrupal_render

そんな感じ:

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

これがうまくいくことを願っています...ムハンマド。

于 2012-10-17T08:43:01.050 に答える