バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > その他 > (2.12.3)カテゴリーを消す方法について

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
motorp
投稿日時: 2014/7/29 16:42
対応状況: −−−
常連
登録日: 2013/12/26
居住地:
投稿: 45
(2.12.3)カテゴリーを消す方法について
宜しくお願いいたします。

2.12.3 で作業を行っているのですが
カテゴリーブロックの表示で 関連性のあるカテゴリー以外を表示させないように
試しているのですが どうにも上手くいきません。

ループ処理を行っていて表示フラグに対して 
全て表示していると思うのですが
自ページに関連のないカテゴリーを表示させない処理が
出来るものでしょうか。
(パンくずのような処理なのですが、
同じ親を持つカテゴリーはデフォルト状態のように表示はさせたい考えです)

全てを展開表示する方法や、特定のカテゴリー(ID)に対しての非表示は
情報が多くあったのですが、希望する表示させない方法の参考情報はなく
投稿させて頂きました。

もし 方法がわかる方がおられましたら、ご教授頂けたら助かります。
tsuji
投稿日時: 2014/7/30 9:24
対応状況: −−−
仙人
登録日: 2013/11/19
居住地:
投稿: 958
Re: (2.12.3)カテゴリーを消す方法について
motorp 様

少し理解が追い付いていなくて、意図した答えとなっていない場合は
ご容赦ください。

特定のカテゴリIDとその子カテゴリのみ展開するという方法であれば、
下記のような指定の仕方をするとそうできます。
http://localhost/products/detail.php?product_id=1&category_id=6


----------------
****************************************
株式会社システムフレンド
辻 拓也(takuya tsuji)
改造専門店・EC-CUBE工房
****************************************

motorp
投稿日時: 2014/7/30 13:25
対応状況: −−−
常連
登録日: 2013/12/26
居住地:
投稿: 45
Re: (2.12.3)カテゴリーを消す方法について
早速のご連絡ありがとうございます。

リンク先が参照できなかったので
追記で説明させていただきますと

それぞれのページに対して 関連性のないカテゴリーを表示させない方法を試行錯誤しています。

□ カテゴリーB2のページを表示中の状態

【デフォルトの表示】

●カテゴリーA
●カテゴリーB
|― カテゴリーB1
|― カテゴリーB2★
|― カテゴリーB3
|― カテゴリーB4
●カテゴリーC


↑これを カテゴリーB だけの表示にしたい

●カテゴリーB
|― カテゴリーB1
|― カテゴリーB2★
|― カテゴリーB3
|― カテゴリーB4


□ カテゴリーA3のページを表示中の状態は↓のように B・Cは非表示

●カテゴリーA
|― カテゴリーA1
|― カテゴリーA2
|― カテゴリーA3★
|― カテゴリーA4


ID指定する方法も考えたのですが
全てのIDに対してをそれぞれ指定しなくてはいけなくなってしまい
途方もない指定となってしまうことと
更にカテゴリーを増やすと ID指定も増えていくため
もっと簡単に出来るのではと思ったのですが…

やはりこの方法しかないでしょうか
sumida
投稿日時: 2014/7/30 14:50
対応状況: −−−
仙人
登録日: 2013/2/10
居住地: 広島県呉市ときどき瀬戸内海
投稿: 641
Re: (2.12.3)カテゴリーを消す方法について
こういうことですかね?

LC_Page_FrontParts_Bloc_Category.php

                // 選択中のカテゴリID
                $this->tpl_category_id = $this->lfGetSelectedCategoryId($_GET);
// added
                // 親カテゴリツリーの取得
                $arrParent_tpl_category_id = SC_Helper_DB_Ex::sfGetParents('dtb_category', 'parent_category_id', 'category_id', $this->tpl_category_id);
                $parentCount = count($arrParent_tpl_category_id);
                if ($parentCount == 1) {
                    // トップページ又は第1階層カテゴリ表示
                    $this->parent_tpl_category_id = '0';
                } else {
                    // 第2階層以降カテゴリ表示
                    $this->parent_tpl_category_id = $arrParent_tpl_category_id[$parentCount-2];
                }
