商品分类列表能否一直显示全部分类的信息

2016-07-07 16:23 来源:www.chinab4c.com 作者:ecshop专家

商品分类列表能否一直显示全部分类的信息?现在分类列表是,首页全部显示分类信息,但是当进入一个分类之后,页面显示的只是该级分类的子分类列表,我想每个页面都显示商品的全部分类,如何实现呢?改模板能否解决?是否需要改php文件?我看现在模板是用<!--{foreach from=$categories item=cat}-->这个循环来显示的,是否修改变量就OK呢?


回答:
程序做了控制,得改php。

在那个php改?告诉我

<!--{foreach from=$categories item=cat}-->里面$categories这个是哪里获取的名字?

在includes目录下lib_goods.php文件中找到
/**
* 获得指定分类同级的所有分类以及该分类下的子分类
*
* @accesspublic
* @paraminteger$cat_id分类编号
* @returnarray
*/
function get_categories_tree($cat_id = 0)
{
if ($cat_id > 0)
{
$sql = 'SELECT parent_id FROM ' . $GLOBALS['ecs']->table('category') . " WHERE cat_id = '$cat_id'";
$parent_id = $GLOBALS['db']->getOne($sql);
}
else
{
$parent_id = 0;
}
/*
判断当前分类中全是是否是底级分类,
如果是取出底级分类上级分类,
如果不是取当前分类及其下的子分类
*/
$sql = 'SELECT count(*) FROM ' . $GLOBALS['ecs']->table('category') . " WHERE parent_id = '$parent_id'";
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.parent_id = '$parent_id' ORDER BY parent_order ASC, a.cat_id ASC, child_order ASC";
}
else
{
/* 获取当前分类及其父分类 */
$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";
}
$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'] != NULL)
{
$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_categories_tree函数第一行加入$cat_id = 0;好像可以解决,每个子分类页面都显示全部分类,不过如果我想左边商品分类每个子分类页面显示全部分类,而在子分类的商品列表上部显示该级分类的分类,就不知应该如何改好了。
比如分类如下
分类1---
┌子分类1
分类2---├子分类2
└子分类3
分类3---
我想在进入了分类2之后,左边商品分类还是显示全部分类内容,但是在商品列表的上面显示分类2的下级分类内容,就是把原来那种分类方式搬到商品分类上面显示,左边显示全部内容,应该怎样改才好?大家探讨一下,希望官方人员提供一下帮助。


本版规则

4,模板区,甚至整个论坛不提供源代码级的技术支持,如果在你充分了解到EC确实没有你想要的功能的时候,请到反馈区发功能建议帖。

失望

原帖由 awei2k 于 2007-7-16 16:57 发表
我想在进入了分类2之后,左边商品分类还是显示全部分类内容,但是在商品列表的上面显示分类2的下级分类内容,就是把原来那种分类方式搬到商品分类上面显示,左边显示全部内容,应该怎样改才好?大家探讨一下,希望官方人员提供一下帮助。
* @ ...



我知道你的意思

我现在在用shopex,也是遇到这个问题

发现内核限制,于是来找ecshop,毕竟这个是开源更彻底的

没想到也是一样

晕,既然都收费,那就不换了吧,给谁不是给

不提供代码支持,大家也可以探讨一下,这样才能发挥开源的意义。如果这样有问题谁都不愿意说,还有什么意义。以后知道怎么弄了,很多人可能都不愿在论坛分享成果了。

支持楼上的。

別這樣馬,人家免費是免費程序,不是免費回答服務
討論區式討論用,沒人會也沒辦法,總不能叫人一定要解答
如果每個人都要求程序修改,原始碼的修改
那官方啟不是忙死
研究個一兩個月總是會出來的,在短時間得不到解答的同時
自己多多研究吧
沒有說不能討論阿,不是有朋友發表線上客服的東東出來
只是暫時沒人解答而已,耐心+努力吧
祝你成功,你行的!!

要知道每个人都想程序按照自己的想法来实现,我们都帮忙改,没那个精力和时间。

所以订出规定不提供源代码级的支持,免得现在有时间帮了这个,下个要帮忙的时候没时间了怎么办?

用ECSHOP的何止千万。

再说都开源了,所有代码都在那放着,想怎么改还不是你说了算。

最后说,你说的这个会点php的都能改,我们不提供支持,你可以自己来改,自己不会改可以找人帮忙改,总能实现。

不开源您可以吗?

最最后说,这里是模板区,我只负责在现有功能基础上实现样式的改变。

支持

幸好我自己搞定了,不会php但是还是会点编程D,哈哈。求人不如求己了
我意思不是说一定要官方人员提供代码支持,是希望大家可以在这里探讨一下,高手可以帮忙解决一下问题。规矩是死的,人是活的嘛


原帖由 awei2k 于 2007-7-19 01:06 发表
幸好我自己搞定了,不会php但是还是会点编程D,哈哈。求人不如求己了
我意思不是说一定要官方人员提供代码支持,是希望大家可以在这里探讨一下,高手可以帮忙解决一下问题。规矩是死的,人是活的嘛


你搞定了?哪里?哪里?哪里呢?


好像没见你提供...