PowerCMS™
2025年1月1日購入分よりライセンスの価格を改定いたします。
[ブログ] PowerCMS 6 でのアップデートまとめ を追加しました。
[よくあるご質問] システムログに「タスクを実行するために必要なロックを獲得できませんでした」というログが残っている を追加しました。
[よくあるご質問] 特定のシステムログに絞って確認できますか? を追加しました。

PowerCMS ブログ

ホーム > PowerCMS ブログ > 技術情報 > URLのパラメータの値をContactFormの投稿に保存する

2019年03月20日

URLのパラメータの値をContactFormの投稿に保存する

ContactForm の流入元を記録する為にURLにパラメータを付けるなどを行う場合があるかと思います。今回はこのパラメータの値を投稿データとして保存する方法をご紹介します。

まず値を保存するためのフォーム項目を作成します。タイプを「テキスト」、ベースネームを URL パラメータと同じ名前にします。テンプレートには以下の内容を指定します。

<mt:setvarblock name="request_basename">request.<mt:var name="field_basename"></mt:setvarblock>
<input type="hidden" id="<mt:var name="field_basename">" name="<mt:var name="field_basename">" value="<mt:var name="$request_basename" escape="html">"/>

「request.」から始まる変数を DynamicMTML または CGI でレンダリングされるテンプレートから参照すると、リクエストパラメータの値を参照することができます。たとえば「request.foo」でリクエストパラメータ「foo」の値を参照することができます。これを利用してベースネームと同じ名前のパラメータの値を取得します。あとはその値を input type="hidden" に設定します。

このフォーム項目を使用したフォームを設定したページまたは記事を DynamicMTML を使用して表示すると、URL に指定したパラメータの値がフォームに取り込まれ、投稿データとして保存されます。

DynamicMTML が使用できない場合は、以下の URL で ContactForm を直接表示することでこの仕組みを利用することができます。独自のパラメータはこのURLの末尾に追加します。

?__mode=view&blog_id={フォームのブログID}&id={フォームのID}&object_id={フォームが埋め込まれたページまたは記事のID}&model={ページであれば page、記事であれば entry}


カテゴリー
DynamicMTML
技術情報
投稿者
Sakai Ryuji

Recent Entries