// added


category.tpl

                        <!--{* 表示フラグがTRUEなら表示 *}-->
<!--{* changed
                        <!--{if $arrTree[cnt].display == 1}-->
changed *}-->
                        <!--{if $arrTree[cnt].display == 1 && ($arrTree[cnt].category_id == $parent_tpl_category_id || $arrTree[cnt].parent_category_id ==  $parent_tpl_category_id)}-->
<!--{* changed *}-->


追記:
この修正コードでは、
階層の深いカテゴリを表示した場合、
たぶん、カテゴリブロック内の<li>タグと</li>タグの数が一致しなくなるので、
ダメな修正案でした。
motorp
投稿日時: 2014/7/30 20:34
対応状況: −−−
常連
登録日: 2013/12/26
居住地:
投稿: 45
Re: (2.12.3)カテゴリーを消す方法について
ありがとうございます!

私の図説明ですと ご連絡の内容で実現します。
失礼致しました。

ご教授いただいた内容の場合は3階層以上の場合 親カテゴリーまでの表示になるのですが
3階層以上であっても 表示LEVEL1からのカテゴリーを表示するようにしたいのが理想です。

●カテゴリーB
|― カテゴリーB1
|― カテゴリーB2★
|― カテゴリーB3
|― カテゴリーB4



●カテゴリーB
|― カテゴリーB1
|― カテゴリーB2
  |― カテゴリーB2a★
  |― カテゴリーB2b
  |― カテゴリーB2c
|― カテゴリーB3
|― カテゴリーB4


説明下手でお手数おかけ致します。

もし方法があるようでしたらお願い致します。
sumida
投稿日時: 2014/7/30 22:28
対応状況: −−−
仙人
登録日: 2013/2/10
居住地: 広島県呉市ときどき瀬戸内海
投稿: 641
Re: (2.12.3)カテゴリーを消す方法について
難しく考えるのをやめて、シンプルに考えてみました。
(1)トップページ表示
  第1階層をすべて表示
(2)第1階層表示...(a)
  (a)の第2(子)階層表示
  (a)以外の第1階層も表示 <-- ここを表示しない場合、コメントを外してください。
(3)第2階層以降表示...(b)
  (b)の第1階層から子階層まで表示
  (b)の第1階層以外の第1階層は表示しない <-- 標準との違いは、ここ

として、
category.tpl
変更しない。

LC_Page_FrontParts_Bloc_Category.php

                // 選択中のカテゴリID
                $this->tpl_category_id = $this->lfGetSelectedCategoryId($_GET);
                // カテゴリツリーの取得
                $this->arrTree = $this->lfGetCatTree($this->tpl_category_id, true);
// added
                if ($this->tpl_category_id[0] == '0') {
                    // トップページ表示
                } else {
                    // 親カテゴリツリーの取得
                    $arrParent_tpl_category_id = SC_Helper_DB_Ex::sfGetParents('dtb_category', 'parent_category_id', 'category_id', $this->tpl_category_id);
                    array_pop($arrParent_tpl_category_id);
                    if (count($arrParent_tpl_category_id) == 0) {
                        // 第1階層カテゴリ表示
/* もし、他の第1階層カテゴリを表示しないなら、以下を有効にする。
                        foreach ($this->arrTree as &$arrTree) {
                            if ($arrTree['parent_category_id'] == '0') {
                                // 第1階層カテゴリ
                                if (!in_array($arrTree['category_id'], $this->tpl_category_id)) {
                                    // 親カテゴリでない
                                    $arrTree['display'] = 0;
                                }
                            }
                        }
*/
                    } else {
                        // 第2階層以降カテゴリ表示
                        foreach ($this->arrTree as &$arrTree) {
                            if ($arrTree['parent_category_id'] == '0') {
                                // 第1階層カテゴリ
                                if (!in_array($arrTree['category_id'], $arrParent_tpl_category_id)) {
                                    // 親カテゴリでない
                                    $arrTree['display'] = 0;
                                }
                            }
                        }
                    }
                }
