欢迎光临精准像素,本站所有资源仅供学习与参考,禁止用于商业用途或从事违法行为!

ecshop模板

Ecshop商品放大镜+属性图片插件
2021-01-19 精准像素

Ecshop商品放大镜+属性图片插件

  • 模板编号:1721
  • 模板分类:ecshop模板
  • 点击次数:22
  • 模板终端:电脑端
  • 适用版本:ECShop4.x
  • 模板编码:GBK+UTF
  • 下载权限:普通 / VIP
  • 模板售价:免费下载
  • 下载次数:0
立即下载
Ecshop商品放大镜+属性图片插件
Ecshop放大镜插件截图

Ecshop放大镜插件说明

附送修改的文件goods.dwt和goods_gallery1.lbi以及放大镜效果JS和CSS文件,对应位置都放好了,仅作参考,可以自行修改!不要直接覆盖你得网站模板,放大镜效果要根据你自己的网站模版进行修改的!!ecshop商品属性使用图片替换功能,支持颜色等任何属性替换成图片

Ecshop放大镜插件安装教程

1、将“直接替换的程序”里面的文件传到你网站相对应的目录下。

直接替换的程序包括文件:

admin/product_spec_pic.php
admin/templates/product_spec_pic.htm
admin/templates/product_spec_pic_info.htm
admin/images/guigou_icon.png
js/jscolor/arrow.gif
js/jscolor/cross.gif
js/jscolor/demo.html
js/jscolor/hs.png
js/jscolor/hv.png
js/jscolor/jscolor.js
languages/en_us/admin/product_spec_pic.php
languages/zh_cn/admin/product_spec_pic.php
languages/zh_tw/admin/product_spec_pic.php

2、将images文件夹传到你网站的模板文件夹下。以默认模板为例,就是传到themes/default文件夹下。这个要根据你现在使用的是哪套模板,就传到那个文件夹。当然也可以全部模板文件都放上。

3、打开admin/templates/goods_list.htm文件

找到:(大约在54行)

{if $specifications[$goods.goods_type] neq ''}<a href="goods.php?act=product_list&goods_id={$goods.goods_id}" title="{$lang.item_list}"><img src="images/icon_docs.gif" width="16" height="16" border="0" /></a>{else}<img src="images/empty.gif" width="16" height="16" border="0" />{/if}

在它下面添加一行代码:

{if $specifications[$goods.goods_type] neq ''}<a href="product_spec_pic.php?act=list&goods_id={$goods.goods_id}" title="{$lang.specification_pic}"><img src="images/guigou_icon.png" width="16" height="16" border="0" /></a>{else}<img src="images/empty.gif" width="16" height="16" border="0" />{/if}

4、打开根目录下includes/lib_goods.php文件

找到:

/**
* 获得商品的属性和规格
*
* @access  public
* @param   integer $goods_id
* @return  array
*/
function get_goods_properties($goods_id)
{
/* 对属性进行重新排序和分组 */
$sql = "SELECT attr_group ".
"FROM " . $GLOBALS['ecs']->table('goods_type') . " AS gt, " . $GLOBALS['ecs']->table('goods') . " AS g ".
"WHERE g.goods_id='$goods_id' AND gt.cat_id=g.goods_type";
$grp = $GLOBALS['db']->getOne($sql);
if (!empty($grp))
{
$groups = explode("n", strtr($grp, "r", ''));
}
/* 获得商品的规格 */
$sql = "SELECT a.attr_id, a.attr_name, a.attr_group, 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';
$res = $GLOBALS['db']->getAll($sql);
$arr['pro'] = array();     // 属性
$arr['spe'] = array();     // 规格
$arr['lnk'] = array();     // 关联的属性
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']]['values'][] = array(
'label'        => $row['attr_value'],
'price'        => $row['attr_price'],
'format_price' => price_format(abs($row['attr_price']), false),
'id'           => $row['goods_attr_id']);
}
if ($row['is_linked'] == 1)
{
/* 如果该属性需要关联,先保存下来 */
$arr['lnk'][$row['attr_id']]['name']  = $row['attr_name'];
$arr['lnk'][$row['attr_id']]['value'] = $row['attr_value'];
}
}
return $arr;
}
把它修改为:(这个要根据实际情况修改,请不要直接复制修改)
/**
* 获得商品的属性和规格
*
* @access  public
* @param   integer $goods_id
* @return  array
*/
function get_goods_properties($goods_id)
{
/* 对属性进行重新排序和分组 */
$sql = "SELECT attr_group ".
"FROM " . $GLOBALS['ecs']->table('goods_type') . " AS gt, " . $GLOBALS['ecs']->table('goods') . " AS g ".
"WHERE g.goods_id='$goods_id' AND gt.cat_id=g.goods_type";
$grp = $GLOBALS['db']->getOne($sql);
if (!empty($grp))
{
$groups = explode("n", strtr($grp, "r", ''));
}
/* 获得商品的规格 */
$sql = "SELECT a.attr_id, a.attr_name, a.attr_group, a.is_linked, a.attr_type, ".
"g.goods_attr_id, g.attr_value, g.attr_price,g.thumb_url,g.img_url,g.img_original, hex_color " .
'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';
$res = $GLOBALS['db']->getAll($sql);
$arr['pro'] = array();     // 属性
$arr['spe'] = array();     // 规格
$arr['lnk'] = array();     // 关联的属性
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']]['values'][] = array(
'label'        => $row['attr_value'],
'price'        => $row['attr_price'],
'img_url'        => $row['img_url'],
'img_original'        => $row['img_original'],
'thumb_url'        => $row['thumb_url'],
'hex_color'        => $row['hex_color'],
'format_price' => price_format(abs($row['attr_price']), false),
'id'           => $row['goods_attr_id']);
}
if ($row['is_linked'] == 1)
{
/* 如果该属性需要关联,先保存下来 */
$arr['lnk'][$row['attr_id']]['name']  = $row['attr_name'];
$arr['lnk'][$row['attr_id']]['value'] = $row['attr_value'];
}
}
return $arr;
}

