灰小子与ecshop学习日记
2016-07-07 15:05 来源:www.chinab4c.com 作者:ecshop专家
2009年4月23日11时18分30秒 今天要把商品属性功能拿下。。 BBS找了这么多。。一个都看不懂。。 ================== 本人第一次给出的代码未经测试,结果不能实现功能,在此表示抱歉。 以下代码已通过测试,可以使用。不过在循环数组的时候效率可能不高,期待高手完善下。 1.在category.php文件中约425行 $arr[$row['goods_id']]['url'] = build_uri('goods', array('gid'=>$row['goods_id']), $row['goods_name']); 后加入代码: $arr[$row['goods_id']]['spec']= get_goods_attr($row['goods_id']); 2.在goods_list.lbi模板库文件中相应位置加入代码: <!--{foreach from=$goods.spec item=spec}--> <p>{$spec.attr_name}:<!--{foreach from=$spec.goods_attr_list item=spec_list}--> {$spec_list}/<!--{/foreach}--></p> <!--{/foreach}--> 这样就可以实现了!本人也是菜鸟,高手漂过! ===================================== 除了加上 g.goods_attr 之外;还要FROM table('goods_attr')! 看看下面这个代码你应该知道怎么修改了: /* 获得商品的规格 */ $sql = 'SELECT a.attr_id, a.attr_name, a.is_linked, a.attr_type, g.goods_attr_id, g.attr_value, g.attr_price ' . 'FROM ' . $GLOBALS['ecs']->table('goods_attr') . ' AS g ' . 'LEFT JOIN ' . $GLOBALS['ecs']->table('attribute') . ' AS a ON a.attr_id = g.attr_id ' . "WHERE g.goods_id = '$goods_id' " . 'ORDER BY a.sort_order, g.attr_price, g.goods_attr_id'; 复制代码 原帖由 menkz 于 2007-9-12 10:36 发表 我在goods_list.lbi添加了如下代码:{$lang.goods_attr}{$goods.goods_attr} ============================================= 方法:在category.php的 function category_get_goods 函数的while ($row = $GLOBALS['db']->fetchRow($res)) { 复制代码下面加入:/*----------------Jet加的取得商品属性-------------------*/ $properties = get_goods_properties($row['goods_id']); $arr[$row['goods_id']]['propertie'] = $properties['pro']; 复制代码属性调用和数组赋值,取pro属性; 前台显示: 在category.dwt和goods_list.lbi的{$goods.goods_name}下面加入:<!-- {foreach from=$goods.propertie item=propertys key=key} --> <!-- {foreach from=$propertys item=property} --> {$property.name|escape:html}{$property.value|escape:html} <!-- {/foreach}--> <!-- {/foreach}--> 复制代码如此,前台列表文件即显示相对应产品的属性了。 {$key|escape} 可加亦可不加,是显示属性的类别名的。 =============================================== <table width="98%" border="0" align="center"> <!-- {foreach from=$properties item=property_group key=key} --> <tr> <td colspan="2"><strong>{$key|escape}</strong></td> </tr> <!-- {foreach from=$property_group item=property} --> <tr> <td nowrap="true">{$property.name|escape:html}</td> <td>{$property.value|escape:html}</td> </tr> <!-- {/foreach}--> <!-- {/foreach}--> </table> |
回答:
都是在列表页调用商品属性。。 我想要的效果是在商品详情页显示: 尺寸:a1*a2*a3 其中长=a1宽= a2高= a3 |
不知说的什么!!!!! |
ECSHOP 葵花宝典 找到这个。。看来得研究一下这些文件。 |
在数据库搜索color |
ecs_article 是文章内容表 ecs_payment 是支付内容表 ecs_shop_config 好像是放首页公告内容表 ecs_topic 优惠内容表。。 找到了 ecs_goods 是放商品的表 |
到底哪个列是对应商品属性的呢? 不管了。先在后台加一个商品。颜色填红红色。。 数据库搜索一下。。 出来这个。 |
看来ecs_goods_attr是放自定义属性的。。 进去看看。 goods_attr_idgoods_idattr_idattr_valueattr_price 869 541 217 红红色 0 attr_value 对应 红红色 应该是这个。。搜索一下。 |
数据库里: 商品ID goodsID=541 包包颜色 attr_id =217 类别 attr_id =215 风格 attr_id =216 |
goods_attr_id 是递增的。。 数据表弄懂了。。 那他们是如何调用的呢?继续。。 |
admin/goods.php找到这段。应该是重点。 // 商品属性 $sql = "DELETE FROM " . $ecs->table('goods_attr') . " WHERE goods_id = 0"; $db->query($sql); $sql = "SELECT 0 AS goods_id, attr_id, attr_value, attr_price " . "FROM " . $ecs->table('goods_attr') . " WHERE goods_id = '$_REQUEST[goods_id]' "; $res = $db->query($sql); while ($row = $db->fetchRow($res)) { $db->autoExecute($ecs->table('goods_attr'), addslashes_deep($row), 'INSERT'); } } |
$sql = "DELETE FROM " . $ecs->table('goods_attr') . " WHERE goods_id = 0"; 删除 goods_id = 0的数据.. |
最近更新
常用插件
- ecshop二次开发详细页面生
插件介绍: ECSHOP系统,在很多时候,很多商品没有人购买,不但购买的人...
- ecshop分类批量扩展插件
ecshop分类批量扩展插件,这个插件是ecshop插件里面比较核心的插件。我们...
- ecshop商品分类名称增加样
ecshop插件介绍:本插件可以方便在后台管理,为ecshop商品分类名称增加样...
- ecshop2.7.1打印发货单插件
ecshop2.7.1打印发货单插件介绍:ecshop2.7.1和以前的ecshop版本不一样,ecs...
- ecshop二次商品订购人信息
ecshop二次商品订购人信息填写插件,有时候给朋友送花,或者是送礼品的...
ecshop热门问答
ecshop热门资料
ecshop配置邮件
ajax使用
ecshop商品说明
ecshop招PHPER
ecshop排序
ecshop档案
ecshop求教
动态sql
ecshop库存插件
ecshop会员留言
ecshopnull
ecshop红包使用
ecshop遗漏
ecshop天空
ecshop错误提示
ecshop安装错误
ecshopmedium
ecshop添加模块
ecmall产品
ecshop路径
ecshop叠现
ecshophsph
ecshop下拉菜单
ecshopTable
ecshop1994
ecshop落款
ecshop义乌市
ecshop重新
ecshop何体统
ecshop新建