php smarty 二级分类代码和模版循环例子

2018-09-07 21:34

阅读:258

  二级分类的数据表结构如下:

  复制代码 代码如下:
PHP代码如下
/**
@ 文章分类 含二级分类
@ param int $rootnum -- 一级分类数量
@ param int $childnum -- 二级分类数量
@ 返回值 array
@ date 2011.2.24
*/
function temp_articletreecate($rootnum,$childnum){
if(!isnumber($rootnum)){
$rootnum = 10;
}
if(!isnumber($childnum)){
$childnum = 10;
}
$category = array();
$parent_sql = SELECT cateid,catename FROM .TABLE_PREFIX.articlecate WHERE parentid=0 AND depth=0 AND flag=1 ORDER BY orders ASC;
if(intval($rootnum)>0){
$parent_sql.= LIMIT $rootnum;
}
$parent_cate = $GLOBALS[db]->getall($parent_sql);
foreach($parent_cate as $parent_key => $parent_value){
//子类数组名为 childcategory 根据情况自定义名称
$category[] = array(cateid=>$parent_value[cateid],catename=>$parent_value[catename],childcategory=>array());


//读取子类
$child_sql = SELECT cateid,catename FROM .TABLE_PREFIX.articlecate WHERE parentid=.$parent_value[cateid]. AND flag=1 ORDER BY orders ASC;
if(intval($childnum)>0){
$child_sql.= LIMIT $childnum;
}
$child_cate = $GLOBALS[db]->getall($child_sql);
foreach($child_cate as $child_key => $child_value){
$category[count($category)-1][childcategory][] = array(cateid=>$child_value[cateid],catename=>$child_value[catename]);
}
}
return $category;
}


PHP页面调用分类,如index.php
$goodscatetree = array();
$goodscatetree = temp_goodstreecate(4,0); //调用分类函数(含二级分类)4--表示一级分类只显示4个,0--表示二级分类不限数量
$tpl>assign(goodscatetree,$goodscatetree); //执行smarty引擎
$tpl->display->(index.tpl); //输出smarty模版页面


TPL模版页面输出分类,如index.tpl页面
{section name=p loop=$goodscatetree}
一级分类:{$goodscatetree[p].catename}
{section name=c loop=$goodscatetree[p].childcategory}
二级分类:{$goodscatetree[p].childcategory[c].catename}
{/section}
{/section}


评论


亲,登录后才可以留言!