ecmall利用Tree.lib实现三级分类目录的输出。
/*例如首页全部分类 以下两段代码写在default.app.php中*/
/* 取得商品分类 */
$gcategorys = $this->_list_gcategory();
$this->assign('gcategorys', $gcategorys);
$this->display('index.html');
function _list_gcategory()
{
$cache_server =& cache_server();
$key = 'page_goods_category';
$data = $cache_server->get($key);
if ($data === false)
{
$gcategory_mod =& bm('gcategory', array('_store_id' => 0,'_parent_id'=>0));
$gcategories = $gcategory_mod->get_list(-1,true);
import('tree.lib');
$tree = new Tree();
$tree->setTree($gcategories, 'cate_id', 'parent_id', 'cate_name');
$data = $tree->getArrayList(0);
$cache_server->set($key, $data, 3600);
}
return $data;
}
<!--这段代码写在index.html对应位置,复制过来的时候格式乱了,将就看吧-->
<div class="content clearfix">
<!--{foreach from=$gcategorys item=gcate1}-->
<div class="item">
<div class="pborder">
<p class="biaoti"> <a href="{url app=search&cate_id=$gcate1.id}" target="_blank">{$gcate1.value}</a> </p>
<div class="fenlei">
<!--{foreach from=$gcate1.children item=gcate2 name=gcate_2}-->
<a href="{url app=search&cate_id=$gcate2.id}">{$gcate2.value}</a>
<!--{/foreach}-->
</div>
</div>
<div class="shadow"> </div>
<div class="pop" style="top:0px">
<div class="catlist">
<!--{foreach from=$gcate1.children item=gcate2 name=gcate_2}-->
<dl class="clearfix" style="border-bottom:0" >
<dt class="float-left"><a href="{url app=search&cate_id=$gcate2.id}"><strong>{$gcate2.value}</strong></a></dt>
<dd class="float-left">
<!--{foreach from=$gcate2.children item=gcate3 name=gcate_3}-->
<a style="color:#C00;" href="{url app=search&cate_id=$gcate3.id}">{$gcate3.value}</a>
<!--{/foreach}-->
</dd>
</dl>
<!--{/foreach}-->
</div>
</div>
</div>
<!--{/foreach}-->
</div>
效果图: