Redirect Drupal7网络表单重定向
我们有一个Drupal7WebForm,成功提交后会重定向到url 我们需要做的是重定向用户,如果他们再次登录到同一个webform并已经提交 我们需要一个模块来实现这个功能,还是通过编程来实现Redirect Drupal7网络表单重定向,redirect,drupal-7,drupal-webform,Redirect,Drupal 7,Drupal Webform,我们有一个Drupal7WebForm,成功提交后会重定向到url 我们需要做的是重定向用户,如果他们再次登录到同一个webform并已经提交 我们需要一个模块来实现这个功能,还是通过编程来实现 提前感谢。我查看了webform模块,没有发现任何设置会在用户已提交表单时重定向用户,因此我认为您需要以编程方式执行此操作 注意:如果没有自定义模块,可以使用规则模块。我还没试过这个 要以编程方式执行此操作,可以执行以下操作。它实现了hook\u node\u view()并使用webform api函
提前感谢。我查看了webform模块,没有发现任何设置会在用户已提交表单时重定向用户,因此我认为您需要以编程方式执行此操作 注意:如果没有自定义模块,可以使用规则模块。我还没试过这个 要以编程方式执行此操作,可以执行以下操作。它实现了
hook\u node\u view()
并使用webform api函数webform\u get\u submission\u count()
检查用户是否已经提交了任何内容。(编辑:本例中的自定义模块称为example_webform)
所以这里是我们最终采用的解决方案
我保存了webform并将其作为块提供
我创建了一个页面来保存webform
我将块配置为显示在页面内容上方
在页面内容中,我加入了一些javascript来检测表单元素是否存在——如果没有转发到正确的url
因此,网络表单在提交时会正确重定向(在网络表单设置中设置),然后如果用户返回该页面并完成了网络表单,则会重定向。谢谢Troels。如果找不到模块解决方案,我们将在下周对此进行测试。
<?php
/**
* Implements hook_node_view().
*/
function example_webform_node_view($node, $view_mode, $langcode) {
global $user;
module_load_include('inc', 'webform', 'includes/webform.submissions');
$submission_count = webform_get_submission_count($node->nid, $user->uid);
if (!empty($submission_count) && $submission_count > 0) {
$redirect = $node->webform['redirect_url'];
drupal_goto($redirect);
}
}