ログイン
新規登録
パスワード紛失
メインメニュー
フォーラム
オンライン状況
54 人のユーザが現在オンラインです。 (44 人のユーザが フォーラム を参照しています。)
登録ユーザ: 5
ゲスト: 49
kikunobu, yamakou, a-003, 55eccube, simpson, もっと...
広告
質問 > フロント機能 > カテゴリの階層を折りたたまない方法を教えて下さい!
フロント機能
新規スレッドを追加する

EC-CUBE ASP登場
スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ecsrhm
投稿日時: 2009-2-16 14:15
対応状況: 確認中
新米
登録日: 2009-2-16
居住地:
投稿: 4
カテゴリの階層を折りたたまない方法を教えて下さい!
みなさまこんにちは。

現在サイト構築中なのですが、訪問されたユーザーに
商品カテゴリを多く見せたいと思っていますが、
親子関係にあるカテゴリって、折りたたまれて、
クリックしないと直下の階層が表示されませんよね?

一覧として折りたたまず表示させたいのですが、
どこをいじって良いかわかりません・・・。

どなたか教えて頂けませんか?
よろしくお願いいたします。
gens
投稿日時: 2009-2-16 14:59
対応状況: −−−
常連
登録日: 2007-1-1
居住地:
投稿: 32
Re: カテゴリの階層を折りたたまない方法を教えて下さい!
デザイン管理>ブロック編集>編集可能ブロック(カテゴリ)内の
<!--{* 表示フラグがTRUEなら表示 *}-->
<!--{if $arrTree[cnt].display == 1|| $arrTre[cnt].level <=1}-->
の<=1 の数字を表示したい階層まで増やすと出来ます。
ecsrhm
投稿日時: 2009-2-16 15:25
対応状況: −−−
新米
登録日: 2009-2-16
居住地:
投稿: 4
Re: カテゴリの階層を折りたたまない方法を教えて下さい!
ありがとうございます!非常に良きヒントになったのですが、
2.2.3を使用していまして、現状以下のソースになっており、
教えて頂いた記述がありませんでした・・。

2.2.3の場合はどこがメンテポイントになるでしょうか?
お手数おかけしますがよろしくお願いいたします。




<!--商品カテゴリーここから-->
<h2>
<img src="<!--{$TPL_DIR}-->/img/side/title_cat.jpg" width="166" height="35" alt="商品カテゴリー" />
</h2>
<div id="categoryarea">
<ul id="categorytree">
<!--{assign var=preLev value=1}-->
<!--{assign var=firstdone value=0}-->
<!--{section name=cnt loop=$arrTree}-->
<!--{* 表示フラグがTRUEなら表示 *}-->
<!--{if $arrTree[cnt].display == 1}-->
<!--{assign var=level value=`$arrTree[cnt].level`}-->
<!--{assign var=levdiff value=`$level-$preLev`}-->
<!--{if $levdiff > 0}-->
<ul>
<!--{elseif $levdiff == 0 && $firstdone == 1}-->
</li>
<!--{elseif $levdiff < 0}-->
<!--{section name=d loop=`$levdiff*-1`}-->
</li>
</ul>
<!--{/section}-->
</li>
<!--{/if}-->
<li class="level<!--{$level}--><!--{if in_array($arrTree[cnt].category_id, $tpl_category_id) }--> onmark<!--{/if}-->"><a href="<!--{$smarty.const.URL_DIR}-->products/list.php?category_id=<!--{$arrTree[cnt].category_id}-->"<!--{if in_array($arrTree[cnt].category_id, $tpl_category_id) }--> class="onlink"<!--{/if}-->><!--{$arrTree[cnt].category_name|escape}-->(<!--{$arrTree[cnt].product_count|default:0}-->)</a>
<!--{if $firstdone == 0}--><!--{assign var=firstdone value=1}--><!--{/if}-->
<!--{assign var=preLev value=`$level`}-->
<!--{/if}-->
<!--{* セクションの最後に閉じタグを追加 *}-->
<!--{if $smarty.section.cnt.last}-->
<!--{if $preLev-1 > 0 }-->
<!--{section name=d loop=`$preLev-1`}-->
</li>
</ul>
<!--{/section}-->
</li>
<!--{else}-->
</li>
<!--{/if}-->
<!--{/if}-->
<!--{/section}-->
</ul>
</div>
<!--商品カテゴリーここまで-->
homan
投稿日時: 2009-2-17 9:28
対応状況: −−−
仙人
登録日: 2007-7-2
居住地: 宮崎県宮崎市
投稿: 547
Re: カテゴリの階層を折りたたまない方法を教えて下さい!
一番もっとも簡単で単純に実現するならば、以下の赤文字2か所のように変更してみてください(でも実際には試してません)

