我对Drupal非常陌生(Drupal 7)。
我陷入了网络形式的改变步骤。
所以,我创建了一个内容类型 - 新闻。
新闻内容类型具有用于引用网络表单的节点引用字段。
创建一个视图(由于各种原因)列出新闻项目。
现在,当显示新闻项目详细信息页面时,我想更新几个webform字段。例如,webform主题的字段需要预先填充新闻项目标题。
我知道有hook_form_alter
个钩子来更新网络表单,但我无法使用该挂钩,因为我无法访问其他新闻内容类型字段。
我尝试了template_preprocess_node
钩子,但看起来像是在渲染了webform之后调用,因为字段值没有更新。
非常感谢任何帮助。
答案 0 :(得分:1)
我知道这是一篇旧帖子,但对于任何寻找答案的人来说都是如此。
menu_get_object()
访问整个节点和内容类型中的所有字段,但是您无需通过{重新加载节点{1}} node_load
将为您提供完整的节点对象。menu_get_object()
,则可以使用form_id
或hook_form_alter
来更改表单的内容。可以在此处找到更多信息:https://www.drupal.org/node/1558246
答案 1 :(得分:0)
项目详细信息页面是否为节点页面,如果是这样,您可以使用menu_get_object();获取nid然后使用node_load获取所需的数据,然后使用hook_form_alter将其插入到webform中。
如果它不是节点页面,您可以使用devel或hook_page_alter查找页面中节点的引用,然后使用它从节点加载数据并插入到表单中。