有关 ecshop 属性 {$goods.goods_attr|nl2br} 标签的赋值问题

1、nl2br() 函数在字符串中的每个新行 (\n) 之前插入 HTML 换行符 (<br />)。
2、 如果要向{$goods.goods_attr|nl2br}赋新值,这个值是保存在数据库中的,用户在商品页(goods.php)选择了商品属性(goods.attr)之后,点击"购买"就会进入购物车页面(flow.php),同时,将用户选择的商品属性(goods.attr)保存进了数据库,当进入购物车页面的时候,楼主可以看flow.dwt的代码(<!-- {foreach from=$goods_list item=goods} -->),那么{$goods.goods_attr}这个东西的值来自于flow.php中的$goods_list,查看flow.php,会发现,$goods_list的值来自cart_goods()这个方法,cart_goods()这个方法在includes/lib_order.php内,那里面有一段sql
($sql = "SELECT 。。。, " .
            "。。。, goods_attr(重点),。。。, " .
            "。。。 " .
            "FROM " . $GLOBALS['ecs']->table('cart') .
            " WHERE session_id = '" . SESS_ID . "' " .
            "AND rec_type = '$type'";)
,这个sql里面的goods_attr就是楼主你想要的值,它来自数据表cart,而用户对于商品属性的选择决定了cart这个表的goods_attr保存什么样的值。
另外一个影响{$goods.goods_attr}值的方法是includes/lib_order.php内的get_goods_attr_info(),不过这个方法不能决定商品的属性,而是决定商品属性的显示方式,它里面有一段代码:$fmt = "%s:%s[%s] \n";,这个在购物车显示出来的样子就是(例如):颜色:#ff0,我把它改了:$fmt = "<td>%s:</td><td>%s</td><td>[%s]</td> \n";, 也可以按自己的喜好来改。


   $fmt = " <label class=xxlblName>%s</label>:%s[%s] ";

你可能感兴趣的:(ecshop)