<!--商品カテゴリーここから-->
<h2>
<img src="<!--{$TPL_DIR}-->/img/side/title_cat.jpg" width="166" height="35" alt="商品カテゴリー" />
</h2>
<div id="categoryarea">
<ul id="categorytree">
<!--{assign var=preLev value=1}-->
<!--{assign var=firstdone value=0}-->
<!--{section name=cnt loop=$arrTree}-->
<!--{* 表示フラグがTRUEなら表示 *}-->
<!--{* if $arrTree[cnt].display == 1 *}-->
<!--{assign var=level value=`$arrTree[cnt].level`}-->
<!--{assign var=levdiff value=`$level-$preLev`}-->
<!--{if $levdiff > 0}-->
<ul>
<!--{elseif $levdiff == 0 && $firstdone == 1}-->
</li>
<!--{elseif $levdiff < 0}-->
<!--{section name=d loop=`$levdiff*-1`}-->
</li>
</ul>
<!--{/section}-->
</li>
<!--{/if}-->
<li class="level<!--{$level}--><!--{if in_array($arrTree[cnt].category_id, $tpl_category_id) }--> onmark<!--{/if}-->"><a href="<!--{$smarty.const.URL_DIR}-->products/list.php?category_id=<!--{$arrTree[cnt].category_id}-->"<!--{if in_array($arrTree[cnt].category_id, $tpl_category_id) }--> class="onlink"<!--{/if}-->><!--{$arrTree[cnt].category_name|escape}-->(<!--{$arrTree[cnt].product_count|default:0}-->)</a>
<!--{if $firstdone == 0}--><!--{assign var=firstdone value=1}--><!--{/if}-->
<!--{assign var=preLev value=`$level`}-->
<!--{* /if *}-->
<!--{* セクションの最後に閉じタグを追加 *}-->
<!--{if $smarty.section.cnt.last}-->
<!--{if $preLev-1 > 0 }-->
<!--{section name=d loop=`$preLev-1`}-->
</li>
</ul>
<!--{/section}-->
</li>
<!--{else}-->
</li>
<!--{/if}-->
<!--{/if}-->
<!--{/section}-->
</ul>
</div>
<!--商品カテゴリーここまで-->


おそらく大丈夫だと思いますが、
もし、画面が真っ白になったりした場合は、元に戻してください。なにをやったかというと、
単純にすべてのカテゴリが表示されるように、
条件部分をコメントアウトしました。

ちなみに、gens様がおっしゃったのは赤文字の1か所目の部分を、変更してくださいという意味です。
もし第2階層までを表示したい・・・など細かいことをしたいならば、gens様がおっしゃるような方法に変更した方がいいと思います。
levelというのが階層のことで、
1だと第1階層、2だと第2階層という感じです。

蛇足ですが、EC-CUBEのデフォルトの機能で、
カテゴリを登録されてもそのカテゴリに商品が1つも所属していない場合は、
カテゴリ自体が表示されませんのでご注意を。


----------------
無料で学べるEC-CUBEノウハウ - EC-CUBEの学校
アラタナ

ecsrhm
投稿日時: 2009-2-17 16:11
対応状況: −−−
新米
登録日: 2009-2-16
居住地:
投稿: 4
Re: カテゴリの階層を折りたたまない方法を教えて下さい!
皆様、色々とご教示頂きまして本当にありがとうございました!
gens様、homan様、貴重なご意見ありがとうございました。
お力拝借し、思ったかたちのカテゴリ作成ができました。

本当にありがとうございました!!!
miruku
投稿日時: 2009-3-9 15:58
対応状況: −−−
新米
登録日: 2009-3-9
居住地:
投稿: 6
Re: カテゴリの階層を折りたたまない方法を教えて下さい!
はじめまして!
homanさんが書かれているように、すでに私自身で修正して、カテゴリーの階層をすべて表示にしていました。
しかし、あまりにカテゴリーが増えすぎた為に、gensさんの書き込みを参考に修正しました。

