PR(記事内にアフィリエイト広告が含まれています)
スポンサーリンク
Nucleus

フォームに項目追加

当サイトでは前からフォームに「Res on web ?」という欄をつけておいて、NGだったらサイト上では扱わない、という方針をとってました。しかしコア改造する部分だったせいか、気がついたら項目は表示されてても、受信するメールでその欄が表示されてなかったのでした*1。というわけで今後のために改造ポイントをメモしておきます。
なお、この記事のようにテンプレートファイルを変更しておいて、項目名を増やしておく必要がありますので要注意。

  • 注1 : フォームのテンプレートファイルはアップグレードしても書き換え対象外のファイルなので。アップグレード後半年経過して気付いた事実から何かを察してください。


nucleus/nucleus/forms/membermailform-notloggedin.template に下記部分を追加。

<textarea name="message" class="comfield" rows="<%formdata(rows)%>" cols="<%formdata(cols)%>"><%formdata(message)%></textarea><br>
<br />
//20061106_takehana_add_s
Res on web ?<br>
<input type="radio" name="res" value="ok" CHECKED>OK <input type="radio" name="res" value="ng">NG<br>
//20061106_takehana_add_e
<br>
<%callback(FormExtra,membermailform-notloggedin)%>

nucleus/nucleus/lib/ACTION.php に下記部分を追加。

//20061106_takehana_add_s
$res = requestVar('res');
if (!$res) $res = 'mine';
//20061106_takehana_add_e
$tomem = new MEMBER();
$tomem->readFromId(postVar('memberid'));
(中略)
//20061106_takehana_add_s
 . "RES : " . $res . " \n"
//20061106_takehana_add_e
. "\n"
. postVar('message');
$message .= getMailFooter();

こうすれば、受け取ったフォームメールでOKかNGが表示されるようになります。


あと、ずいぶん前に改造してて忘れてた、非ログイン時にフォーム差出人の名前が出るようにする改造。
nucleus/nucleus/lib/ACTION.php に下記部分を追加。

function sendMessage() の中
$fromMail = postVar('frommail');
//20050725com
//$fromName = _MMAIL_FROMANON;
//20050725add
$fromName = requestVar('inputname');
} else {

これで受取フォームに差出人名が出るようになります。

コメント

タイトルとURLをコピーしました