Php Drupal:在块tpl中呈现表单
如何渲染作为可渲染数组一部分的窗体Php Drupal:在块tpl中呈现表单,php,drupal,drupal-7,drupal-fapi,drupal-forms,Php,Drupal,Drupal 7,Drupal Fapi,Drupal Forms,如何渲染作为可渲染数组一部分的窗体 In.模块 /** * Implements hook_block_view(); */ function bibdk_vejviser_block_view($delta = '') { switch ($delta) { case 'bibdk_vejviser': $block['title'] = t('Find Library'); $block['content'] = array( '
In.模块
/**
* 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;
}
在customblock.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')),
...
当您使用
drupal\u render
包装drupal\u get\u表单时,它应该可以工作
诸如此类:
...
'form' => array(
'#markup' => drupal_render(drupal_get_form('bibdk_vejviser_form'))),
...
希望这能奏效。。。Muhammad。当您使用drupal\u呈现来包装drupal\u get\u表单
时,它应该会起作用
诸如此类:
...
'form' => array(
'#markup' => drupal_render(drupal_get_form('bibdk_vejviser_form'))),
...
希望这能奏效。。。穆罕默德。嗯。。这里没用。此外,解决方案将返回一个字符串,这与渲染数组的原理不符。在我的解决方案中,您也可以使用hook\u block\u view\u alter来更改表单。嗯。。这里没用。此外,解决方案将返回一个字符串,这与渲染数组的原理不符。在我的解决方案中,您也可以使用hook\u block\u view\u alter更改表单。