2011-10-30 61 views
1

我使用webform作爲來自特定內容類型的所有頁面上的塊。所有的表格都是一樣的,但是在提交列表中,我想知道用戶看到了哪個頁面。我認爲一個隱藏的領域,並且默認值%title會這樣做,但事實並非如此。我嘗試了一堆其他的令牌值,並且它們中的很多都可以工作,但是沒有一個給我一個當前節點的標識符。Drupal 7 Webform使用當前節點標題填充隱藏字段

+0

這是Drupal 6還是7? – Clive

+1

7,它在問題標題:) – cambraca

+1

我的壞很晚了!只需要快速查看,就會很快回報:-) – Clive

回答

3

我認爲它不工作的原因是因爲webform令牌的node元素是指webform本身的節點,而不是當前節點頁面。爲什麼webform不使用內置的令牌系統我不知道,似乎錯過了一個機會。

看着網頁表單模塊,我認爲得到這個工作的最簡單的方法是寫定義單個錶快速自定義模塊(兩列,nidurl),然後執行hook_webform_submission_insert()保存當前$_SERVER['REQUEST_URI']所有web表單。然後,您可以分別使用hook_webform_submission_load()hook_webform_submission_render_alter()將URL數據重新附加到提交併將其顯示到頁面。

您可以在模塊中包含的webform_hooks.php文件中找到所有這些鉤子,它們都有很好的文檔記錄。

+0

有趣。我實際上沒有製作任何自定義模塊,但我想我一定會研究這一點。你知道是否有辦法從你看到的頁面上獲取「當前節點」? (所以,而不是獲得'$ _SERVER ['REQUEST_URI']'我實際上得到節點的標題或其他) – cambraca

+0

我的另一個想法是隻使用一些快速和骯髒的jQuery並加載'$('h1').text() '進入該死的隱藏領域......但它似乎骯髒,並不會工作,如果JS被禁用 – cambraca

+0

是啊這不是理想的,另一個想法可能是使用['hook_form_alter()'](http://api.drupal .org/api/drupal/modules - system - system.api.php/function/hook_form_alter/7)來填充隱藏字段,這樣它就可以用於非JS用戶。如果您在節點頁面上獲取節點,您可以使用['menu_get_object()'](http://api.drupal.org/api/drupal/includes--menu.inc/function/menu_get_object/7)對象 – Clive

相關問題