POST_2GET・POST_2GET_Ajax
パラメータを指定してリダイレクト
パラメータをPOSTで送信する事により、パラメーターに沿ったURLを組み立ててリダイレクトする事ができます。
以下の例では、bid=1(news)cid=3(economy)を指定して http://sample.com/news/economy/ にリダイレクトします。
<!-- ボタンを押すと /news/economy/ にリダイレクトされる --> <form action="" method="post"> <input type="hidden" name="bid" value="1"> <input type="hidden" name="cid" value="3"> <input type="submit" name="ACMS_POST_2GET" value="経済ニュースに移動"> </form>
パラメータをhiddenで指定して、submitのname属性 に ACMS_POST_2GET または ACMS_POST_2GET_Ajax(Ver. 3.1.17以降)を指定する事により動くようになります。パラメータには acmsパス が利用できます。
POST_2GETの例
<!-- ID を指定 IDに沿ったURLが生成されます。 --> <input type="hidden" name="bid" value="1"> <input type="hidden" name="aid" value="1"> <input type="hidden" name="uid" value="1"> <input type="hidden" name="cid" value="1"> <input type="hidden" name="eid" value="1"> <input type="hidden" name="cmid" value="1"> <input type="hidden" name="tdid" value="1"> <!-- キーワードを指定 --> <input type="text" name="keyword" value="%{KEYWORD}"> <!-- タグを指定 --> <input type="hidden" name="tag[]" value="aaa"> <input type="hidden" name="tag[]" value="bbb"> <!-- フィールドを指定 --> <input type="hidden" name="hoge" value="aaa"> <input type="hidden" name="field[]" value="hoge"> <!-- 表示順を指定 --> <input type="hidden" name="order" value="datetime-asc"> <!-- 日時 ( 昇順 ) --> <input type="hidden" name="order" value="datetime-desc"> <!-- 日時 ( 降順 ) --> <input type="hidden" name="order" value="code-asc"> <!-- ファイル名 ( 昇順 ) --> <input type="hidden" name="order" value="code-desc"> <!-- ファイル名 ( 降順 ) --> <input type="hidden" name="order" value="id-asc"> <!-- ID ( 昇順 ) --> <input type="hidden" name="order" value="id-desc"> <!-- ID ( 降順 ) --> <input type="hidden" name="order" value="sort-asc"> <!-- 表示順 ( 昇順 ) --> <input type="hidden" name="order" value="sort-desc"> <!-- 表示順 ( 降順 ) --> <input type="hidden" name="order" value="field-asc"> <!-- フィールド ( 昇順 ) --> <input type="hidden" name="order" value="field-desc"> <!-- フィールド ( 降順 ) --> <input type="hidden" name="order" value="intfield-asc"> <!-- 数値フィールド ( 昇順 ) --> <input type="hidden" name="order" value="intfield-desc"> <!-- 数値フィールド ( 降順 ) --> <input type="hidden" name="order" value="random"> <!-- ランダム --> <!-- テンプレートを指定 --> <input type="hidden" name="tpl" value="/include/sample.html"> <!-- ページを指定 --> <input type="hidden" name="page" value="3"> <!-- 表示数を指定 --> <input type="hidden" name="limit" value="50"> <!-- 期間を指定 --> <input type="hidden" name="start" value="2014-01-01 00:00:00"> <input type="hidden" name="span" value="span"> <input type="hidden" name="end" value="2015-12-31 23:59:59"> <!-- 日付を指定 --> <input type="hidden" name="date" value="2015/12"> <input type="hidden" name="date[0]" value="2015"> <!-- 年を指定 --> <input type="hidden" name="date[1]" value="12"> <!-- 月を指定 --> <input type="hidden" name="date[2]" value="31"> <!-- 日を指定 --> <!-- クエリストリングを指定 ?key1=aaa&key2=bbb--> <input type="hidden" name="key1" value="aaa"> <input type="hidden" name="key2" value="bbb"> <input type="hidden" name="query[]" value="key1"> <input type="hidden" name="query[]" value="key2">
フィールドの指定にはもっと細かい指定ができますので、カスタムフィールドの検索 を参考ください。
キーワード検索(全文検索)について詳しく知りたい方はキーワード検索フォーム(全文検索フォーム)をご確認ください
POST_2GET と POST_2GET_Ajax モジュールとの違い
tpl指定した場合の挙動が異なります。「ACMS_POST_2GET」モジュールの場合、tpl指定されていても、URLにtplコンテキストが入らない場合があります。
以下の例でURLの違いを見てみます。ここで「%{CID}」は「news」カテゴリーを指定しているものとします。
<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" />
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」の場合でも、テンプレートをカテゴリディレクトリに設置すれば解決しますが、多くのカテゴリがある場合は同じテンプレートをカテゴリー毎に設置しないといけなくなります。