×
  官方微博: 腾讯   新浪
ECSHOP模板 
食品保健 家居化妆 家电数码 综合通用 珠宝配饰
VIP免费模板 
家居化妆 综合通用 服装饰品 食品保健 家电数码
ECSHOP插件 
ECSHOP插件 SHOPEX插件
EC教程中心
安装使用网店运营
首页 > 二次开发教程 > 让ecshop商品属性显示单选按钮与下拉列表共同显示

帮助目录

有问必答

您可以加入我们的官方QQ群。

加入官方QQ群

可以将问题或建议反馈给我们。

提交在线客服

猜您感兴趣

让ecshop商品属性显示单选按钮与下拉列表共同显示

网站开发中心/ 2014-11-24/ 关注人气:644

我们后台设定ecshop属性列表,存在两种设定方式商品属性显示样式: 单选按钮 与下拉列表,但是有时候可能我们需要让ecshop商品同时支持下拉与单选按钮,怎么办?这里ECSHOP网站开发中心就提供一个简单的方法。

在ecshop设定属性值时,如一般否进行检索 ,我们都不会选择,那么可以设定起来,在系统当中以这个为参照来判断。用到的字段attr_index 值为1


1. 找到系统lib_goods.php文件,函数get_goods_properties。增加属性spe的值


此段改成:

 

foreach ($res AS $row) {
        $row['attr_value'] = str_replace("\n", '<br />', $row['attr_value']);
 
        if ($row['attr_type'] == 0) {
            $group = (isset($groups[$row['attr_group']])) ? $groups[$row['attr_group']] : $GLOBALS['_LANG']['goods_attr'];
 
            $arr['pro'][$group][$row['attr_id']]['name'] = $row['attr_name'];
            $arr['pro'][$group][$row['attr_id']]['value'] = $row['attr_value'];
        } else {
            $arr['spe'][$row['attr_id']]['attr_type'] = $row['attr_type'];
            $arr['spe'][$row['attr_id']]['name'] = $row['attr_name'];
$arr['spe'][$row['attr_id']]['attr_index'] = $row['attr_index'];
            $arr['spe'][$row['attr_id']]['values'][] = array(
                'label' => $row['attr_value'],
                'price' => $row['attr_price'],
                'format_price' => price_format(abs($row['attr_price']), false),
                'id' => $row['goods_attr_id']);

        }

2,在模板当中判断

<!-- {if $spec.attr_index eq 1} -->
 <!-- {foreach from=$spec.values item=value key=key} -->
  <label for="spec_value_{$value.id}">
                        <input type="radio" name="spec_{$spec_key}" value="{$value.id}" id="spec_value_{$value.id}" {if $key eq 0}checked{/if} onclick="changePrice()" />
                        {$value.label} [{if $value.price gt 0}{$lang.plus}{elseif $value.price lt 0}{$lang.minus}{/if} {$value.format_price|abs}] </label><br />
          <!-- {/foreach} -->      
   <input type="hidden" name="spec_list" value="{$key}" />
                   <!-- {else} -->
 
                        <select name="spec_{$spec_key}" onchange="changePrice()">
                          <!-- {foreach from=$spec.values item=value key=key} -->
                          <option label="{$value.label}" value="{$value.id}">{$value.label} {if $value.price gt 0}{$lang.plus}{elseif $value.price lt 0}{$lang.minus}{/if}{if $value.price neq 0}{$value.format_price}{/if}</option>
                          <!-- {/foreach} -->
                        </select>
                        <input type="hidden" name="spec_list" value="{$key}" />
 <!-- {/if} -->
                      <!-- {/if} -->

标红部分<!-- {if $spec.attr_index eq 1} --> 就是主要判断部分。这样ecshop属性列表展示列表方式与单选按钮同时存在了。
分享到:
下一篇:给ECSHOP后台订单列表显示用户IP和地理位置
上一篇:ecshop实现删除商品时自动删除商品详情图片