預設的カテゴリー雖然也是可以分類
但是如果我們是希望做到向下面這樣的”大分類”就麻煩了
原本想的很天真
想說在做一個カテゴリー來繼承原本的カテゴリー就可以了
不過…不管我怎麼繼承:
/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了^^”腿