EC-CUBE2.12:カテゴリー階層の折りたたみ

1 カテゴリー階層を折りたたむか折りたたまないかをパラメータ設定で行うために、データベースに追加する。

INSERT INTO mtb_constants (id, name, rank, remarks) VALUES ('CATEGORY_TREE', 'true', 1428, 'カテゴリー階層の折りたたみ(true:折りたたむ false:折りたたまない)');

★パラメーター設定を開き、「この内容で登録する」をクリック。

2 ■data/Smarty/templates/default/frontparts/bloc/category.tpl

<script type="text/javascript">//<![CDATA[
$(function(){
$('#category_area li.level1:last').css('border-bottom', 'none');
});
//]]></script>
<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>
<!--{strip}-->
<ul id="categorytree">
<!--{assign var=preLev value=1}-->
<!--{assign var=firstdone value=0}-->
<!--{section name=cnt loop=$arrTree}-->
<!--{* 表示フラグがTRUEなら表示 *}-->

<!--{if $smarty.const.CATEGORY_TREE == "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}-->">
<p>
<a href="<!--{$smarty.const.ROOT_URLPATH}-->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|h}-->(<!--{$arrTree[cnt].product_count|default:0}-->)</a>
</p>
<!--{if $firstdone == 0}--><!--{assign var=firstdone value=1}--><!--{/if}-->
<!--{assign var=preLev value=`$level`}-->
<!--{/if}-->

<!--{else}--><!-- カテゴリ階層を折りたたまない -->

<!--{* 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}-->">
<p>
<a href="<!--{$smarty.const.ROOT_URLPATH}-->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|h}-->(<!--{$arrTree[cnt].product_count|default:0}-->)</a>
</p>
<!--{if $firstdone == 0}--><!--{assign var=firstdone value=1}--><!--{/if}-->
<!--{assign var=preLev value=`$level`}-->
<!--{* /if *}-->

<!--{/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>
<!--{/strip}-->
</div>
</div>
</div>

3 ■html/user_data/packages/default/css/bloc.css
▼カテゴリの箇所を一部修正する。(2つ目の7pxを2pxに変更)

#category_area li.level1 li p {
background: url("../img/icon/ico_level.gif") 7px 2px no-repeat;
}