PEAK XOOPS - Re: ミニ白扇の入力必須チェック例(Re: ミニ白扇の使い方 (1)) in englishin japanese

Re: ミニ白扇の入力必須チェック例(Re: ミニ白扇の使い方 (1))

Target News
Subject ミニ白扇の使い方 (1)
Summary XOOPS 2.0.x用モジュールとして放流しておきながら、あまりにもおざなりなドキュメントで申し訳なかったのですが、一応、ミニ白扇の使い方を書いておきます。第1回は、登録画面とアカウント編集画面だけをカスタマイズしたい(それも項目の追加はなく、デザイン変更もし...

List posts in the topic

none Re: ミニ白扇の入力必須チェック例(Re: ミニ白扇の使い方 (1))

msg# 1.1.1
depth:
2
Previous post - Next post | Parent - Children.1 | Posted on 2007/1/12 7:47
jidaikobo  上等兵   Posts: 26
jidaikobo です。GIJOE さん、ご勘案ありがとうございます!

で、さっそく1.08で遊んでみたんですが、ちょっと気になることがあり、ご報告させてください。

1.08だと、オリジナルのエラーを吐こうとすると、エラー報告が2段階に分かれちゃいます。
たとえば下記のような入力必須項目を用意してみたんですが……

if( ! empty( $_POST['do_register'] )){
	if($_POST['familyname']==''){
		$stop_reason_extras[] = "姓は入力必須項目です。<br />";
	}
}

新規登録でいっさい入力せずにエンターすると、まずは minihaku の config のエラーからのみ処理されます。つまりエラーは「姓は入力必須項目です。」だけが表示されます。
で、このエラーを乗り越えると、あらためて ID を入れなさい、とかパスワードを入れなさい、というエラーが来ます。

これはどうやら54行目で、$stop_reason_extras の処理をしてから従来のエラーを処理しているからのようでして、段階を分けると、一発でエラーがくるようです。

if( ! empty( $_POST['do_register'] ) && empty( $stop_reason_extras ) && ! ( $stop_reason = userCheck( $allowed_requests['uname'] , $email4check , $allowed_requests['pass'] , $allowed_requests['vpass'] ) ) ) {
を下記のようにすると、エラーが来ます。
if( ! empty( $_POST['do_register'] ))$stop_reason = userCheck( $allowed_requests['uname'] , $email4check , $allowed_requests['pass'] , $allowed_requests['vpass'] );
if( ! empty( $_POST['do_register'] ) && empty( $stop_reason_extras ) && empty( $stop_reason ) ) {
いかがでしょうか??

■ここからは趣味の問題かもしれませんが、いちおうご報告。
で、こうすると、なんとなく169行目のエラー表示順をいじりたくなります。
ID やらパスワードのエラーの行に続けて追加項目のエラーを表示したいということです。

'stop_reasons' => array_merge( $stop_reason_extras , $stop_reasons ) ,
'stop_reasons' => array_merge( $stop_reasons , $stop_reason_extras ) ,

で、うかつにこれをしてしまうと、配列にしたエラー文字列が、explode の仕様のため、ひとつ余分に配列を作る(?)ため(末尾の<br />のせい?)、エラーの文字列の間に変な改行が追加されてしまいます(アサインされているstop_reasonsの順番をいじらなければ、フォームとエラー文の間の<br />になるからいいといえばいいんですが)。
で、エラー文字列からあらかじめ末尾の br をとると、うまくいくんですが、何ともかんともニンニンです。

■さらに趣味の問題ですが続けます。
せっかく配列わたしになったらテンプレートもこうしたいなーと思ったり
#たしかにあんまり HTML のタグまでアサインで渡してもらうよりこっちの方がうれしいですね。

<ul>
	<{foreach from=$stop_reasons item="reason"}>
		<li><strong style='color:#ff0000; font-weight:bold;'><{$reason}></strong></li>
	<{/foreach}>
</ul>
Votes:4 Average:5.00

Posts tree

  Advanced search


Login
Username or e-mail:

Password:

Remember Me

Lost Password?

Register now!