如何在ECShop的任意页面中调用商品属性?

avatar
作者
猴君
阅读量:0
在ECShop中,要在任意页面调用商品属性,可以使用get_goods_attribute()函数。

ECShop在任意页面调用商品属性的方法

如何在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文件等),可以直接调用新增的函数。

如何在ECShop的任意页面中调用商品属性?

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函数来实现,具体步骤如下:

如何在ECShop的任意页面中调用商品属性?

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在任意页面调用商品属性的方法”的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!