SOY CMSのSOY Inquiryのフォームに一工夫加える
- 投稿日時
- 2010/02/05 13:13
- カテゴリー
- cms
- タグ
- 記事のURL
- http://tshinobu.com/blog/archives/285
- ブックマーク
SOY CMS の SOY Inquiry は簡単にお問い合わせフォームを作ることができます。お問い合わせされた内容はCSVではき出したり SOY Mail で管理することができるので大変便利です。いくつかのサイトで利用させてもらっているのですが、出力されるフォームをカスタマイズしたいということがあると思います。チェックボックス「その他」の後に入力ボックスをつけたい、メールやサンクス画面で項目名がまるまる表示されてしまうので管理用とは別に表示用の長い項目名を使用したい、など。そういうときに使えるハックを覚書しておきます。SOY CMSの既存ファイルを優先的に表示する特性を活かした、フォームの入力画面を静的HTMLで偽装する方法です。
1.app/webapp/inquiry/src/template/以下のSOY Inquiryのテンプレート、form.phpとconfirm.php中の <form aciton="#"> を <form action="index.php"> へ変更しアップロードし更新します。
2.出力されたフォームをファイル名index.htmlでローカルに保存します。
3.保存したフォームのHTMLファイルをエディタなどで直接編集しカスタマイズしていきます。
フォームの項目名や項目の表示位置などを変えていきますが、name属性やvalue値は変更しないでください。
フォームの最後のほうにある、 <input name="data[hash]” type=”hidden” value=”ほげほげ” /> はコメントアウトしておきます。
4.保存したフォームのHTMLの一番上に以下の記述を加えます。
<?php
if(isset($_GET["complete"])){
header("HTTP/1.1 301 Moved Permanently");
header("Location: <お問い合わせフォームのURL>/index.php?complete&trackid=".$_GET["trackid"]);
exit();
}
?>
5.保存したフォームのHTMLを、お問い合わせフォームのURLと同じディレクトリ構成でアップロードします。
6.お問い合わせフォームのURLと同じディレクトリに以下内容が含まれる.htaccessを制作しアップロードします。
AddType application/x-httpd-php .htm .html
7.お問い合わせフォームへはindex.htmlでリンク、もしくはスラ止めにしたときにindex.htmlが表示されるようにしておきます。以上で完成です。
最初は静的なHTML(index.html)を表示させて、データの投入はSOY Inquiry(index.php)にリンクさせています。フォームの最初の画面のみ注意事項が表示されるといったことも可能ですので、一手間かかりますが細やかなカスタマイズをしたリッチなフォームを作ることができます。ただし、送信後の画面から「訂正する」を押すとカスタマイズ前のSOY CMS独自のページとフォームになりますので、デザインの変更程度にとどめるのがよろしいかと思います。ちょっと変えたいといったときに試してみてください!バージョンやサーバ環境のかねあいもありうまくいかなかったらごめんなさい。あと脆弱性につながるようでしたらこそっと教えてください。
なお、2月20日に開催する「CSS Nite in TAKAMATSU, Vol.2 powered by KDDIウェブコミュニケーションズ 国産CMS特集」でこのSOY CMSについて触れられます。昨今業界で多く取り上げられている各種CMSを知ることは、Web業界の流れを知り、これからWeb制作を行っていく上で重要なポイントになると思います。またCMSの導入に併せて考えないといけないのがレンタルサーバー選び。レンタルサーバー選びのツボも教えていただけるとのこと。興味のある方はぜひご参加ください。





