SOY CMS / SOY Shop

ブログトップ

CartLogicのerrorMessageプロパティについて

2014年05月14日

今回はCartLogicのerrorMessageプロパティを見ていきたいと思います。

CartLogicの各種プロパティ




errorMessageプロパティはカート内のエラーメッセージの表示で利用します。




Cart02ページのお客様情報入力ページで、メールアドレスといった必ず入力しなければいけない項目に関して、

入力していなかった、@が入っていなかったといったエラーチェックを行った後のメッセージの表示でerrorMessageプロパティを利用します。


コードを確認すると、

/soyshop/webapp/src/cart/_common/pages/Cart02Page.class.phpの265行目付近の

$res = $this->component->checkError($user, $cart, UserComponent::MODE_CART_REGISTER);から

/soyshop/webapp/src/component/UserComponent.class.phpの243行目のcheckErrorの処理を見ると


/* メールアドレス */
if(tstrlen($user->getMailAddress()) < 1){
	$app->addErrorMessage("mail_address", "メールアドレスを入力してください。");
	$res = false;
}else if(!soyshop_valid_email($user->getMailAddress())){
	$app->addErrorMessage("mail_address", "メールアドレスの書式が不正です。");
	$res = false;
}

入力した内容を元に条件を満たさなかったら、addErrorMessageに何の項目(mail_address)でどのようなエラーなのかを登録しておきます。


エラーがあった場合は次のページに遷移せず同じページに戻り、

/soyshop/webapp/src/cart/_common/pages/Cart02Page.class.phpの183行目付近の

$this->component->buildForm($this, $user, $cart, $mode);から

/soyshop/webapp/src/component/UserComponent.class.phpの452行目のappendErrorsの処理を見ると


$page->createAdd("mail_address_error", "ErrorMessageLabel", array(
	"text" => $app->getErrorMessage("mail_address")
));

getErrorMessageに項目の指定をして、エラーチェックの際に保存したメッセージを取り出します。

createAddの第二引数でErrorMessageLabelクラスが指定されていますが、HTML側での出力は


<p class="error" soy:id="mail_address_error">メールアドレスが正しく入力されていません。</p>

いつも通り、soy:idで出力します。