ところがどうしてか、カテゴリーが全表示のままになっています。
homanさんが書かれているコメントアウトしている部分を元に戻しても(デフォルト状態です)なぜか全表示のままです。

理想はgensさんが書かれているようにしたいのですが、行き詰ってお手上げ状態です。
他力本願で大変失礼なのですが、わかる方がいらっしゃいましたら教えていただけないでしょうか。
よろしくお願いいたします。

■環境
EC-CUBE :2.2.0-beta
MySQL :4.1.22
PHP :4.4.9
seasoft
投稿日時: 2009-3-9 17:22
対応状況: −−−
登録日: 2008-6-4
居住地:
投稿: 5033
Re: カテゴリの階層を折りたたまない方法を教えて下さい!
もしかして FTP で上書きしてます? 管理機能の編集ファイルが優先されますよ。
参考: http://seasoft.jp1.cx/ec/tips/editfiles


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の具体的な作業は有償で承っております。お気軽にご相談ください。

miruku
投稿日時: 2009-3-10 15:15
対応状況: −−−
新米
登録日: 2009-3-9
居住地:
投稿: 6
Re: カテゴリの階層を折りたたまない方法を教えて下さい!
早速のお返事ありがとうございます。

管理画面で行っているのですが、ダメでした。
上記レスのソースをそのまま貼り付けても同様です。
以前カスタマイズした部分で、不具合がでているのでしょうか?

もう少し調べてみます。
seasoft
投稿日時: 2009-3-11 3:17
対応状況: −−−
登録日: 2008-6-4
居住地:
投稿: 5033
Re: カテゴリの階層を折りたたまない方法を教えて下さい!
> 上記レスのソースをそのまま貼り付けても同様です。
> 以前カスタマイズした部分で、不具合がでているのでしょうか?

既に試されたかもしれませんが、ダウンロードした初期状態のファイルのコードで試してみては?
また、上書きした内容がフロントに適用されていることは、何らかの方法で確認済みですか?


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の具体的な作業は有償で承っております。お気軽にご相談ください。

miruku
投稿日時: 2009-3-11 14:35
対応状況: −−−
新米
登録日: 2009-3-9
居住地:
投稿: 6
Re: カテゴリの階層を折りたたまない方法を教えて下さい!
何度もお返事をいただいてすいません。
状況が少し変わりました。

管理画面のブロック編集で操作していたのですが、デフォルトのソースにしたら、初期の表示状態に戻りました。

その後ソ−スをgensさんの書かれていた
<!--{if $arrTree[cnt].display == 1|| $arrTre[cnt].level <=1}-->
に修正したら、三階層まであるカテゴリがすべて表示されました。
ソースの数字を2や3にしても同じでした。
ファイル管理からソースをアップロードしても同様な症状です。

ほかにも出来ることがないか、試してみます。
12 次へ→
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

 
EC-CUBEダウンロード
正式版(zip版) 正式版(tar.gz版)
パートナー募集
構築事例募集
EC-CUBE寄付支援プロジェクト
リンク
統計情報
総メンバー数は4,867名です
総投稿数は31,478件です

投稿数ランキング
1
seasoft
5033
2
AMUAMU
917
3 ramrun 789
4
nanasess
771
5
homan
547
6 tonton 436
7
kishik
381
8
tao_s
355
9
ecbg
311
10 x41 299
11
DDR
259
12 arts 229
13 pineray 209
14
kvex2004
205
15
flealog
191
16
55eccube
163
17
DELIGHT
149
18 nanakoko 139
19
mahalo_c
136
20 popo 134
21 kurobon 122
22
yokoshima
113
23
Oba
106
24
takoyaki
105
25 lvsa 104
26
lucky7
101
27 mi-taro 100
28 it3 92
29
sakurai07
89
30 Masashige 89
31
kaoring777
89
32
illfrog300
88
33
ryo
86
34 tao 82
35 tmtqn543 82
36 mkhkck 79
37 bott 78
38 hunterman 78
39
saratoga
76
40
asayama
70
41
vexit
70
42
osamusi
66
43
lockon_admin
65
44 kana 64
45
kishimoto
63
46
hogehoge
63
47 harutom 63
48 fsv_g2 61
49 NSX 61
50 fukuma 60
Copyright© LOCKON CO.,LTD. All Rights Reserved.