Jul 04, 2009, 05:03 AM *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
Search via SMF or Google: modx forums all of modxcms.com web
  MODxCMS.com   Forums   Help Login Register  
News:Read what MODx Developers say: MODx Dev. Blogs
Pages: 1 [2]   Go Down
  Print  
Author Topic: eForm ISO-2022-JP版  (Read 10596 times)
0 Members and 1 Guest are viewing this topic.
ZeRo
Sr. Member
****
Posts: 426



WWW
« Reply #15 on: Jul 22, 2007, 08:07 AM »

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

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

MEGU
Committed to MODx
*****
Posts: 873



WWW
« Reply #16 on: Jul 29, 2007, 09:02 AM »

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>";」が
なんかどこかにいってしまってるみたいなんです。。
Logged
ZeRo
Sr. Member
****
Posts: 426



WWW
« Reply #17 on: Jul 29, 2007, 11:45 PM »

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

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

MEGU
Committed to MODx
*****
Posts: 873



WWW
« Reply #18 on: Jul 30, 2007, 08:20 AM »

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

言語ファイルの「$_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>
このようになります。。
Logged
ZeRo
Sr. Member
****
Posts: 426



WWW
« Reply #19 on: Jul 30, 2007, 09:00 AM »

あちゃ、簡単にはいかないっすねぇ
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タグで囲めばいけるのかも???


Logged

MEGU
Committed to MODx
*****
Posts: 873



WWW
« Reply #20 on: Jul 31, 2007, 02:07 AM »

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

いろいろ、試しているのですが、どうにもパターンをつかめません。。
エラーメッセージの部分で、<ul><li>~</li></ul>を利用できるロジックになってないんでしょうか。。
(なってないんですよね。。きっと)。

それでもう少しがんばってみたいのですが。。
まず以下のようにしてみました

eform.inc.php 側
Code:
$vtmp = implode("</li><li>",$vMsg);
$vtmp .= "</li>";
$tmp .= "<li>".$vtmp."";

言語ファイル側
Code:
$_lang["ef_validation_message"] = "<div class=\"errors\">
<p><strong>いくつかのエラーが見つかりました</strong></p>
<ul>
[+ef_wrapper+]
</ul>
</div>";

とりあえずここまではOKでしょうか...?

---*---*---*---*---*---
追記
あと、言語ファイルを以下のようにしました。
Code:
$_lang["ef_required_message"] = "<li>{fields}は、必須項目です</li>";
« Last Edit: Jul 31, 2007, 02:25 AM by MEGU » Logged
MEGU
Committed to MODx
*****
Posts: 873



WWW
« Reply #21 on: Jul 31, 2007, 07:10 AM »

動作報告致します。よろしくお願い致します。
efrom.inc.phpおよび、言語ファイルは直前の書き込みのままです。

この時、言語ファイル「$_lang["ef_required_message"] = "<li>{fields}は、必須項目です</li>";」から
呼び出されるエラーメッセージが1個ならばいいあんばいなのですが、例えば以下のようです。
Code:
<div class="errors">
<p><strong>いくつかのエラーが見つかりました</strong></p>
<ul>
<li>お名前は、必須項目です</li>
</ul>
</div>

しかし2個(以上)になりますと、以下のようになります。
Code:
<div class="errors">
<p><strong>いくつかのエラーが見つかりました</strong></p>
<ul>
<li>お名前, メッセージは、必須項目です</li><li></li>
</ul>
</div>

よろしくお願いします。。
Logged
ZeRo
Sr. Member
****
Posts: 426



WWW
« Reply #22 on: Jul 31, 2007, 09:20 AM »

ちょっと実際に動かしてみます。
ちょうど、MODxのサイトのサーバ移転作業と合わせて、PHP5周りでのeFormも確認しないといけないので・・。
eFromに辿り着く前にCSSに嵌っちゃってますけど・・・しばし時間くださいませ。
って 本当にうまくいけるかがちょっと微妙ですけど・・・。ロジック変更せずにうまくいけないかなぁ
2つ目がメッセージなしっていうのが気になりますが
Logged

MEGU
Committed to MODx
*****
Posts: 873



WWW
« Reply #23 on: Jul 31, 2007, 09:27 AM »

ありがとうございます。
了解しました。どうぞよろしくおねがいいたします。

えと。これはですね。。
Quote
2つ目がメッセージなしっていうのが気になりますが

必須項目が二つ以上の場合も1個の<li>~</li>の中にまとめられるようなのです。
たとえば、ひとつだと、
Code:
<li>メッセージA、必須項目です</li>
二つだと、
Code:
<li>メッセージA, メッセージBは、必須項目です</li>
といった具合に。。で、2個以上の時、
Code:
<li>メッセージA, メッセージBは、必須項目です</li><li></li>
になると。。
« Last Edit: Aug 01, 2007, 03:13 AM by MEGU » Logged
ZeRo
Sr. Member
****
Posts: 426



WWW
« Reply #24 on: Aug 01, 2007, 03:36 AM »

Code:
$tmp = (count($rMsg)>0)?str_replace("{fields}", implode(", ",$rMsg),$_lang['ef_required_message']):"";
$tmp .= (count($vMsg)>0)? "<li>".implode("</li><li>",$vMsg)."</li>" :"";
こんな感じの修正でどうでしょう?
今までの$vtmpで一旦入れていたのをやめてシンプルに修正してみました。
空行が出るのは、$vMsgに何も入ってない場合でもLIタグ使っていたので、それを判別してLIタグをつけるようにしました。
これが2行目の修正です。
必須項目は、現状のままカンマ区切りになっちゃいますが・・・これを引っ剥がして1行ずつがよいんですか?
Logged

MEGU
Committed to MODx
*****
Posts: 873



WWW
« Reply #25 on: Aug 01, 2007, 07:57 AM »

ZeRoさん。ありがとうございます。試してご報告いたします。
Quote
必須項目は、現状のままカンマ区切りになっちゃいますが・・・これを引っ剥がして1行ずつがよいんですか?
いえ、カンマ区切りで良いです。このままで。。

---*---*---*---*---*---
2007.08.02 追記
試してみました。大丈夫そうです。
どうもありがとうございました。
サイトの方にも掲載させて頂きます。^^。
« Last Edit: Aug 02, 2007, 01:26 AM by MEGU » Logged
Pages: 1 [2]   Go Up
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP

Copyright © 2005-2008 MODxCMS, All rights reserved. Contact Us
Styles by ziworks.com

Powered by SMF | SMF © 2006-2008, Simple Machines LLC

Valid XHTML 1.0! Valid CSS!