web-dev-qa-db-ja.com

Webform Tokensを使用すると、フォームのメタ情報にアクセスできますが、ユーザーが送信した値にはアクセスできません(Fill PDFを使用)

Fill PDF module を使用して編集可能なpdfを作成しようとしています。データソースはDrupal Webform送信です。これらの値をFillに指定していますPDF Webform Tokensモジュールのトークンを使用しています。また、Fill PDF Webform Rulesモジュール、これはまったく機能しません(PDFは生成されません)。

Webform Tokensモジュールを使用すると、部分的に成功します。PDFを取得して、Webフォームからユーザーが送信していない値(送信IDやWebフォームコンポーネントのラベルなど)を入力できます)が、ユーザーが送信した値は常に空白になります。次に例を示します。

  1. / admin/structure/fillpdf/[フォームID]/edit/[pdfkeyname]のPDF-Fieldキーの値フィールドに次のように入力します。

    The SID of this submission is [webform:meta-sid]. 
    The value of the form component titled [webform:meta-label-textmetest] 
    is [webform:val-textmetest].` 
    

問題の投稿の場合、textmetestフィールドの値は「glasstest」です。

  1. / fillpdf?fid = 53&webform [nid] = 4&webform [sid] = 10に戻ると、次のように表示されます

    The SID of this submission is 10. 
    The value of the form component titled textmetest 
    is  .
    

したがって、[webform:meta-sid]トークンと[webform:meta-label-textmetest]トークンは置き換えられますが、トークン[webform:val-textmetest]は置き換えられません。

WebフォームのIDが実際に4、SIDが10、SID 10のtextmetestの値がglasstest、pdfのフォームIDが53であることを確認しました。

URLに存在しないSIDを使用すると(たとえば、/ fillpdf?fid = 53&webform [nid] = 4&webform [sid] = 99)、フィールドに次のように表示されるため、特定の送信にアクセスしようとしていることがわかります:The SID of this submission is . The value of the form component titled is .、つまり、存在しない送信の場合、SIDとタイトルは入力されません。ただし、特定の送信の値を取得することはできません。

代わりにWebformルールを有効にしてみると、代わりにトークン[webform:sid][webform:textmetest-value]、および[webform:textmetest-title]を使用します。これらは、WebformルールがPDFを埋めるために公開する対応するトークンですが、 PDF; 500内部サーバーエラーが発生します。

これを機能させる方法や、Webフォームの値を取得する別の方法について、何か提案はありますか?

2
user1956161

問題は、Fill PDF 7.x-1.9がwebform_get_submission()を介してWebformから$ submission変数の構造が変更されたため、Webform 4では機能しないことです。参照 この投稿 説明とアドホックな修正。

1
user1956161