1

特定のコンテンツタイプのすべてのページでブロックとしてWebフォームを使用しています。フォームはすべて同じですが、送信リストで、ユーザーがどのページを表示していたかを知りたいです。私は隠しフィールドを考えました、そしてデフォルト値のはそれを%titleするでしょう、しかしそうではありません。他のトークン値をたくさん試しましたが、それらの多くは機能しますが、現在のノードの識別子を取得するものはありません。

4

1 に答える 1

3

nodeそれが機能しない理由は、Webフォームトークンの要素が現在のノードページではなく、Webフォーム自体のノードを参照しているためだと思います。Webformが組み込みのトークンシステムを使用しない理由はわかりませんが、機会を逃したようです。

Webフォームモジュールを見ると、これを行う最も簡単な方法は、単一のテーブル(2つの列nidと)を定義する簡単なカスタムモジュールを作成し、すべてのWebフォームの現在のデータを保存するようにurl実装することだと思います。次に、とをそれぞれ使用して、URLデータを送信に再添付し、ページに表示できます。hook_webform_submission_insert()$_SERVER['REQUEST_URI']hook_webform_submission_load()hook_webform_submission_render_alter()

これらのフックはすべてwebform_hooks.php、モジュールに含まれているファイルにあり、十分に文書化されています。

于 2011-10-30T03:02:05.560 に答える