在ec-eube中把カテゴリー做大分類

LINEで送る
[`evernote` not found]

預設的カテゴリー雖然也是可以分類
但是如果我們是希望做到向下面這樣的”大分類”就麻煩了


原本想的很天真
想說在做一個カテゴリー來繼承原本的カテゴリー就可以了
不過…不管我怎麼繼承:
/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc
/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Category
/data/class_extends/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Category_Ex
…..
它都不給個反應@@
所以我只好換個方法:
因為我是要分兩類
所以在/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Category中先加入兩的判斷用的array
在ARRAY中各放入各自的カテゴリー編號(包誇所有子カテゴリー)
然後傳給category.tpl:

    // カテゴリツリーの取得
    function lfGetCatTree($arrParent_category_id, $count_check = false) {
        $objQuery = new SC_Query();
        $objDb = new SC_Helper_DB_Ex();
        $col = "*";
        $from = "dtb_category left join dtb_category_total_count using (category_id)";
        // 登録商品数のチェック
        if($count_check) {
            $where = "del_flg = 0 AND product_count > 0";
        } else {
            $where = "del_flg = 0";
        }
        $objQuery->setoption("ORDER BY rank DESC");
        $arrRet = $objQuery->select($col, $from, $where);
 
        foreach ($arrParent_category_id as $category_id) {
            $arrParentID = $objDb->sfGetParents($objQuery, 'dtb_category', 'parent_category_id', 'category_id', $category_id);
            $arrBrothersID = SC_Utils_Ex::sfGetBrothersArray($arrRet, 'parent_category_id', 'category_id', $arrParentID);
            $arrChildrenID = SC_Utils_Ex::sfGetUnderChildrenArray($arrRet, 'parent_category_id', 'category_id', $category_id);
 
            $this->root_parent_id[] = $arrParentID[0];
 
            $arrDispID = array_merge($arrBrothersID, $arrChildrenID);
 
            foreach($arrRet as $key => $array) {
                foreach($arrDispID as $val) {
                    if($array['category_id'] == $val) {
                        $arrRet[$key]['display'] = 1;
                        break;
                    }
                }
            }
        }
		$arrCatAt1tmp = array(1,3,4,8,9,10,11,6,7,16,17,18,19,12,20,21,22,23,13,15,24,25,54,55,56,57,58,59);
		$arrCatAt2tmp = array(26,27,28,29,30,31,14,32,33,34,35,36,37,38,39,40,41,42,43,44,60,61,62,63);
 
        $this->arrCatAt1 = $arrCatAt1tmp;
		$this->arrCatAt2 = $arrCatAt2tmp;
		$this->arrTree = $arrRet;
    }

其中的$arrCatAt1tmp與$arrCatAt2tmp就是我的カテゴリー編號的array
之後在category.tpl再做判斷:

<!--カテゴリここから-->
<div id="box-s-header-products"><h2>商品カテゴリー</h2></div><!-- /box-s-header-products -->
<div id="box-s-body-products">
<h5>防犯カメラ</h5>
<div id="categoryarea">
  <ul id="categorytree">
  <!--{assign var=preLev value=1}-->
  <!--{assign var=firstdone value=0}-->
  <!--{section name=cnt loop=$arrTree}-->
    <!--{* 表示フラグがTRUEなら表示 *}-->
    <!--{section name=at loop=$arrCatAt1}-->
    <!--{if $arrTree[cnt].display == 1 && $arrTree[cnt].category_id ==$arrCatAt1[at]}-->
    <!--{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}-->
    <!--{/section}-->
    <!--{* セクションの最後に閉じタグを追加 *}-->
    <!--{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>
  <h5>周辺機器</h5>
  <div id="categoryarea">
  <ul id="categorytree">
  <!--{assign var=preLev value=1}-->
  <!--{assign var=firstdone value=0}-->
  <!--{section name=cnt loop=$arrTree}-->
    <!--{* 表示フラグがTRUEなら表示 *}-->
    <!--{section name=at loop=$arrCatAt2}-->
    <!--{if $arrTree[cnt].display == 1 && $arrTree[cnt].category_id ==$arrCatAt2[at]}-->
    <!--{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}-->
    <!--{/section}-->
    <!--{* セクションの最後に閉じタグを追加 *}-->
    <!--{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>
</div><!--/box-s-body-products-->
<!--カテゴリここまで-->

雖然要跑兩次回圈
不過是我目前想到唯一的方法@@最後到/html/user_data/packages/mystyle/css/box.css調一下H5的設定就ok了^^”腿