バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > カテゴリ全表示のためのcategory_tree_fork.tpl変更方法について

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
klog
投稿日時: 2014/4/13 22:15
対応状況: −−−
新米
登録日: 2014/4/13
居住地:
投稿: 2
カテゴリ全表示のためのcategory_tree_fork.tpl変更方法について
--------------------------
[ECCUBE] 2.13.1
[DB] MySQL 5.5
[PHP] PHP5.2
--------------------------
PHP初心者につき大変恐縮ですが、お力添えをいただけると幸いです。
デフォルトの状態でカテゴリを全表示したく、category_tree_fork.tplをカスタマイズしていたのですが
行き詰ってしまいました。
ループ構造がわからず、うまくHTMLタグを入れ子にできません。
カテゴリを2階層まで以下のように表示させたいと思っております。

<h2 class="level1">親aaa</h2>
<ul>
<li class="level2">子bbb</li>
<li class="level2">子ccc</li>
<li class="level2">子ddd</li>
<li class="level2">子eee</li>
<li class="level2">子fff</li>
</ul>

<h2 class="level1">親ggg</h2>
<ul>
<li class="level2">子hhh</li>
<li class="level2">子iii</li>
<li class="level2">子jjj</li>
<li class="level2">子kkk</li>
</ul>

皆様お忙しい中恐縮ですが、お助けいただけると大変うれしいです。
何卒よろしくお願いいたします。
sumida
投稿日時: 2014/4/13 22:27
対応状況: −−−
仙人
登録日: 2013/2/10
居住地: 広島県呉市ときどき瀬戸内海
投稿: 641
Re: カテゴリ全表示のためのcategory_tree_fork.tpl変更方法について
常に表示するのであれば、以下のコードのdisp_childを「1」に固定すれば良いのでは。

                <!--{if in_array($child.category_id, $arrParentID)}-->
                    <!--{assign var=disp_child value=1}-->
                <!--{else}-->
                    <!--{assign var=disp_child value=0}-->
                <!--{/if}-->
klog
投稿日時: 2014/4/13 22:44
対応状況: −−−
新米
登録日: 2014/4/13
居住地:
投稿: 2
Re: カテゴリ全表示のためのcategory_tree_fork.tpl変更方法について
sumida様
ご回答をいただき心より感謝申し上げます。

すみません、質問が言葉足らずで大変恐縮なのですが
親カテゴリの場合、
<h2 class="level1">親aaa</h2>

その子カテゴリの場合
<ul>
<li class="level2">子bbb</li>
<li class="level2">子ccc</li>
<li class="level2">子ddd</li>
<li class="level2">子eee</li>
<li class="level2">子fff</li>
</ul>

と別タグでくくりたい考えております。
どうしても意図したループがおこなえないため質問させていただきました。
申し訳ございません。
sumida
投稿日時: 2014/4/14 16:23
対応状況: −−−
仙人
登録日: 2013/2/10
居住地: 広島県呉市ときどき瀬戸内海
投稿: 641
Re: カテゴリ全表示のためのcategory_tree_fork.tpl変更方法について
とりあえず、こんなんでどうでしょう?
動作確認はしていません。

        <!--{foreach from=$children item=child}-->
            <!--{if $child.level == 1}-->
                <h2 class="level<!--{$child.level}--><!--{if in_array($child.category_id, $tpl_category_id)}--> onmark<!--{/if}-->">
                </h2>
                <!--{if isset($child.children|smarty:nodefaults)}-->
                    <ul>
                        <!--{include file="`$smarty.const.TEMPLATE_REALDIR`frontparts/bloc/category_tree_fork.tpl" children=$child.children}-->
                    </ul>
                <!--{/if}-->
            <!--{else}-->
                <li class="level<!--{$child.level}--><!--{if in_array($child.category_id, $tpl_category_id)}--> onmark<!--{/if}-->">
                    <p><a href="<!--{$smarty.const.ROOT_URLPATH}-->products/list.php?category_id=<!--{$child.category_id}-->"<!--{if in_array($child.category_id, $tpl_category_id)}--> class="onlink"<!--{/if}-->><!--{$child.category_name|h}-->(<!--{$child.product_count|default:0}-->)</a></p>
                </li>
            <!--{/if}-->
        <!--{/foreach}-->
468
投稿日時: 2014/4/23 23:18
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: カテゴリ全表示のためのcategory_tree_fork.tpl変更方法について
こんにちは。
久しぶりに、カテゴリの常時展開をしようと思ったらver2.13.1だとtplのファイル構成まで変わっていたので、参考がないかな?と調べていたら、こちらを見つけました。

微妙にやりたかったこととは違ったのですが、タイトル的には丁度良いと思ったので、一応、カテゴリ階層の常時展開のやり方を書いておきます。

/data/Smarty/templates/***/frontparts/bloc/category_tree_fork.tpl




<!--{strip}-->
<ul <!--{if $treeID != ""}-->id="<!--{$treeID}-->"<!--{/if}--> style="<!--{if !$display}-->display: none;<!--{/if}-->">
<!--{foreach from=$children item=child}-->
<li class="level<!--{$child.level}--><!--{if in_array($child.category_id, $tpl_category_id)}--> onmark<!--{/if}-->">
<p><a href="<!--{$smarty.const.ROOT_URLPATH}-->products/list.php?category_id=<!--{$child.category_id}-->"<!--{if in_array($child.category_id, $tpl_category_id)}--> class="onlink"<!--{/if}-->><!--{$child.category_name|h}-->(<!--{$child.product_count|default:0}-->)</a></p>
<!--{if $child.level<$disp_level}-->
<!--{assign var=disp_child value=1}-->
<!--{else}-->
<!--{assign var=disp_child value=0}-->
<!--{/if}-->
<!--{if isset($child.children|smarty:nodefaults)}-->
<!--{include file="`$smarty.const.TEMPLATE_REALDIR`frontparts/bloc/category_tree_fork.tpl" children=$child.children display=$disp_child disp_level=$disp_level}-->
<!--{/if}-->
</li>
<!--{/foreach}-->
</ul>
<!--{/strip}-->


とやってから、


/data/Smarty/templates/***/frontparts/bloc/category.tpl




<!--{strip}-->
<div class="block_outer">
<div id="category_area">
<div class="block_body">
<h2><img src="<!--{$TPL_URLPATH}-->img/title/tit_bloc_category.gif" alt="商品カテゴリ" /></h2>
<!--{include file="`$smarty.const.TEMPLATE_REALDIR`frontparts/bloc/category_tree_fork.tpl" children=$arrTree treeID="" display=1 disp_level=1}-->
</div>
</div>
</div>
<!--{/strip}-->


とやって、

disp_level=1


の所の数字(階層)を1〜5で変えれば好きな階層までを常時展開に出来るかも。


disp_level=1・・・1階層まで展開(デフォルト状態)
disp_level=2・・・2階層まで展開
disp_level=3・・・3階層まで展開
disp_level=4・・・4階層まで展開
disp_level=5・・・5階層まで展開


という感じ。


ちなみに、category.tplは管理画面のブロック編集で触れるので、簡単に展開階層を変える事が
できるかも。。。

以上です。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,288名です
総投稿数は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.