// added
                break;

tsuji
投稿日時: 2014/7/31 9:27
対応状況: −−−
仙人
登録日: 2013/11/19
居住地:
投稿: 958
Re: (2.12.3)カテゴリーを消す方法について
motorp 様

> http://localhost/products/detail.php?product_id=1&category_id=6

↑については説明不足でした。
以下で説明します。
※上記のURLは存在しないURLです

商品詳細のページを開く際は通常は下記のような指定の仕方で開いていますが、

http://localhost/products/detail.php?product_id=1

上記だと商品に紐づくカテゴリが全て展開されてしまいます。
このURLに下記のように「&category_id=6」を加えると、このカテゴリのみ展開されます。

http://localhost/products/detail.php?product_id=1&category_id=6


何かの参考になれば幸いです。

※上記のURLは存在しません。http://localhostをお使いの
EC-CUBEのURLに変更して試してみてください。
※product_idおよびcategory_idで指定されている数値は例として
挙げているものですので、表示したい商品とカテゴリに合わせて
変更してください。


----------------
****************************************
株式会社システムフレンド
辻 拓也(takuya tsuji)
改造専門店・EC-CUBE工房
****************************************

motorp
投稿日時: 2014/7/31 17:39
対応状況: −−−
常連
登録日: 2013/12/26
居住地:
投稿: 45
Re: (2.12.3)カテゴリーを消す方法について
sumida 様

ご相談にお答えいただきましてありがとうございます。

理想とほぼ完全一致な内容です。
お時間頂きましてありがとうございます。

自身のスキルでは手におえなく諦めかけてましたので非常に嬉しいです。
おかげさまで作業を進めることが出来ます。



tsuji 様

そうですよね、リンク先参照と勘違いしてしまいました。
お恥ずかしいです。
説明把握が出来ていなく、失礼致しました。




御二方ともに
色々と相談にのって頂きまして感謝申し上げます。

motorp
motorp
投稿日時: 2014/7/31 17:42
対応状況: 解決済
常連
登録日: 2013/12/26
居住地:
投稿: 45
Re: (2.12.3)カテゴリーを消す方法について
sumida 様

ご相談にお答えいただきましてありがとうございます。

理想とほぼ完全一致な内容です。
お時間頂きましてありがとうございます。

自身のスキルでは手におえなく諦めかけてましたので非常に嬉しいです。
おかげさまで作業を進めることが出来ます。



tsuji 様

そうですよね、リンク先参照と勘違いしてしまいました。
お恥ずかしいです。
説明把握が出来ていなく、失礼致しました。
ありがとうございます。



御二方ともに
色々と相談にのって頂きまして感謝申し上げます。

motorp
motorp
投稿日時: 2014/8/5 17:15
対応状況: −−−
常連
登録日: 2013/12/26
居住地:
投稿: 45
Re: (2.12.3)カテゴリーを消す方法について
解決済みとさせて頂いたのですが
連投となりまして申し訳ございません。

今回のカテゴリーを非表示にする方法ではお世話になりました。

再度投稿させて頂きましたのは
商品詳細ページでの表示で調整出来なく もし追記方法などで対応が出来るのであれば教えて頂けますでしょうか。


カテゴリーが2つ以上選択されている時なのですが
第1階層カテゴリの表示が1つのみの表示となるため
以下のようになります。

カテゴリーB2aとC2cを登録した商品の場合

●カテゴリーB
|― カテゴリーB1
|― カテゴリーB2
  |― カテゴリーB2a★
  |― カテゴリーB2b
  |― カテゴリーB2c
|― カテゴリーB3
|― カテゴリーB4


(☆カテゴリーC) 表示されない
|― カテゴリーC1
|― カテゴリーC2
  |― カテゴリーC2a
  |― カテゴリーC2b
  |― カテゴリーC2c★
|― カテゴリーC3


この場合の(☆カテゴリーC)を表示させる方法があれば助かります。
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
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.