LOGIN ID Password Auto Login Register Now! Lost Password?
XUGJ Wiki

ModuleManuals

InquirySP(お問合せスペシャル) anchor.png

機能:メールフォーム
種別:その他コンテンツ
作者:Marijuana
バージョン:1.02 (本文は0.92時点のものです)
動作環境:XOOPS2.0〜、俺的XOOPS
配布元:配布終了
複数設置:モジュール単位、フォーム単位いずれも可能

Page Top

概要 anchor.png

必須項目の設定ができ、入力内容の確認画面を持つフォームを作成できます。フォームごとに送信先を設定でき、複数の送信先も設定できます。また自動返信機能もあります。
XOOPS のテンプレートシステムを使わずに、モジュール内の「templates」フォルダにある設定ファイルを編集することで、フォームを作ります。ここにあるテンプレートファイルを複製することで、いくつでもフォームを作成することができます。
また、フォルダの名前を自由に設定でき、複製を作ることで、いくつでもモジュール単位での複数設置ができます。これによりほぼ無限にメールフォームが増やせます。

Page Top

インストール anchor.png

インストールは通常の方法ですが、これだけではデフォルト状態のフォームしか利用できません。管理画面というものが一切存在しないので、希望するフォームに変更するにはテンプレートファイルを直接編集しなければなりません。

Page Top

使用方法 anchor.png

インストールの項で述べたように、このモジュールには管理画面が存在しません。
思い通りにフォームを変更するにはテンプレートファイル(デフォルトの場合はinquiry_form_0.html)を直接編集します。
これにはHTMLタグの知識と多少のPHPコードへの理解が必要です。先ずサンプル(inquiry_form_0.html)を参考に編集します。
※0.70以前と以後ではテンプレートの仕様が異なっています。0.70以前で作成したテンプレートをそれ以後のバージョンに組み込むと問題が起こる場合があります。
[最近のテンプレートにおける重要な変更点]
テンプレート上部のphpソース内に「自動返信時のテンプレート埋め込み設定」が追加されています。さらにセッションへの代入値に$inq_req->set_session_vars($req_r,'inqr');が追加されています。

HTML内の変更

form name="form1" method="post" action="index.php" id="form1">

form name="form1" method="post" action="<{$fullpath}>index.php" id="form1">

に変更になっています。

Page Top

フォーム項目の追加・編集 anchor.png

template/inquiry_form_0.htmlのソースを見ると上部に「/* * フォームの設定 * */」という部分があります。ここで最初に必要となるフォーム項目を設定します。
書式は「$inqtmp[エレメント名] = array(項目名,型,必須)」という形式で、いくつかサンプルとして最初から入っていますが、これを変更することも可能です。また、エレメント名が重複しなければいくつでも増やすことが出来ます。

エレメント名XOOPSに値を受け渡す為のフォームの項目名です。半角英数字で記入しなければなりません。
項目名確認画面や通知メールで表示される項目名です。日本語で構いません。
受け渡す値のタイプです。文字列(住所や名前など)の場合はtextを、メールアドレスはemailを、長文(問い合わせ内容など)の場合はtareaを、ラジオボタンなど択一の選択肢の場合はoptionを、チェックボックスなど複数選択の場合はarrayを設定します。
必須必須項目には1を、そうで無い場合には0を設定します(email の値だけは0を設定しても必須になります)。
選択肢の場合型をoption又はarrayに設定した場合は、必須の後ろに「,」で区切り「array('選択肢1','選択肢2','選択肢3')」のように記入します。

Page Top

メールの送信先 anchor.png

ソース上部の「メールの送信先」を編集します。メールを受け取る人が一人であれば、$req_m = に、ソース中にある例にならってメールアドレスをひとつ入れておきます。
空欄時は XOOPS の管理画面で設定したサイト管理者がメールの受取人になります。
複数の人にメールを配信したい場合は、これもソース上にある例をコピーして、$req_m = array(); のなかに、シングルクォーテーションで囲んだメールアドレスをカンマ区切りで複数並べます。

Page Top

メールの件名 anchor.png

ソース上部の「メールの件名」を編集します。デフォルトでは「お問合せ」となっているので、これを書き換えます。

Page Top

自動返信時のテンプレート埋め込み設定 anchor.png

デフォルト状態では'name','note','mail','sex','job'の値になっています。
上部の「フォームの設定」で追加や変更をした場合、ここを同じ値に変更します。
もし自動返信時に入力値を埋め込まない場合は、例文に従って値をfalse;にして下さい。

Page Top

フォーム項目のHTMLソース部での書き方 anchor.png

Page Top
通常のテキストフィールド anchor.png

ソース上部「/* * フォームの設定 * */」で、

$inqtmp['furigana'] = array('ふりがな','text','0');

とした場合。

<label for="furigana">ふりがな</label>
<input id="furigana" type="text" name="inqv[furigana]" value="<{$furigana}>" />

value の値を入れておくことで、確認画面から入力ミスで戻ってきたときに、値が保存されます。

Page Top
テキストエリア(長文) anchor.png

ソース上部「/* * フォームの設定 * */」で、

 $inqtmp['addrs'] = array('住所','tarea','0');

とした場合。

<label for="adrs">住所</label>
<textarea id="adrs" name="inqv[addrs]" cols="36" rows="3"><{$addrs}></textarea>

col と rows で入力領域のサイズを指定します。textarea の内容を入れておくことで、確認画面から入力ミスで戻ってきたときに、値が保存されます。

Page Top
ラジオボタン anchor.png

ソース上部「/* * フォームの設定 * */」で、

$inqtmp['sex'] = array('性別','option','0',array('男','女','無回答'));

とした場合。

性別

<label><input name="inqv[sex]" type="radio" value="0"<{if $sex==0}> checked="checked"<{/if}> /> 男</label>
<label><input name="inqv[sex]" type="radio" value="1"<{if $sex==1}> checked="checked"<{/if}> /> 女</label>
<label><input name="inqv[sex]" type="radio" value="2"<{if $sex==2}> checked="checked"<{/if}> /> 無回答</label>

checked="checked" を value の値と同じもので囲むことで、確認画面から入力ミスで戻ってきたときに、値が保存されます。

Page Top
チェックボックス anchor.png

ソース上部「/* * フォームの設定 * */」で、

$inqtmp['job'] = array('職業','array','0',array('プログラマ','ニート','建築関係'));

とした場合。

HTML部分は

職業

<label><input id="job1" name="inqv[job][]" type="checkbox" value="0"<{if $job[0]==1}> checked="checked"<{/if}> /><label for="job1">プログラマ</label>
<label><input id="job2" name="inqv[job][]" type="checkbox" value="1"<{if $job[1]==1}> checked="checked"<{/if}> /><label for="job2">ニート</label>
<label><input id="job3" name="inqv[job][]" type="checkbox" value="2"<{if $job[2]==1}> checked="checked"<{/if}> /><label for="job3">建築関係</label>

のようにします。

inqv[エレメント名][]と、配列になっていることに注意してください。
これで、確認画面から入力ミスで戻ってきたときに、値が保存されます。
※チェックボックスの場合は、type を checkbox にします。

Page Top
ドロップダウン anchor.png

ソース上部「/* * フォームの設定 * */」で、

$inqtmp['sample'] = array('サンプル','option','0',array('サンプル1','サンプル2','サンプル3','サンプル4','その他'));

とした場合、フォームの側は下記のような記述になります。

<select name="inqv[sample]">
    <option value="0"<{if $sample==0}> selected="selected"<{/if}>>サンプル1</option>
    <option value="1"<{if $sample==1}> selected="selected"<{/if}>>サンプル2</option>
    <option value="2"<{if $sample==2}> selected="selected"<{/if}>>サンプル3</option>
    <option value="3"<{if $sample==3}> selected="selected"<{/if}>>サンプル4</option>
    <option value="4"<{if $sample==4}> selected="selected"<{/if}>>その他</option>
</select>

selected="selected" を value の値と同じもので囲むことで、確認画面から入力ミスで戻ってきたときに、値が保存されます。

Page Top

自動返信メール anchor.png

include フォルダに retmess_0.inc というファイルがあるので、これを編集します。EUC 形式で保存するようにしてください。
デフォルトでテンプレート(inquiry_form_0.html)の「自動返信時のテンプレート埋め込み設定」で設定済みの'name','note','mail','sex','job'が使用できるようになっています。(さらに言うとそれらの値はテンプレートで「エレメント名」として定義されています)
それぞれ{name}等と記述することにより値が代入できます。
注文フォームなどに使用する場合はテンプレート側の変更に従って、こちらも書き換えて下さい。

※0.97以下の自動返信メールのcheckbox項目についてちょっとしたバグがあります。
参考及び解決策:
http://www.xugj.org/modules/QandA/index.php?post_id=2640

Page Top

フォームの増やし方 anchor.png

Page Top
モジュール単位で増やす場合 anchor.png

/modules/ フォルダ以下にある inquirysp フォルダを内容ごと複製し、XOOPS にインストールします。フォルダの名称は自由です。

Page Top
テンプレートで増やす場合 anchor.png
  1. inquiry_form_*.html のアスタリスクの部分に任意の数字を入れてファイルを複製します。
  2. 増やしたファイルのフォームと問い合わせ内容を編集し、アップロードします。
  3. /modules/contact/inquirysp/index.php?op=* にアクセスすることでフォームが機能します。

?op= が省略されると ?op=0 となり、inquiry_form_0.html を読み込みます。
自動返信と確認画面は、それぞれ数字をあわせて「retmess_*.inc」と「inquiry_check_form_*.html」を作成します。それぞれ対応するものがない場合は、デフォルトのファイルを使用します。

Page Top

ブロック anchor.png

Page Top

よくある質問 anchor.png

Page Top

フォームを増やしてもメニューに追加されません anchor.png

InquirySP でひとつのモジュール内にテンプレートを複製してフォームを追加しても、XOOPS のメニューには追加されません。なんらかの方法(MultiMenu等)で、フォームへのリンクを別途作ってください。 モジュール自体を複製して増やす場合は、メインメニューに自動的に追加されます。

Page Top

メールアドレスは必須項目からはずせません anchor.png

たとえ「フォームの設定」で、email を入力必須項目としなくても、この値は必須項目からはずせない仕様になっています。メールアドレスを持たない人からのお問い合せには、ダミーのアドレスを入力するように促してください。
readme の更新履歴によると,0.71 で, email は必須でなくすことができる仕様になっている様子です。

Page Top

確認画面の送信ボタンのテキストを変更するには? anchor.png

0.71より前のバージョンでは、送信判定を submit の値で確認していましたが、hidden の name="cmd" で確認するようになったので、送信ボタンの値が自由になりました。しかし、このinput を忘れないで入れるようにしてください。0.71以前は下記のとおり。

Page Top
0.71 anchor.png

テンプレートファイル(inquiry_check_form_*.html)の当該箇所を編集します。

&lt;input type="submit" name="cmd" value="送信" /&gt; 

をたとえば、

&lt;input type="submit" name="cmd" value="Submit" /&gt; 

にします。
index.php の 154行目の値を、テンプレートファイルで設定したものにあわせます。
※デフォルトでは、「送信」になっています。

Page Top

受信したメッセージが文字化けしてしまいます anchor.png

こちら(xoops wiki)を参考にしてください。

Page Top

Tips anchor.png

  • InquirySP のテンプレート内では、Smarty が使えますが、Tom_G3X さんの TinyD Smaryプラグイン(function.tinyD.php)も使えます。これを使うことで、フォーム自体は FTP を経由しないと編集できませんが、フォームに付帯する説明文などは TinyD で管理できます。
Page Top

ライセンス anchor.png

Marijuana氏のモジュールはいつも少しひねったライセンスになっているのでご注意ください。
以前はクリエイティブ・コモンズでしたが、現在はGPL(一部非GPLファイルを含む)のようです。

このモジュールに限らず、個人作成のソフトウェアにはその作者の「想い」が詰まっています。インストールの前に同梱の「ライセンス」ファイルを事前に必ずお読みください。


トップ   凍結 差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 31749, today: 3, yesterday: 2
初版日時: 2006-09-01 (金) 07:35:37
最終更新: 2014-01-13 (月) 22:06:01 (JST) (1229d) by jidaikobo
Back to Page Top
MainMenu
Manuals
Search
XOOPS Official & Dev.
XOOPS Communities