Topic: eForm ISO-2022-JP版  (Read 15169 times)

Pages: [1] 2  All   Go Down

#1: 10-Feb-2007, 01:05 AM


ZeRo
Posts: 428

WWW
eForm Ver1.4.4.2がリリースされたのに伴い、日本語版改めISO-2022-JP対応版としてアップしました。
既にeFormオリジナルでは、日本語においてもUTF-8でのメール及びEUC-JPでのメール自体は動作する為、日本語版ではなくISO-2022-JP版と今後は表記します。
ISO-2022-JP版とオリジナルとの違いは、メールのエンコードのみが違います。
一般的な7bitエンコードでの利用をお考えの方は、本ISO-2022-JP版をお使いください。

5/14 更新
 1.4.4a(バグ修正版)になりました。
5/16 更新
  Langファイル euc-jp版のファイル名の訂正をしました。

* eform_144a_iso-2022-jp_a.zip (112.89 KB - downloaded 935 times.)
« Last Edit: 15-May-2007, 09:47 PM by ZeRo »

#2: 1-Mar-2007, 08:59 PM

kept8760
Posts: 7

kept8760と申します。

eForm 1.4.3JP ありがとうございます。活用させていただいています。
一点だけ、気になったところがありましたので(こちらに報告するのが
正しいかどうかわかりませんが)報告します。

eFormで必須項目に、値を入力しなかった場合にはエラーメッセージが
出ますが、1.41jpから1.4.3jpに変えてから出なくなりました。
調べて見たところ、1.4.2以降でeFormの仕様が変わっており、
$_lang["ef_validation_message"]の中に、[+ef_wrapper+]
が無いと、エラーメッセージが表示されないようになっていました。

そこで
eform/lang/japanse-euc.inc.php
eform/lang/japanse-utf8.inc.php

$_lang["ef_validation_message"] = "<strong>いくつかのエラーが見つかりました</strong><br />";
の行を
$_lang["ef_validation_message"] = "<div class=\"errors\"><strong>いくつかのエラーが見つかりました</strong><br />[+ef_wrapper+]</div>";
に変更したところ、エラーメッセージが表示されるようになりました。

==以上です==

#3: 1-Mar-2007, 10:07 PM


ZeRo
Posts: 428

WWW
どうも、報告ありがとうございますぅ
後ほど、修正してあげなおしておきます

ちょっとこのところ忙しいので、とりあえず ありがとうございましたぁ。
ほかにもあるかも・・知れません、だいぶ構造が変わっているようなので・・・
ではではm(_._)m

#4: 3-Mar-2007, 04:19 AM

acnakada
Posts: 47

早速使わせていただきました。ありがとうございます。

問い合わせページは
[!eForm? &formid=`feedbackForm` &to=`XXXX@AAAA.com` &tpl=`eFeedBackForm` &report=`eFeedbackReport` &thankyou=`eFeedbackThanks` &mailselector=`department` &vericode=`1` &subject=`お問い合わせ` !]
としています。

ただ、メーラーで、問い合わせメールのメールアドレスをクリックして(返信しようとすると)
タイトルが下記のように表示されます。(文字化け?)

