POSTモジュールについて
ポストインクルードでは通常「ACMS_POST_2GET」モジュールを利用します。
<form action="" method="post" class="js-post_include-ready">
<input type="text" name="keyword" value="" size="15" />
<input type="hidden" name="bid" value="%{BID}" />
<input type="hidden" name="cid" value="%{CID}" />
<input type="hidden" name="tpl" value="include/search.html" />
<input type="submit" name="ACMS_POST_2GET" />
</form>
ACMS_POST_2GETモジュールは、POSTする情報(ブログ情報、エントリ情報、テンプレート、キーワードなど)から、URLに変換してリダイレクトします。ポストインクルードではこのリダイレクトされたURLのHTMLを取得して表示します。
POST_2GET_Ajax
Ver. 3.1.17 から新しいモジュール「ACMS_POST_2GET_Ajax」が利用できるようになりました。
ACMS_POST_2GETモジュールとの違い
tpl指定した場合の挙動が異なります。「ACMS_POST_2GET」モジュールの場合、tpl指定されていても、URLにtplコンテキストが入らない場合があります。
以下のポストインクルードを例に実際に取得するHTMLのURLの違いを見てみます。ここで「%{CID}」は「news」カテゴリーを指定しているものとします。
<form action="" method="post" class="js-post_include-ready">
<input type="text" name="keyword" value="" size="15" />
<input type="hidden" name="bid" value="%{BID}" />
<input type="hidden" name="cid" value="%{CID}" />
<input type="hidden" name="tpl" value="search.html" />
<input type="submit" name="ACMS_POST_2GET" />
</form>
ACMS_POST_2GETの場合
https://example.com/news/search.html?keyword=xxxxxx
ACMS_POST_2GET_Ajaxの場合
https://example.com/news/tpl/search.html?keyword=xxxxxx
この場合「ACMS_POST_2GET」の場合は「themes/ご利用テーマ/news/search.html」テンプレートがないと404になりますが、「ACMS_POST_2GET_Ajax」の場合は、tpl指定されているので「themes/ご利用テーマ/search.html」があれば取得できることになります。
「ACMS_POST_2GET」の場合でも、テンプレートをカテゴリディレクトリに設置すれば解決しますが、多くのカテゴリがある場合は同じテンプレートをカテゴリー毎に設置しないといけなくなります。
「ACMS_POST_2GET_Ajax」であれば、必ずURLに「tplコンテキスト」が入るので、1つのテンプレートで済みます。
Ver. 3.1.17 以降のバージョンの場合、ポストインクルードで指定するモジュールは「ACMS_POST_2GET_Ajax」をご利用ください。