阅读量:0
在ECShop中,要在任意页面调用商品属性,可以使用
get_goods_attribute()
函数。ECShop在任意页面调用商品属性的方法
方法
在ECShop中,通过修改includes\lib_insert.php文件,可以方便地在任意页面调用商品属性,具体步骤如下:
步骤一:增加函数
1、打开includes\lib_insert.php
文件。
2、在文件末尾添加以下代码:
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]; }
注意:此代码需要加在?>
的前面。
步骤二:模板调用
1、在ECShop模板文件中(如dwt文件、lib文件等),可以直接调用新增的函数。
2、使用方法如下:
{insert name='attr' aid=属性id gid=商品编号} 调用商品的属性值 {insert name='attr' aid=属性id} 调用商品的属性
详情页调用:
{insert name='attr' aid=18 } {insert name='attr' aid=18 gid=$id}
循环调用唯一值属性:
<!-{foreach from=$properties item=property_group key=key} --> <!-{foreach from=$property_group item=property} --> <div class="col-md-6 col-sm-6 col-xs-12"> <div class="border-bottom"> <div class="row config"> <div class="col-md-3 col-sm-4 col-xs-4 ft-gray3">{$property.name|escape:html}</div> <div class="col-md-8 col-sm-8 cols-xs-8">{$property.value}</div> </div> </div> </div> <!-{/foreach} --> <!-{/foreach}-->
相关问题与解答
问题1:为什么要在includes\lib_insert.php文件中增加函数?
答:在includes\lib_insert.php文件中增加函数是为了扩展ECShop的功能,使其能够在任意页面调用商品属性,该文件包含了一些插入标签的函数,通过在这些函数中加入新的逻辑,可以实现对商品属性的调用。
问题2:如何在商品列表页显示商品属性?
答:要在商品列表页显示商品属性,可以通过修改category_get_goods函数来实现,具体步骤如下:
1、打开includes\lib_goods.php文件。
2、在该文件的底部找到category_get_goods函数,并在其中加入以下代码:
$properties = get_goods_properties($row['goods_id']); // 获得商品的规格和属性 if($properties['pro']){ $info = $properties['pro']['商品属性']; $arr[$row['goods_id']]['spec'] = $info; }
这样,通过循环,可以获得每个商品对应的属性和规格,然后在goods_list.lbi模板中使用以下方式来获取指定的规格值:
{$goods.spec.68.value}
这种方式可以在商品列表页显示商品属性,提高页面的可读性。
以上内容就是解答有关“ecshop在任意页面调用商品属性的方法”的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。