バージョン選択

フォーラム

メニュー

オンライン状況

41 人のユーザが現在オンラインです。 (32 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 41
もっと...

PR

デザインテンプレート EC-CUBE3.0版が登場!
広告掲載について

サイト内検索

質問 > フロント機能 > 商品をカートに入れた際、規格が選ばれていないときのエラー表示

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
rabupon
投稿日時: 2017/4/25 11:33
対応状況: −−−
常連
登録日: 2008/11/14
居住地:
投稿: 42
商品をカートに入れた際、規格が選ばれていないときのエラー表示
商品に規格設定してあり、
商品をカートに入れた際、規格が選択されていないときに
「入力されていません」とエラー表示されるのですが、
規格名が「サイズ」だった場合に
「サイズが入力されていません」もしくは「サイズが選択されていません」と表示したいのですが、可能でしょうか?
umebius
投稿日時: 2017/4/25 11:47
対応状況: −−−
仙人
登録日: 2016/7/22
居住地: Tokyo
投稿: 725
Re: 商品をカートに入れた際、規格が選ばれていないときのエラー表示
できますよ。AddCartType.phpのvalidateメソッドの一部を下記に修正してください。

if ($this->Product->getClassName1()) {
                $context->validateValue($data['classcategory_id1'], array(
                    new Assert\NotBlank(),
                    new Assert\NotEqualTo(array(
                        'value' => '__unselected',
                        'message' => $this->Product->getClassName1().'が入力されていません' // ※ここ一行だけ変更してます
                    )),
                ), '[classcategory_id1]');
            }


----------------
//////////////////////////////
(株)U-Mebius EC-CUBE3 カスタマイズ・高速化 ・バグ修正
EC-CUBE関連技術者の採用もお問い合わせください。


umebius
投稿日時: 2017/4/25 11:47
対応状況: −−−
仙人
登録日: 2016/7/22
居住地: Tokyo
投稿: 725
Re: 商品をカートに入れた際、規格が選ばれていないときのエラー表示
ちなみにバージョンによってコードが違うかもしれませんので読み替えてください。
h_tanaka
投稿日時: 2017/4/25 11:49
対応状況: −−−
仙人
登録日: 2016/7/22
居住地: 愛媛県
投稿: 343
Re: 商品をカートに入れた際、規格が選ばれていないときのエラー表示
src/Eccube/Form/Type/AddCartType.php
のバリデータのパラメータ message の値を変更してやればできます。
規格名を取得して、

$message = 'form.type.select.notselect';
if ($className) {
    $message = $className.'が入力されていません';
}


----------------
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

rabupon
投稿日時: 2017/4/25 16:40
対応状況: 解決済
常連
登録日: 2008/11/14
居住地:
投稿: 42
Re: 商品をカートに入れた際、規格が選ばれていないときのエラー表示
ありがとうございます。

希望通りできました
rabupon
投稿日時: 2017/4/25 16:41
対応状況: 解決済
常連
登録日: 2008/11/14
居住地:
投稿: 42
Re: 商品をカートに入れた際、規格が選ばれていないときのエラー表示
ありがとうございます。
参考になりました
rabupon
投稿日時: 2017/5/10 17:49
対応状況: −−−
常連
登録日: 2008/11/14
居住地:
投稿: 42
Re: 商品をカートに入れた際、規格が選ばれていないときのエラー表示
時間がたってからすみません。

規格が2つある場合も同様に下記のように変更いたしました。

public function validate($data, ExecutionContext $context)
{
if ($data['mode'] !== 'add_favorite') {
$context->validateValue($data['product_class_id'], array(
new Assert\NotBlank(),
), '[product_class_id]');
if ($this->Product->getClassName1()) {
$context->validateValue($data['classcategory_id1'], array(
new Assert\NotBlank(),
new Assert\NotEqualTo(array(
'value' => '__unselected',
'message' => $this->Product->getClassName1().'を選択してください' // ※ここ一行だけ変更してます 'message' => 'form.type.select.notselect'
)),
), '[classcategory_id1]');
}
//商品規格2初期状態(未選択)の場合の返却値は「NULL」で「__unselected」ではない
if ($this->Product->getClassName2()) {
$context->validateValue($data['classcategory_id2'], array(
new Assert\NotBlank(),
new Assert\NotEqualTo(array(
'value' => '__unselected',
'message' => $this->Product->getClassName2().'を選択してください' // ※ここ一行だけ変更してます 'message' => 'form.type.select.notselect'
)),
), '[classcategory_id2]');
}
}
}


しかし、1つ目がカラー、2つ目がサイズなのですが、
カラーの方は「カラーを選択してください」に変更されましたが、
サイズの方は「入力されていません」で変更されません。

修正の仕方が違うのでしょうか?
468
投稿日時: 2017/5/11 3:36
対応状況: −−−
仙人
登録日: 2008/10/26
居住地:
投稿: 801
Re: 商品をカートに入れた際、規格が選ばれていないときのエラー表示
私もそこのメッセージで困った事があるのですが、
規格2のプルダウンの「選択してください」が
<option value="">選択してください</option>
になっていて、
「__unselected」が送信されていない事が原因になります。

サイズの「入力されていません」のメッセージはnew Assert\NotBlank()のエラーメッセージが表示されています。

//商品規格2初期状態(未選択)の場合の返却値は「NULL」で「__unselected」ではない
↑上記のコメントはこの事象を指しているのだと思います。

私は、/html/template/default/js/eccube.js 441行目の記述を
var option = $('<option />').val(id ? id : '').text(name);

var option = $('<option />').val(id ? id : '__unselected').text(name);
に変更して、未選択時に「__unselected」が送信されるように修正しました。

上記の変更で、規格2のプルダウンの「選択してください」が
<option value="__unselected">選択してください</option>
で出力されるようになると思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

rabupon
投稿日時: 2017/5/11 9:06
対応状況: 解決済
常連
登録日: 2008/11/14
居住地:
投稿: 42
Re: 商品をカートに入れた際、規格が選ばれていないときのエラー表示
ありがとうございます。

教えていただいたように修正したら、
規格2でも思うようなエラーになりました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

クレジットカード情報の非保持化対応

統計情報

総メンバー数は20,581名です
総投稿数は83,591件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1662
4
yuh
1430
5
red
1076
6
fukap
907
7
shutta
827
8
468
801
9 ramrun 789
10
tsuji
784
11
umebius
725
12
tao_s
651
13 karin 641
14 sumida 638
15
homan
633
16 DELIGHT 571
17
patapata
502
18
flealog
483
19 tonton 436
20
ecbg
387


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© LOCKON CO.,LTD. All Rights Reserved.