5、关于模板themes/模板路径/goods.dwt修改

找到:

<!-- {* 开始循环所有可选属性 *} -->
<!-- {* 结束循环可选属性 *} -->

将这两个注释的之间代码改成如下:

<!-- {* 开始循环所有可选属性 *} -->
<script language="javascript">
function changeAtt(t,src,key)
{  
document.getElementById('spec_value_'+src).checked='checked';
var itemObj = document.getElementById("catt_"+key);
var elems = itemObj.getElementsByTagName("a");
for (i = 0; i < elems.length; i ++ )
{
var prefix = elems[i].name.substr(0, 7);
if (prefix == 'spec_a_')
{
elems[i].className = '';
}
}
t.className = "cattsel";
changePrice();
}
</script>
<style type="text/css">
<!--
/*--------------颜色选择器CSS添加-------------*/
.propertySelect{padding:10px 0 10px 10px;}
.propertySelect strong{float:left;font-weight:normal;text-align:left;}
.propertySelect .catt{height:auto;overflow:hidden;}
.propertySelect .catt a{border:1px solid #C8C9CD;text-align:center;background-color:#FFFFFF;display:block;white-space:nowrap;color:#666666;text-decoration:none;float:left;margin-left:2px;margin-right:2px;position:relative;}
.propertySelect .catt a p{border:1px solid #FFFFFF;padding:2px 5px;background-color:#FFFFFF;}
.propertySelect .catt a p.padd{padding:0px;}
.propertySelect .catt a:hover{border:1px solid #FF6701;}
.propertySelect .catt a:hover p{border:1px solid #FF6701;}
.propertySelect .catt a:focus{outline-style:none;}
.propertySelect .catt .cattsel{background:#FF6701;border:1px solid #FF6701;}
.propertySelect .catt .cattsel a:hover{border:1px solid #FF6701;}
.propertySelect .catt .cattsel p{border:1px solid #FF6701;}
.propertySelect .catt em{font-style:normal;}
.propertySelect .catt .cattsel i{background:url(images/test.png) no-repeat scroll right bottom transparent;bottom:0;height:16px;position:absolute;right:0;width:16px;}
.propertySelect .catt .cattsel a:hover i{background:url(images/test.png) no-repeat scroll right bottom transparent;}
-->
</style>
{if $specification}
<div class="propertySelect clearfix" id="propertySelect">
<!-- {foreach from=$specification item=spec key=spec_key} -->
<strong>{$spec.name}:</strong>
<div class="catt" id="catt_{$spec_key}">
<!-- {* 判断属性是复选还是单选 *} -->
<!-- {if $spec.attr_type eq 1} -->
<!-- {if $cfg.goodsattr_style eq 1} -->
<!-- {foreach from=$spec.values item=value key=key} -->
<a class='hover {if $key eq 0}cattsel{/if}{if $value.thumb_url} colorImg{/if}' {if $value.thumb_url} href="{$value.img_original}" rev={$value.img_original} rel=goodsPic {else}href="javascript:"{/if} title="{$value.label}" style="cursor:pointer" name="spec_a_{$value.id}" onclick="changeAtt(this,{$value.id},{$spec_key})">
<p {if $value.thumb_url}class="padd"{elseif $value.hex_color neq ''}style="background:#{$value.hex_color}; height:45px; width:45px"{/if}>
{if $value.thumb_url}
<img src="{$value.thumb_url}" width="50" height="50" alt="{$value.label}">
{elseif $value.hex_color}
{else}
<em>{$value.label}</em>
{/if}
<i></i>
</p>
<input style="display:none" id="spec_value_{$value.id}" type="radio" name="spec_{$spec_key}" value="{$value.id}" {if $key eq 0}checked{/if} />
</a>
<!-- {/foreach} -->
<input type="hidden" name="spec_list" value="{$key}" />
<!-- {else} -->
<select name="spec_{$spec_key}">
<!-- {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} -->
<!-- {else} -->
<!-- {foreach from=$spec.values item=value key=key} -->
<label for="spec_value_{$value.id}">
<input type="checkbox" name="spec_{$spec_key}" value="{$value.id}" id="spec_value_{$value.id}" 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}" />
<!-- {/if} -->
</div>
<div class="blank"></div>
<!-- {/foreach} -->
</div>
{/if}
<!-- {* 结束循环可选属性 *} -->

6、在后台数据库管理->SQL查询处执行以下语句(全部一次性):

请将ecs_改成你的网站数据库扩展名,如果你的数据扩展名已经是ecs_了,那就不用改了。

Alter table ecs_goods_attr add column thumb_url varchar(50) not null default '';
Alter table ecs_goods_attr add column img_url varchar(50) not null default '';
Alter table ecs_goods_attr add column img_original varchar(50) not null default '';
Alter table ecs_goods_attr add column hex_color varchar(50) not null default '';
ALTER TABLE `ecs_goods_attr` CHANGE `img_url` `img_url` VARCHAR( 80 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
CHANGE `img_original` `img_original` VARCHAR( 80 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
CHANGE `hex_color` `hex_color` VARCHAR( 80 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
ALTER TABLE `ecs_goods_attr` CHANGE `thumb_url` `thumb_url` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;

7、data目录下建一个category目录

8、根据需要修改您的模版商品详情页实现放大镜效果,见附送的放大镜效果实现示例。


下载地址

· 积分下载:下载扣除对应积分,不扣除下载次数
· 会员免费:VIP会员免费下载,扣除下载次数
· 下载即代表您已阅读并同意 [服务条款]

相关推荐
  • ecshop插件
  • 模板图片
  • Ecshop商品放大镜+属性图片插件
    Ecshop商品放大镜+属性图片插件

    Ecshop放大镜插件说明附送修改的文件goods.dwt和goods_gallery1.lbi以及放大镜效果JS和CSS文件,对应位置都放好了,仅作参考,可以自行修改!不要直接覆盖你得网站模板,放大镜效果要根据你自己的网站模...

    ecshop模板 22 9个月前
  • ECShop码支付插件
    ECShop码支付插件

    ECShop码支付插件简介本接口为ecshop插件包含了支付宝接口 微信接口 及QQ钱包三种接口. 您只需要上传到ECShop的根目录即可实现安装。 ECShop码支付安装方法1:下载后选择对应编码文件gb2312 或者u...

    ecshop模板 53 9个月前
  • ECSHOP圆通快递单号查询插件
    ECSHOP圆通快递单号查询插件

    插件截图插件说明快递窝快递查询插件遵循ECSHOP二次开发规则,未修改何数据库、不影响系统升级,如ECSHOP系统升级后可进行修改后上传覆盖即可,本API插件支持1000多家快递公司单号查询!现支持ECSHOP2.X...

    ecshop模板 39 9个月前
  • 精准像素图片瀑布流模板免费下载
    精准像素图片瀑布流模板免费下载

    本帝国CMS模板为免费帝国CMS模板,不提供技术支持与维护!安装模板1、上传Style目录到帝国CMS根目录2、复制对应附件代码到帝国CMS后台3、新建标签模板 页面模板内容 &#091;!-----em...

    帝国cms模板 1986 8年前
  • 仿养眼美眉网帝国CMS模板带数据库、采集规则
    仿养眼美眉网帝国CMS模板带数据库、采集规则

    帝国CMS模板说明:1、本模板为GBK编码,其他编码请自行转码。2、模板分为首页、栏目页、内容页。3、模板带测试数据库,推荐使用数据库安装模板。数据库默认后台帐号密码为:...

    帝国cms模板 1485 7年前
  • 帝国CMS美女写真图片站模板
    帝国CMS美女写真图片站模板

    帝国CMS模板说明1、本模板为GBK编码,其他编码请自行转码。2、模板分为首页、栏目页、内容页。3、模板带测试数据库,推荐使用数据库安装模板。数据库默认后台帐号密码为:ad...

    帝国cms模板 2856 7年前
  • 仿靓女图片网帝国CMS模板
    仿靓女图片网帝国CMS模板

    帝国CMS模板安装教程:【 注意:上传t_functions.php到帝国CMS e\class , 此处二次修改,解决图片内容页页码显示如:1/5 】模板安装方法:1、上传Style目录到帝国CMS根目...

    帝国cms模板 501 7年前
  • 仿游迅图库瀑布流帝国模板
    仿游迅图库瀑布流帝国模板

    模板名称:帝国CMS-迅游图片站模板作者:精准像素发布网站:http://www.11px.cn业务介绍:模板订制、仿站、网站建设、模板建站、域名主机帝国CMS模板安装教程帝国CMS模板安装方法:1、上传Style目录到帝国C...

    帝国cms模板 748 7年前