ecshop商品详细页调用当前子分类下的所有分类
ecshop商品详细页调用当前子分类下的所有分类
先看效果:
操作方法:
第一:在goods.php的最下面添加一个function
//获取相关栏目的分类
function
get_categorys_info(
$parent_id
)
{
$sql
=
"SELECT * FROM "
.
$GLOBALS
[
'ecs'
]->table(
'category'
) .
" WHERE parent_id="
.
$parent_id
.
" ORDER BY sort_order asc"
;
$res
=
$GLOBALS
[
'db'
]->getAll(
$sql
);
$categorys
=
array
();
foreach
(
$res
AS
$idx
=>
$row
){
$categorys
[
$idx
][
'id'
] =
$row
[
'cat_id'
];
$categorys
[
$idx
][
'url'
] = build_uri(
'category'
,
array
(
'cid'
=>
$row
[
'cat_id'
]),
$row
[
'cat_name'
]);
$categorys
[
$idx
][
'name'
] =
$row
[
'cat_name'
];
}
return
$categorys
;
}
第二:在然后我们需要获取这个栏目的父级,在顶部获取到这个栏目的父级
$cat_id
=
$db
->getOne(
"SELECT cat_id FROM "
.
$ecs
->table(
'goods'
) .
" WHERE goods_id = '$goods_id' "
);
$parent_id
=
$db
->getOne(
"SELECT parent_id FROM "
.
$ecs
->table(
'category'
) .
" WHERE cat_id = '$cat_id' "
);
第三:那么我们就拿$parent_id这个变量获取
$smarty
->assign(
'categorys_info'
, get_categorys_info(
$parent_id
));
$smarty
->assign(
'cat_id'
,
$cat_id
);
把他添加到smarty模板去赋值。
最后我们到我们自己的模板里面把他循环出来
{foreach from=$categorys_info item=r}
{if $cat_id!=$r[id]}
<
li
><
a
href
=
"{$r.url}"
title
=
"{$r.name}"
>{$r.name}</
a
></
li
>
{/if}
{/foreach}
很多人问为什么还要加个if去判断呢,因为你循环出来的是全部,你要把本身自己的栏目T出去。
赞 (0)