Drupal 7 hook_node_view add a form to the content of a node(Drupal 7 hook_node_view 将表单添加到节点的内容)
问题描述
function example_module_node_view($node, $view_mode, $langcode)
{
$f = drupal_get_form('example_module_form', $node);
$node->content['data_collection_form'] = array('#value' => $f, '#weight' => 1);
}
为什么表单不显示?难道我做错了什么?正在填充表单对象.我可以做#markup => 'Something' 并且它有效.
Why doesn't the form display? Am I doing something wrong? The form object is being populated. I can do #markup => 'Something' and it works.
推荐答案
drupal_get_form
的返回实际上是一个渲染数组本身,所以你可以这样做:
The return from drupal_get_form
is actually a render array itself so you could just do this:
$f = drupal_get_form('example_module_form', $node);
$f['#weight'] = 1;
$node->content['data_collection_form'] = $f;
如果您确实想以其他方式执行此操作,尽管表单应该是可渲染的元素",因此键不应以 #
为前缀:
If you do want to do it the other way though the form should be a renderable 'element', so the key shouldn't be prefixed by #
:
$f = drupal_get_form('example_module_form', $node);
$node->content['data_collection_form'] = array(0 => $f, '#weight' => 1);
渲染数组中以 #
为前缀的键的所有条目都被视为属性,而不被视为子项"并递归渲染.
All entries in a render array with a key prefixed with #
are considered properties, while those that aren't are considered 'children' and are recursively rendered.
这篇关于Drupal 7 hook_node_view 将表单添加到节点的内容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Drupal 7 hook_node_view 将表单添加到节点的内容
基础教程推荐
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- 在多维数组中查找最大值 2021-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01