广州传奇网络

地址:广州市天河区东圃大马路富华楼C座

电话:13808825895

邮箱:gz020wbs@163.com

QQ:1564443073

网址:http://www.020wbs.com/

首页 > 二次开发Ecshop二次开发 > ecshop二次开发中在商品页面调用商品分类信息的办法

二次开发Ecshop二次开发

二次开发Ecshop二次开发

ecshop二次开发中在商品页面调用商品分类信息的办法

商品的分类树ecshop已经默认调用了,但是如果想对商品页面功能进行一些定制,比如列出该产品的父分类,或者列出和该产品同一个分类的其它产品之类等等。就需要将该商品的商品分类调用出来。

商品页面的模板是在模板目录下的goods.dwt文件,负责实现其功能的文件是网站根目录下的goods.php文件。在该文件中可以找到这样一行:
/* 获得商品的信息 */
$goods = get_goods_info($goods_id);

这一行中,已经将该商品的信息数据从数据库中读出,放到了goods变量中。感兴趣的朋友可以去看一下get_goods_info这个函数的原型,函数在网站根目录includes文件夹下的lib_goods.php文件中可以找到。

每一件商品的商品分类保存在数据库中的ecs_goods表中的cat_id字段中。所以在goods.php文件中,$goods['cat_id']里保存的就是该商品所属的商品分类的id。

现在得到了商品分类的id,其它的就很好办了。可以创建一个变量,用来保存将要读取的商品分类信息。假设我们要读该商品分类的名称,我们可以定义其为 $goods_cat_name,然后新建一个函数,以商品分类id为参数,用来调用信息,将读取的商品分类信息赋值给$goods_cat_name。代码可以这样写:
$goods_catname = get_goods_catname($goods['id']);
然后将该变量赋给模板,加这一行代码即可:
$smarty->assign('goods_catname',$goods_catname);
或者将以上这两行代码整合为一行:
$smarty->assign('goods_catname',get_goods_catname($goods['id']);

现在goods.php文件的内容添加完了,下一步要做的是实现get_goods_catname这个函数。

打开lib_goods.php这个文件,你会看到很多函数。你可以在文件的最下方添加一个新的函数:
function get_goods_catname($catid)
{
}
在函数内写上读取商品分类信息的代码就可以了。
以读取该商品分类的分类名称为例:
function get_goods_catname($catid)
{
  $sql = "SELECT cat_name FROM ".$GLOBALS['ecs']->table('category')."WHERE cat_id = $catid";
  return $GLOBALS['db']->getOne($sql);
}
现在商品分类名称已经从数据库读出来了,只要在模板文件goods.dwt中调用$goods_catname这个变量就可以了。

这里举例用的是最简单的例子,如果想实现其它的功能,比如调用父商品分类或者同类的其它商品等信息,只需要调整相应的sql语句,就可以实现了。