RE:$B$*Ld$$9g$o$;(B

どうすれば解決できますでしょうか?
ご教授お願いいたします。

#5: 3-Mar-2007, 08:49 AM


ZeRo
Posts: 428

WWW
メーラーはなにをお使いですか??
返信の操作では化けないとか???

ちなみに、届いたメールは正常に読めるんですよねぇ?

ちょっとわかりませんが、メールのソースを見ればわかるかなぁ

化けているというよりは、JISコードそのままが出てる感じですねぇ。
ISO-2022-JPでPlainであれば、そんな風に実際は7bitコードで出てるので正しいんですけど、JISをちゃんと全角表示できてないのが原因だとは思うんですが、見当が付きません。
まずは、最初の2つ質問からですかねぇ

#6: 5-Mar-2007, 04:23 AM

acnakada
Posts: 47

メーラーはなにをお使いですか??
返信の操作では化けないとか???

ちなみに、届いたメールは正常に読めるんですよねぇ?


ありがとうございます。

メーラーはOutlook Express 6 です。
届いたメールは下記のように正常に読めます。
Quote
ホームページからお問い合わせがありました。
山田太郎 様に、至急ご返答を御願いします。
お名前:山田太郎
メール:XXXX@xxxx.jp
内容:test
次のEmailへ返答してください。 XXXX@xxxx.jp

次のEmailへ返答してください。のXXXX@xxxx.jp
このメールアドレスを押下すると、送信画面で、件名が化けています。

ちなみに、
メーラーをThunderbirdでみると
Quote
ホームページからお問い合わせがありました。
山田太郎 様に、至急ご返答を御願いします。
お名前:山田太郎
メール:XXXX@xxxx.jp
内容:test
次のEmailへ返答してください。 XXXX@xxxx.jp
<mailto:XXXX@xxxx.jp?subject=RE:お問い合わせ>

となって、文字化けもなく正常でした。
Outlook Expressの問題なのでしょうか?
« Last Edit: 5-Mar-2007, 04:33 AM by acnakada »

#7: 5-Mar-2007, 08:53 AM


ZeRo
Posts: 428

WWW
ああ、多分 メールのテンプレート(っていうか本文)の中がHTMLになっているんですね。
なので、Subjectの中身はJISなので、それがOEだとそのまま出ちゃうっていうことみたいです。
んーー、ちょっとOE使っていないのでなんともいえないんですが、ISO-2022-JPで出さないでUTF-8でしたら直るのかも・・。
JP版ではなくて素のeFormでUTF-8またはEUC-JPのままメールを出したらどうでしょうか??
または、このメールがHTMLメールではないとしたらHTMLメールとして出したらどうでしょう?

どちらも決定打にはなりませんので、なんともいえないんですが・・・。

#8: 12-Apr-2007, 08:55 AM


ZeRo
Posts: 428

WWW
トピあげ・・・
表題を変えました・・・eForm1.4.4.2から日本語UTF-8言語ファイルが仲間入りされたのを気に、eForm 日本語版というよりもISO-2022-JP版に名称変更しました。
オリジナルの場合の日本語メールは、それぞれUTF-8,EUC-JPのメールが送られます。
日本で一般的なJISメールにするには、このISO-2022-JP版をご利用ください。
なお、言語ファイルはオリジナルのままです。
ダウンロードは、一番上です♪

#9: 10-May-2007, 10:50 AM


MEGU
Posts: 890

WWW
ZeRoさん。いつもありがとうございます。

eForm ISO-2022JP版についてなのですが、よろしくお願い致します。

&subject に日本語を指定すると、メールを受信した際、
タイトルが文字化けしていると言いますか、、以下のようになってしまうのです。

Quote
=?iso-2022-jp?Q?=1B$B%5%$%H$K4X$9$k$40U8+!&$*Ld$$9g$o$;=1B(B?=

メーラーはOE6です。OEのせいでしょうか?
ただ、以前のバージョン1.4.1jpでは、うまくいっていた
ような気がするのです。。

fromname は、日本語でも問題ありませんでした。
よろしくおねがいします。

#10: 10-May-2007, 09:54 PM


ZeRo
Posts: 428

WWW
うーむ、、、、こちらでテストしてみたんですがOEでもTBでも正常に表示しちゃいますねぇ
実際に送られてくるデータは、MEGUさんと似たような感じです
Code:
Subject: =?iso-2022-jp?Q?=1B$B$W$A$dLd$$9g$o$;=1B(B?=
簡単なPHPのプログラムでデコードしたところ、正常にSJIS変換できたので、変換ミスではなさそうですが・・・。
試しに、MODxMailerの箇所のiso-2022-jpをUTF-8にしてUTF-8だとどうでしょう??
または、届いたメールをそのまま編集せずに転送してもらえます??

#11: 11-May-2007, 03:00 AM


MEGU
Posts: 890

WWW
ZeRoさん。ありがとうございます。
判明しました。。

先日、「管理画面ログイン画面」でのパスワードリマインダから送信される
メールが文字化けしているので、php.iniに以下の一行を追加したのですが

Code:
mbstring.func_overload = 1

これを入れたことにより、eFormから送信されるメールの
2バイト文字のタイトルが、先に書いたような状態で送信される
ようになった模様です。。

今、上記の1行を削除し、eFormから再度送信したところ、
タイトルもきちんと日本語で表示されました。

この一行があると、reportテンプレート中のたとえば、<p></p>などが
メール本文中にそのまま(文字として)出力されるのですが、この1行をなくすと、
<p>~</p>が段落として認識されるようになりました。

したがって、eFromのバージョンによる違いなどでなはなく、
原因は、こちらのphp.iniの設定によるものでした。。
すみません。。

#12: 11-May-2007, 03:36 AM


ZeRo
Posts: 428

WWW
なるほど、MIME化されたのをまたMIME化されちゃったつうことですね
そういえば、OEひさびさに使ってみてメールソースが見れなかったなぁと今気づいたり・・・

#13: 15-May-2007, 10:00 AM


ZeRo
Posts: 428

WWW
EUC-JPのLangファイル名がおかしいのに気がつきました Cry
とりあえず、EUC-JP版をお使いの方はjapanese-euc-jp.incになっているものをjapanese-euc.inc.phpにしてアップロードしてください。
また、日本語になっている箇所は好きなように修正して使ってください。
バリデーション関係の文言は、サイトのイメージに合わせたメッセージにしたほうがよいでしょう。
ちょっとそっけないので Undecided

#14: 15-May-2007, 09:48 PM


ZeRo
Posts: 428

WWW
上の言語ファイル名問題の修正版をトピックス先頭にあげときました。

#15: 15-May-2007, 10:42 PM


MEGU
Posts: 890

WWW
こんにちは。あの、少しお願いが。。

エラーメッセージの部分をリスト表示にしたくて、悪戦苦闘したのですが、
一部はうまくいってるようなんですけども、場合によって?うまく、
htmlコードを書き出してくれないようなのです。

いちおう、自分で変えたのをここに貼ってみます。
良かったら、見て頂けると嬉しいのですが。。。

eform.inc.php と japanese-utf8.inc.php です。

言語ファイルに書いて良いものかどうかも、わからず。。
eform.inc.php の方は2カ所替えてあって、エディタなどで「MEGU」
で検索して頂くと、直した箇所がヒットすると思います。
しかし、ここを直して良かったのかどうかも、まったく手探りで。。

できれば、うまくリスト表示できるように手を入れて頂けたら、
うれしいのですが。。すみません。いつもお願いばかりで。。
よしくおねがいします。。

* eform.inc.megu.zip (13.01 KB - downloaded 306 times.)

#16: 22-Jul-2007, 08:07 AM


ZeRo
Posts: 428

WWW
今頃気づきました。 すでに解決済みかも知れませんが・・・。

2つの修正箇所がありましたが、先頭の修正箇所を以下のようにしたらどうでしょう?
290行目あたりを
Code:
$vtmp = "<ul><li>";
$vtmp = implode("</li><li>",$vMsg);
$vtmp = substr($vtmp,0,-4);
$tmp .= $vtmp."</ul>";
1030行目あたりのは修正はなくてもいいと思います。
ってなことで

#17: 29-Jul-2007, 09:02 AM


MEGU
Posts: 890

WWW
ZeRoさん。いつもどうもありがとうございます。
こちらこそ、お返事が遅くなり、ごめんなさいです。

教えて頂いたとおり、コードを変更してみたのですが、
htmlタグが上手く生成されないみたいなのです。

eFormのエラーメッセージって一カ所?に固まってなくて、
ばらけて存在しているみたいです?

たとえば、ある、条件で出力されるエラーメッセージ群であれば、
ZeRoさんのソースでうまくいくのかも知れません。

具体的な状態を書きますと、

Code:
<div class="errors"> … 言語ファイルから読み出し
 <strong>いくつかのエラーが見つかりました</strong><br /> … 言語ファイルから読み出し
   メッセージの種類は、必須項目です<br /> … 言語ファイルから読み出し
   有効なコードではありません</li> … 言語ファイルから読み出し
 <li>お名前 &raquo; お名前を入力してください</li></li> … フォームの入力チェックで記述したエラーメッセージ
 <li>メールアドレスは、有効なメールアドレス形式ではありません</li>… 言語ファイルから読み出し
 <li>メッセージ &raquo; メッセージを入力してください … フォームの入力チェックで記述したエラーメッセージ
< … これはなんだろ?(私がどこかで記述ミスしているかも...)
</ul> 
</div> … 言語ファイルから読み出し

こんな感じになっていて、ZeRoさんのソースの最初の「$vtmp = "<ul><li>";」が
なんかどこかにいってしまってるみたいなんです。。

#18: 29-Jul-2007, 11:45 PM


ZeRo
Posts: 428

WWW
すいません、間違えてました

Code:
$vtmp = implode("</li><li>",$vMsg);
$vtmp = substr($vtmp,0,-4);
$tmp .= "<ul><li>".$vtmp."</ul>";
だと、一箇所表示ならいけそうな・・・
各項目の箇所箇所で表示のしくみが理解できてなかったり・・・

#19: 30-Jul-2007, 08:20 AM


MEGU
Posts: 890

WWW
こんにちは。
どうもありがとうございます。ソースを変更して試してみました。

言語ファイルの「$_lang["ef_validation_message"]」が大外のタグをはき出しているようなんです。
デフォルトでは以下のようになっています。
Code:
$_lang["ef_validation_message"] = "<div class=\"errors\"><strong>いくつかのエラーが見つかりました</strong><br />[+ef_wrapper+]</div>";
で、この[+ef_wrapper+]のなかに、エラーメッセージ群が放り込まれるってことですよね?

例えば、メールアドレスに関するエラーメッセージだけを表示させてみました。
このエラーメッセージは、言語ファイル「$_lang["ef_invalid_email"] = "は、有効なメールアドレス形式ではありません";」から
読み込まれていると思うのですけれども、htmlは以下のようになりました。

Code:
<div class="errors">
<strong>いくつかのエラーが見つかりました</strong><br />
<ul>
 <li>メールアドレスは、有効なメールアドレス形式ではありま�
</ul>
</div>
リストの最後の</li>が表示されない状態です。言語ファイルに</li>を書いちゃえば
いいでしょうか。。?でもそうすると、言語ファイルのなかの全部のエラーメッセージの
最後に</li>を書かないとダメってことですよね...?

また入力フォームに書いたエラーメッセージだけを表示してみますと以下のようになりました。
Code:
<div class="errors"><strong>いくつかのエラーが見つかりました</strong><br /><ul><li>お名前 &raquo; お名前を入力してくだ�</ul></div>

そして、「$_lang["ef_required_message"] = "{fields}は、必須項目です<br />";」だけを表示させると
Code:
<div class="errors"><strong>いくつかのエラーが見つかりました</strong><br />お名前は、必須項目です<br /><ul><li></ul></div>
このようになります。。

#20: 30-Jul-2007, 09:00 AM


ZeRo
Posts: 428

WWW
あちゃ、簡単にはいかないっすねぇ
vMsgの配列のメッセージをなんとかすればいいかと思いますが、どうやらそれだと駄目っぽいですね
ちなみに、文字化けしちゃうのはミスでした
Code:
$vtmp = implode("</li><li>",$vMsg);
$vtmp = substr($vtmp,0,-4);
ではなくて
Code:
$vtmp = implode("</li><li>",$vMsg);
$vtmp .= "</li>";

これで、つじつまは合うようになるんですけど、必須項目の表示はef_required_messageの方にLI付の記述をしないと駄目ですね。
後は、<br />[+ef_wrapper+]が味噌なので
ULはこっちに書いてしまって、vMsgや上記の必須の方はLIタグで囲めばいけるのかも???


Pages: [1] 2  All   Go Up
0 Members and 1 Guest are viewing this topic.