get_goods_attr()
函数。在ECShop中,商品属性的调用是一个常见的需求,特别是在商品列表和详细页面中展示商品的一般属性和特殊属性,以下是具体的方法:
一. 在商品详细页面调用商品属性
1. 函数介绍
在商品详细页面,通过get_goods_properties($goods_id)
函数来获取商品的属性信息,该函数返回一个数组,包含两部分内容:一般属性(pro
)和商品规格(特殊属性,spe
)。
2. 示例代码
$properties = get_goods_properties($goods_id); // $properties['pro'] 是一般属性 // $properties['spe'] 是商品规格
二. 在商品列表页面调用商品属性
1. 修改商品列表函数
在商品列表页面,可以通过修改category_get_goods()
函数来实现对商品属性的调用,在该函数中添加以下代码:
$properties = get_goods_properties($row['goods_id']); // 获得商品的规格和属性 if ($properties['pro']) { $info = $properties['pro']['商品属性']; $arr[$row['goods_id']]['spec'] = $info; }
通过循环,可以获取每个商品对应的属性和规格,然后在模板文件中通过{$goods.spec.68.value}
的方式取得指定的规格值。
2. 增加新函数
另一种方法是在includes\lib_insert.php
文件中增加一个新函数insert_attr($arr)
,然后直接在ECShop模板中调用。
function insert_attr($arr) { static $static_res = NULL; $aid = isset($arr['aid']) ? $arr['aid'] : 0; $gid = isset($arr['gid']) ? $arr['gid'] : 0; if ($aid == 0) return ''; if ($static_res[$aid][$gid] === NULL) { if ($gid > 0) { $static_res[$aid][$gid] = $GLOBALS['db']->getOne('select attr_value from ' . $GLOBALS['ecs']->table('goods_attr') . " where attr_id ='$aid' and goods_id='$gid' "); } else { $static_res[$aid][$gid] = $GLOBALS['db']->getOne('select attr_name from ' . $GLOBALS['ecs']->table('attribute') . " where attr_id ='$aid' "); } } return $static_res[$aid][$gid]; }
在模板文件中调用:
{insert name='attr' aid=属性id gid=商品编号} 调用商品的属性值 {insert name='attr' aid=属性id} 调用商品的属性
详情页调用:
{insert name='attr' aid=18 } {insert name='attr' aid=18 gid=$id}
三. 相关问题与解答
Q1: 如何在ECShop的商品列表中显示商品的多规格属性?
A1: 在商品列表中显示多规格属性,可以通过修改category_get_goods()
函数并使用get_goods_properties()
函数来获取商品的规格和属性,然后在模板文件中通过{$goods.spec.68.value}
的方式取得指定规格的值。
Q2: 如何在任意页面调用ECShop的商品属性?
A2: 可以在includes\lib_insert.php
文件中增加insert_attr($arr)
函数,然后在ECShop模板中直接调用,具体调用方法为{insert name='attr' aid=属性id gid=商品编号}
或{insert name='attr' aid=属性id}
。
便是在ECShop中调用商品属性的具体方法和示例,希望对您的开发工作有所帮助。
到此,以上就是小编对于“ecshop在任意页面调用商品属性的方法”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。