2017-03-31 115 views
1

我們有一個Drupal 7 webform,在成功提交後重定向到一個url。Drupal 7 Webform重定向

我們需要做的是將用戶重定向,如果他們在同一個Web窗體再次登陸,並已提交。

我們需要爲這個模塊,或做編程?

在此先感謝。

回答

0

所以這裏是我們最終與之合作的解決方案。

  1. 我保存的網頁表單,並使其可以作爲一個塊
  2. 我創建了一個頁面來保存Web窗體
  3. 我配置出現上述頁面內容
  4. 在頁面內容我把塊在一些javascript中檢測表單元素是否存在 - 如果沒有轉發到正確的url

所以webform在提交時(在webform設置中設置)重定向正確,然後它會重定向,如果用戶登陸回到那個頁面並完成了網絡表格。

1

我通過網頁表單模塊看起來並沒有發現,如果用戶已經提交的形式,將用戶重定向任何設置,所以我覺得你需要以編程方式做到這一點。

注:不使用規則模塊自定義模塊,這是可能的。我沒有試過這個。

要做到這一點編程,你可以做類似下面。它實現了hook_node_view()並通過使用webform API函數webform_get_submission_count()檢查用戶是否已經提交了任何內容。 (編輯:在這個例子中,自定義模塊被稱爲example_webform

<?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); 
    } 
} 

像現在它會重用表單提交時所使用的網頁,所以如果你選擇這樣做,記得一定要成功頁面反映了這一點。 (例如,如果用戶第二次登錄,成功頁面會說「您的帖子已被保存」,這很奇怪)。或者,您可以將$redirect替換爲另一個頁面,而不是來自webform設置的頁面。

還要注意的是,Web窗體仍然會增加消息「您已提交此表。查看您先前提交。」如果啓用。

+0

感謝Troels。如果我們沒有找到模塊解決方案,我們將在下週進行測試。 – user1689274