cfFormMailer ver1.3 の文字コード、入力値復元について

質問全般・改善要望
noka
メンバー
メンバー
記事: 84
登録日時: 2013年6月19日(水) 10:02

cfFormMailer ver1.3 の文字コード、入力値復元について

投稿記事by noka » 2013年7月10日(水) 12:12

こんにちは。

modx evo 1.0.10J r-1 にて cfFormMailer ver 1.3 を試させてもらっています。多機能で大変便利だと思います。ありがとうございます。

そのなかで、こちらのサーバー環境による要因なのか分からない点と、少し気になった挙動がありましたので、報告させていただきます。

1)文字コードを、ISO-2022-JP-MS に指定すると文字化けします。
・機種依存文字等の対応にあたって、utf-8ではなくISO-2022-JP-MS を利用することが多いのですが、cfFormMailerの設定でこの文字コードを指定すると、タイトルおよび本文、差出人など全てが文字化けます。デフォルトのISO-2022-JPでは大丈夫です。php.iniの設定の問題なのか、何かご存知でしたら教えていただけると助かります。

・PHP Version 5.3.15
・mbstring関係のシステム情報(必要な時にプログラム側で設定するので、デフォルトは特に設定していません)
  mbstring.encoding_translation =0
  mbstring.http_input =pass
  mbstring.http_output =pass
  mbstring.internal_encoding =
  mbstring.language =neutral
  mbstring.strict_detection =0
----

2)プルダウン入力フォーム(select)の選択項目が初期値と一致する場合に、復元されない。
ローカルなエリアが主なユーザーである場合、住所の都道府県選択の際、初期値でその辺を指定してあげておくと親切だと思います。
しかし、例えば、
・鹿児島県に対して、<option selected="selected" … を指定し、
・ほかの必須項目を入力せずに「確認画面」に遷移する際、入力エラーがあるとその「鹿児島県」は保持されず、リスト冒頭の値になってしまいます(FFで確認)。
・値を復元する処理は[selected="selected"]を除去して、復元すべき選択値へ[selected="selected"]を挿入する処理をされているようなのですが、初期値と選択値が一致する場合に不具合が生じるようです。
本件、途中で方針を変えて、郵便番号からajax住所補完する処理にしたので検証が不十分です。しかし稀にリストの先頭がデフォルトではないようにしたいケースもあるかと思いましたので、ご報告まで。

----

3)(参考)ちょっと困ったこと
レアなケースだと思いますが、入力値検証処理で「指定したフィールドと何れかが入力必須」というメソッドを追加したいと思いましたが、オリジナルのままでは、できませんでした。動機は連絡先として「メール(email)」か「電話(tel)」かのどっちかの欄には必ず入力してね、みたいなフォームを作りたかったからです。

・sameasメソッドと大体同じ感じでいけるかと思いましたが、そもそも値が入力されていない(かつ必須ではない)場合にはスルーされる仕様なので、判定できない感じです。
・また追加用の関数ではパラメータとして自身のラベルを取得できないので、汎用的なエラー表示も難しそうでした。

カスタマイズしてみようかとも思いましたが、やはりレアなケースなのでフォーム設計で「いずれか必須」はとりやめて対応することにしましたので、一応参考として。

------

以上、よろしくお願い致します。