您现在的位置是:首页 > 教程 > ecshop商城教程ecshop商城教程
ecshop商品分类显示商品分类菜单的方法
依珊2024-01-16 22:08:07ecshop商城教程已有人查阅
导读ecshop商品分类页面获得当前分类的子分类和 分类教程: 步:修改/include/lib_goods.php,在第24行加入以下代码:/*** 获得指
ecshop商品分类页面获得当前分类的子分类和 分类教程:
步骤一:修改/include/lib_goods.php,在第24行加入以下代码:
第二步,修改/category.php,找到122行,原先的代码是:
如果你想保留原先的分类功能,再新增自定义的分类功能,那么在122行下面再新增一行:
你要根据第二部定义的模板变量来写:到底是categories还是categories2,更具你实际情况来定。我这里是categories2:
步骤一:修改/include/lib_goods.php,在第24行加入以下代码:
/**
* 获得指定分类下的子分类
*
* @access public
* @param integer $cat_id 分类编号
* @return array
*www.ebingou.cn
*/
function get_children_tree($cat_id)
{
if ($cat_id >0 )
{
$sql = 'SELECT count(*) FROM ' . $GLOBALS['ecs']->table('category') . " WHERE parent_id = '$cat_id'";
//$cot = $GLOBALS['db']->getOne($sql);
if ($GLOBALS['db']->getOne($sql))
{
// 获取当前分类名及其子类
$sql = 'SELECT a.cat_id, a.cat_name, a.sort_order AS parent_order, a.cat_id, ' .
'b.cat_id AS child_id, b.cat_name AS child_name, b.sort_order AS child_order ' .
'FROM ' . $GLOBALS['ecs']->table('category') . ' AS a ' .
'LEFT JOIN ' . $GLOBALS['ecs']->table('category') . ' AS b ON b.parent_id = a.cat_id ' .
"WHERE a.cat_id = '$cat_id' ORDER BY parent_order ASC, a.cat_id ASC, child_order ASC";
}
else
{
$sql = 'SELECT parent_id FROM ' . $GLOBALS['ecs']->table('category') . " WHERE cat_id = '$cat_id'";
$parent_id = $GLOBALS['db']->getOne($sql);
if ($parent_id > 0)
{
//获取当前分类、兄弟及其父类
$sql = 'SELECT a.cat_id, a.cat_name, b.cat_id AS child_id, b.cat_name AS child_name, b.sort_order ' .
'FROM ' . $GLOBALS['ecs']->table('category') . ' AS a ' .
'LEFT JOIN ' . $GLOBALS['ecs']->table('category') . ' AS b ON b.parent_id = a.cat_id ' .
"WHERE b.parent_id = '$parent_id' ORDER BY sort_order ASC";
}
else
{
//获取当前分类
$sql = 'SELECT a.cat_id, a.cat_name FROM '
. $GLOBALS['ecs']->table('category') . ' AS a ' .
"WHERE a.cat_id = '$cat_id'";
}
}
$res = $GLOBALS['db']->getAll($sql);
$cat_arr = array();
foreach ($res AS $row)
{
$cat_arr[$row['cat_id']]['id'] = $row['cat_id'];
$cat_arr[$row['cat_id']]['name'] = $row['cat_name'];
$cat_arr[$row['cat_id']]['url'] = build_uri('category', array('cid' => $row['cat_id']), $row['cat_name']);
if ($row['child_id'] !NULLbr /> {
$cat_arr[$row['cat_id']]['children'][$row['child_id']]['id'] = $row['child_id'];
$cat_arr[$row['cat_id']]['children'][$row['child_id']]['name'] = $row['child_name'];
$cat_arr[$row['cat_id']]['children'][$row['child_id']]['url'] = build_uri('category', array('cid' => $row['child_id']), $row['child_name']);
}
}
return $cat_arr;
}
}
这其实就是一个get_children_tree函数,更具$cat_id来得到当前分类所有的分类第二步,修改/category.php,找到122行,原先的代码是:
$smarty->assign('categories', get_categories_tree($cat_id)); // 分类树
这其实是模板技术,如果你想 抛弃原来的分类样式,那么把get_categories_tree($cat_id)换成刚才我们自定义的函数get_children_tree($cat_id)如果你想保留原先的分类功能,再新增自定义的分类功能,那么在122行下面再新增一行:
$smarty->assign('categories2', get_children_tree($cat_id));
如果想用不同的颜 表示出当前点击的分类和其他分类,那么还要保留当前点击的分类id。再加一行:
$smarty->assign('current_cat_id',
$cat_id);
//当前的id
最后一步修改category.dwt。你要根据第二部定义的模板变量来写:到底是categories还是categories2,更具你实际情况来定。我这里是categories2:
<!--{foreach from=$categories item=cat}-->
{$cat.name|escape:html} <!--这个就是你点击的分类,下面都是他的子类-->
<!--{foreach from=$cat.children item=child}-->
<a href="{$child.url}">
<!--{if $current_cat_id eq $child.id} 显示当前点击的分类为橙 -->
<span style="color:#ff6600">
<!--{/if}-->· {$child.name|escape:html}<!--{if $current_cat_id eq $child.id}--></span>
<!--{/if}-->
</a>
<!--{foreachelse}-->
· 没有分类了!
<!--{/foreach}-->
<!--{/foreach}-->
本文标签:
很赞哦! ()
相关文章
- ecshop商品颜色尺寸联动筛选功能实现方法
- ecshop商品筛选功能实现代码示例
- ecshop商品列表页面和商品页面自定义url网址前缀的实现方法
- ecshop商品页显示商品收藏数量怎么修改
- ecshop商品批发多属性多规格多库存怎么批量购买
- ecshop水印ecshop商品添加水印的实现方法
- ecshop商品价格将属性价格改为直接价非加价修改的方法
- ecshop商品页商品详细描述内容调用商品相册图片代码的方法
- ecshop商品图片模糊修改图片上传压缩质量的方法
- ecshop商品相册显示顺序为正序的修改方法
- ecshop商品售完商品库存为0显示商品售完已售罄的实现方法
- ecshop商品详情页相关属性商品由新到旧排序的方法
随机图文
-
ecshop文章排序的实现方法
在我们利用ecshop进行商城网站建设的时候常常用到文章,ecshop中的文章功能相对于其他的cms要弱的很多不过以基本满足了网站商城中文章发布的应用,但是ecshop文章的推荐功能只 -
ecshop站内快讯标题的长度字数修改方法
这是一个ECSHOP使用中的小问题,但是群里和论坛里还是经常有人在问,下面共享一下。 进入 后台 》商店设置 》 显示设置, 找到“ 文章标题 -
删除ecshop您需要激活系统的删除关闭方法
ecshop安装以后打开后台出现ecshop您需要激活系统删除关闭的方法;1.打开后台出现:您需要激活系统 没有关闭按钮,因为他们把关闭按钮注销了 -
ecshop商品页调用热销商品的教程
在goods.php里面加了$smarty->assign('hot_goods',get_recommend_goods('hot
留言与评论 (共有 条评论) |