Drupal7WebForm用当前节点标题填充隐藏字段

Drupal7WebForm用当前节点标题填充隐藏字段,drupal,drupal-7,drupal-webform,Drupal,Drupal 7,Drupal Webform,我使用webform作为特定内容类型的所有页面上的块。表单是一样的,但在提交列表中,我想知道用户看到的是哪一页。我认为一个隐藏字段和一个默认值%title就可以了,但事实并非如此。我尝试了许多其他的令牌值,其中很多都有效,但没有一个给我当前节点的标识符。我认为它不起作用的原因是,webform令牌的节点元素指的是webform本身的节点,而不是当前节点页面。为什么webform不使用内置令牌系统我不知道,似乎错过了一个机会 查看webform模块,我认为最简单的方法是编写一个快速自定义模块,定义

我使用webform作为特定内容类型的所有页面上的块。表单是一样的,但在提交列表中,我想知道用户看到的是哪一页。我认为一个隐藏字段和一个默认值
%title
就可以了,但事实并非如此。我尝试了许多其他的令牌值,其中很多都有效,但没有一个给我当前节点的标识符。

我认为它不起作用的原因是,webform令牌的
节点
元素指的是webform本身的节点,而不是当前节点页面。为什么webform不使用内置令牌系统我不知道,似乎错过了一个机会

查看webform模块,我认为最简单的方法是编写一个快速自定义模块,定义一个表(两列,
nid
url
),然后实现
hook\u webform\u submission\u insert()
为所有webforms保存当前的
$\u服务器['REQUEST\u URI']
。然后,您可以分别使用
hook\u webform\u submission\u load()
hook\u webform\u submission\u render\u alter()
将URL数据重新附加到提交并显示到页面


您可以在模块中包含的
webform\u hooks.php
文件中找到所有这些钩子,它们都有很好的文档记录。

7,在问题标题中:)我的错,太晚了!刚刚去看一看,很快就会回来的:-)很有趣。我实际上还没有做过任何自定义模块,但我想我一定会研究这个。你知道有没有办法从你看到的页面中获取“当前节点”?(因此,我没有得到
$\u SERVER['REQUEST\u URI']
而是得到了节点的标题或任何东西)我的另一个想法是使用一些快速而肮脏的jQuery并将
$('h1').text()
加载到该死的隐藏字段中。。。但是如果JS是禁用的,它看起来很脏并且不起作用。这不理想,另一个想法可能是使用a填充隐藏字段,这样它将适用于非JS用户。如果你在一个节点页面上,你可以使用获取节点对象作为参考,这就是我在一个自定义模块中所做的(非常感谢!):
function funnygarbage\u form\u webform\u client\u form\u 22\u alter(&$form,&$form\u state){$current\u object=menu\u get\u object();if($current\u object->type!=“job”)return;$job_title=$current_object->title;$form['submitted'['job_position']['default_value']=$job_title;}
您能详细介绍一下这个解决方案吗?特别是,此函数的命名是否重要?