当サイトでは前からフォームに「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 {
これで受取フォームに差出人名が出るようになります。
 
  
  
  
  
コメント