バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 商品詳細画面でのサイズやカラー等の選択欄の表現を変えたい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ゲスト
投稿日時: 2018/6/5 11:59
対応状況: −−−
商品詳細画面でのサイズやカラー等の選択欄の表現を変えたい
-- EC-CUBE3 --
-- macOS High Sierra --
管理画面の規格登録についてなのですが、商品詳細画面でのサイズやカラーを選択する際に、「選択してください」だけでは分かり辛いので、各規格に対応した選択肢の表現に変えたいと思っています。
※質問に画像を添付する方法が分からず、文面のみですみません。

例:
サイズ選択肢: "サイズを"選択してください
カラー選択肢: "カラーを"選択してください ...etc

そこで、
https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=18117&forum=10
こちらの過去質問を参考に実装してみたのですが、2種類の規格分しか表現を変えられず、登録商品によってはカラー選択肢に「サイズを選択してください」と表示されてしまいます。

望みとしては、登録した分の規格名と連動させて「***を選択してください」としたいです。
Form/Type/AddCartType.php
Eccube/Entity/Product.php
これら以外のファイルを編集する必要があるのでしょうか?もし宜しければアドバイス頂ければと思います。
matchbou
投稿日時: 2018/6/5 13:55
対応状況: −−−
一人前
登録日: 2018/3/19
居住地:
投稿: 130
Re: 商品詳細画面でのサイズやカラー等の選択欄の表現を変えたい
以下のコードのようなif文を追加し、「array('__unselected' => '選択してください')」を「array('__unselected' => $word.'選択してください')」に変更すれば、規格名によって文言を変えれるかと思います。
$word = "";
if ($Product->getClassName1または2() == "カラー") {
    $word = "カラー";
} else if ($Product->getClassName1または2() == "サイズ") {
    $word = "サイズ";
}

Product.phpを例としているので、AddCartType.phpは対象の変数でif文の分岐を行ってください。


----------------
アイフォーコム株式会社
お問い合わせ URL:https://www.iforcom.jp/ec/
tel:045-412-3010
EC-CUBEの構築・カスタマイズは有償で承ります。ご相談下さい

ゲスト
投稿日時: 2018/6/5 17:48
対応状況: −−−
Re: 商品詳細画面でのサイズやカラー等の選択欄の表現を変えたい
アドバイス頂き感謝致します。
現在、管理画面の規格登録にて4つの規格を作成しておりますので、

$word = "";
if ($Product->getClassName1() == "縦幅") {
       $word = "縦幅を";
} else if ($Product->getClassName1() == "横幅") {
       $word = "横幅を";
} else if ($Product->getClassName1() == "高さ") {
       $word = "高さを";
} else if ($Product->getClassName1() == "カラー") {
       $word = "カラーを";
}


この様なif文にて埋め込んでいきたいと思います。 実装が上手く行きましたら改めてご連絡致しますので。本当にありがとうございます。

ゲスト
投稿日時: 2018/6/7 16:22
対応状況: −−−
Re: 商品詳細画面でのサイズやカラー等の選択欄の表現を変えたい
最初の規格1(ClassCategory1)については、AddCartType.phpの、
if ($Product && $Product->getProductClasses()) {
       if (!is_null($Product->getClassName1())) {
       .......

の下に上記の$wordを実装する事で「サイズを選択してください」と表記出来ました。

また、次の規格2(ClassCategory2)においても、Product.phpにて、
foreach ($this->getProductClasses() as $ProductClass) {

このfor文の中の、
if (!is_null($ClassCategory2)) {

直下に同じ様に$wordを実装すれば、規格1の項目が選択された後に規格2も「***を選択してください」と表記する事が出来ました。
アドバイス、どうもありがとうございました。
matchbou
投稿日時: 2018/6/7 16:35
対応状況: −−−
一人前
登録日: 2018/3/19
居住地:
投稿: 130
Re: 商品詳細画面でのサイズやカラー等の選択欄の表現を変えたい
表記する事が出来たならよかったです。

ただ、デフォルトの状態ですとsrc/Eccube/Entity/Product.php内に
if (!is_null($ClassCategory2)) {

のコードはないので、
$class_categories[$class_category_id1]['#']

の上あたりですかね?


----------------
アイフォーコム株式会社
お問い合わせ URL:https://www.iforcom.jp/ec/
tel:045-412-3010
EC-CUBEの構築・カスタマイズは有償で承ります。ご相談下さい

ゲスト
投稿日時: 2018/6/7 23:25
対応状況: −−−
Re: 商品詳細画面でのサイズやカラー等の選択欄の表現を変えたい
はい、仰った位置に記述しました。

一応、簡単ではありますが載せておきます。
foreach ($this->getProductClasses() as $ProductClass) {
    $ClassCategory1 = $ProductClass->getClassCategory1();
    ....

    $class_category_id1 = $ClassCategory1 ? (string) $ClassCategory1->getId() : '__unselected2';
    ....

    /* -- ここのエリア -- */
    if (!is_null($ClassCategory2)) {
        $word = "";
        ....
    }
    /* -- ここまで -- */

    $class_categories[$class_category_id1]['#'] = array(
    ....

    }
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,285名です
総投稿数は109,688件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

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

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.