Redirect Drupal7网络表单重定向

Redirect Drupal7网络表单重定向,redirect,drupal-7,drupal-webform,Redirect,Drupal 7,Drupal Webform,我们有一个Drupal7WebForm,成功提交后会重定向到url 我们需要做的是重定向用户,如果他们再次登录到同一个webform并已经提交 我们需要一个模块来实现这个功能,还是通过编程来实现 提前感谢。我查看了webform模块,没有发现任何设置会在用户已提交表单时重定向用户,因此我认为您需要以编程方式执行此操作 注意:如果没有自定义模块,可以使用规则模块。我还没试过这个 要以编程方式执行此操作,可以执行以下操作。它实现了hook\u node\u view()并使用webform api函

我们有一个Drupal7WebForm,成功提交后会重定向到url

我们需要做的是重定向用户,如果他们再次登录到同一个webform并已经提交

我们需要一个模块来实现这个功能,还是通过编程来实现


提前感谢。

我查看了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);
      }
    }