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