今天简单的实现了一下ecshop商品导出到第三方的购买链接功能。
大致思路是给商品添加一个buy_link的text字段,存为json结构,然后通过json解析输出到商品购买页面

1.添加字段

增加购买链接字段,执行sql语句:

1 ALTER TABLE `ecs_goods` ADD `buy_link` TEXT NULL AFTER `goods_thumb` ;

2.增加商品发布表单项

随意增加

1 <tr>
2  <td class="label">购买链接</td>
3  <td><textarea name="buy_link" cols="40" rows="3">{$goods.buy_link}</textarea></br>
4  使用了简单json结构,请严格按照格式填写(如:{'taobao':'http://','360buy':'http://'},</br>分别代表淘宝店和京东店内的购买连接)
5  </td>
6  
7  </tr>

到/admin/templates/goods_info.htm,我增加在第258行下面(即,第三个table最后注意不要破坏table结构)

后台商品编辑页面多出了一个项目

3.增加读取数据

因为涉及到数据更新,应该先给表单填写初始值。在/admin/goods.php 446行下增加

1  $smarty->assign('buy_link',$goods['buy_link']);

4.增加发布商品存库

编辑/admin/goods.php页面821开始。取得表单传值buy_link,并在insert语句中增加中字段buy_link。可以直接修改为

1 $goods_thumb = (empty($goods_thumb) && isset($_POST['auto_thumb']))? $goods_img :$goods_thumb;
2  $buy_link empty($_POST['buy_link']) ? '' : trim($_POST['buy_link']);
3  
4 /* 入库 */
5  if ($is_insert)
6  {
7  if ($code == '')
8  {
9  $sql "INSERT INTO " $ecs->table('goods') . " (goods_name, goods_name_style, goods_sn, " .
10  "cat_id, brand_id, shop_price, market_price, is_promote, promote_price, " .
11  "promote_start_date, promote_end_date, goods_img, goods_thumb, buy_link, original_img, keywords, goods_brief, " .
12  "seller_note, goods_weight, goods_number, warn_number, integral, give_integral, is_best, is_new, is_hot, " .
13  "is_on_sale, is_alone_sale, is_shipping, goods_desc, add_time, last_update, goods_type, rank_integral, suppliers_id)" .
14  "VALUES ('$_POST[goods_name]', '$goods_name_style', '$goods_sn', '$catgory_id', " .
15  "'$brand_id', '$shop_price', '$market_price', '$is_promote','$promote_price', ".
16  "'$promote_start_date', '$promote_end_date', '$goods_img', '$goods_thumb', '$buy_link', '$original_img', ".
17  "'$_POST[keywords]', '$_POST[goods_brief]', '$_POST[seller_note]', '$goods_weight', '$goods_number',".
18  " '$warn_number', '$_POST[integral]', '$give_integral', '$is_best', '$is_new', '$is_hot', '$is_on_sale', '$is_alone_sale', $is_shipping, ".
19  " '$_POST[goods_desc]', '" . gmtime() . "', '". gmtime() ."', '$goods_type', '$rank_integral', '$suppliers_id')";
20  }
21  else
22  {
23  $sql "INSERT INTO " $ecs->table('goods') . " (goods_name, goods_name_style, goods_sn, " .
24  "cat_id, brand_id, shop_price, market_price, is_promote, promote_price, " .
25  "promote_start_date, promote_end_date, goods_img, goods_thumb, buy_link, original_img, keywords, goods_brief, " .
26  "seller_note, goods_weight, goods_number, warn_number, integral, give_integral, is_best, is_new, is_hot, is_real, " .
27  "is_on_sale, is_alone_sale, is_shipping, goods_desc, add_time, last_update, goods_type, extension_code, rank_integral)" .
28  "VALUES ('$_POST[goods_name]', '$goods_name_style', '$goods_sn', '$catgory_id', " .
29  "'$brand_id', '$shop_price', '$market_price', '$is_promote','$promote_price', ".
30  "'$promote_start_date', '$promote_end_date', '$goods_img', '$goods_thumb', '$buy_link', '$original_img', ".
31  "'$_POST[keywords]', '$_POST[goods_brief]', '$_POST[seller_note]', '$goods_weight', '$goods_number',".
32  " '$warn_number', '$_POST[integral]', '$give_integral', '$is_best', '$is_new', '$is_hot', 0, '$is_on_sale', '$is_alone_sale', $is_shipping, ".
33  " '$_POST[goods_desc]', '" . gmtime() . "', '". gmtime() ."', '$goods_type', '$code', '$rank_integral')";
34  }
35  }

,这样 增加商品时就能指定buy_link了

5.增加修改商品存库

在/admin/goods.php 901 行上的sql拼接上增加

1 "buy_link = '$buy_link', " .

则变为

1 $sql .= "buy_link = '$buy_link', " .
2  "keywords = '$_POST[keywords]', " .
3  "goods_brief = '$_POST[goods_brief]', " .
4  "seller_note = '$_POST[seller_note]', " .
5  "goods_weight = '$goods_weight'," .
6  "goods_number = '$goods_number', " .
7  "warn_number = '$warn_number', " .
8  "integral = '$_POST[integral]', " .
9  "give_integral = '$give_integral', " .
10  "rank_integral = '$rank_integral', " .
11  "is_best = '$is_best', " .
12  "is_new = '$is_new', " .
13  "is_hot = '$is_hot', " .
14  "is_on_sale = '$is_on_sale', " .
15  "is_alone_sale = '$is_alone_sale', " .
16  "is_shipping = '$is_shipping', " .
17  "goods_desc = '$_POST[goods_desc]', " .
18  "last_update = '". gmtime() ."', ".
19  "goods_type = '$goods_type' " .
20  "WHERE goods_id = '$_REQUEST[goods_id]' LIMIT 1";

由此,数据入库基本完成,现在做模版赋值。

6.模版赋值

goods_info函数已经读取出来所有数据,因此直接修改/goods.php( 注:是根目录下的),在197行下增加

1 /*第三方购买链接*/
2  
3 //不是json数据则不予赋值,防止编辑格式错误致使前台js解析出错
4  
5 if(is_null(json_decode($goods['buy_link']))){
6  
7  $smarty->assign('buy_link',$goods['buy_link']);
8  
9  }

7.模版读取

修改商品详情模版,如/themes/default/goods.dwt。397行下增加

1 <!-- {* 第三方购买 *} -->
2  <!-- {if $buy_link != ""} -->
3  <script type="text/javascript" language="javascript">
4  
5 var text="";
6  
7  // if(isJSONText){
8  Jbuylink = eval("{$buy_link}");
9  for(i=0;i<Jbuylink.length;i++){
10  text +='<a href="'+Jbuylink[i].url+'"target="_blank">'+Jbuylink[i].text+'</a>&nbsp;';
11  }
12  document.write("<br/>"+text);
13  // }
14  
15  </script>
16  <!-- {/if} -->

ok,功能完成。

下面简单测试下:编辑任意商品buy_link属性为[{text:'淘宝购买',url:'http://taobao.com'},{text:'京东购买',url:'http://360buy.com?p=89899'}]         保存,查看页面,如图:

商品导出连接

由此,已经能够读取到导出链接了

第4步中的内容改为

1 <tr>
2  <td class="label">购买链接</td>
3  <td><textarea name="buy_link" cols="40" rows="3">{$goods.buy_link}</textarea></br>
4  请严格按照格式填写(如:[{text:'淘宝购买',url:'http://taobao.com'},{text:'京东购买',url:'http://360bu.com'}]  </br>分别代表淘宝店和京东店内的购买连接)
5  </td>
6  </tr>

实现Ecshop商品跳到淘宝、京东等的购买链接的更多相关文章

  1. Android跳转淘宝、京东APP商品详情页

    import Android.content.Intent; import android.content.pm.PackageManager; import android.net.Uri; imp ...

  2. 方便代理下单的EcStore收货地址一键分析插件,同时支持淘宝/京东/一号店

    使用EcStore开展分销的网站,代理需要经常代客下单,每个客户收货地址都不同,要选择和填写多个内容才能完成地址输入:省.市.区.详细地址.收货人姓名.手机电话等,非常麻烦,也容易输入错误.安装EcS ...

  3. iOS开发 仿淘宝,京东商品详情3D动画

    - (void)show { [[UIApplication sharedApplication].windows[0] addSubview:self.projectView]; CGRect fr ...

  4. AOP编程 - 淘宝京东网络处理

    现象描述 当我们打开京东 app 进入首页,如果当前是没有网络的状态,里面的按钮点击是没有反应的.只有当我们打开网络的情况下,点击按钮才能跳转页面,按照我们一般人写代码的逻辑应该是这个样子: /** ...

  5. 开源第三方登录组件OAuthLogin2.0 支持QQ,阿里巴巴,淘宝,京东,蘑菇街,有赞等平台

    Nuget地址:https://www.nuget.org/packages/OAuthLogin2.0/ 项目结构说明: AuthorizationProviders文件夹下主要存放内置的授权平台. ...

  6. 仿淘宝,京东红包雨(基于Phaser框架)

    本红包雨项目是基于HTML5的游戏框架Phaser写的,最终形成的是一个canvas,所以性能很好,但是必须要说的是这个框架比较大,压缩后也有700K左右,所以请慎用. 代码地址: https://g ...

  7. vue mint-ui 实现省市区街道4级联动(仿淘宝京东收货地址4级联动)

    demo及源码地址 https://github.com/artiely/citypicker 先去下载一个“省份.城市.区县.乡镇” 四级联动数据,然后 引入 import { Picker } f ...

  8. 解决safari里面淘宝京东页面无法打开以及打开后乱码的问题!

    sqlite3 ~/Library/Keychains/*/ocspcache.sqlite3 'DELETE FROM responses WHERE responderURI LIKE " ...

  9. js原生淘宝京东宝贝放大镜效果

    js实现商城放大镜效果 效果: 鼠标放上去会有半透明遮罩.右边会有大图片局部图. 鼠标移动时右边的大图片也会局部移动. 技术点: Event Event 是一个事件对象,当一个事件发生后,和当前事件发 ...

随机推荐

  1. 在Matlab中编译c/c++代码需要安装mex

    >> mex -setup Welcome to mex -setup. This utility will help you set up a default compiler. For ...

  2. [转载]浅谈C/C++内存泄漏及其检测工具

    http://dev.yesky.com/147/2356147_3.shtml 对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题.已经有许多技术被研究出来以应对这个问题,比如Sm ...

  3. Vue.2.0.5-混合

    基础 混合是一种灵活的分布式复用 Vue 组件的方式.混合对象可以包含任意组件选项.以组件使用混合对象时,所有混合对象的选项将被混入该组件本身的选项. 例子: // 定义一个混合对象 var myMi ...

  4. 安装和删除 Alcatraz 插件

    在终端下输入如下命令来安装Alcatraz: curl -fsSL https://raw.github.com/supermarin/Alcatraz/master/Scripts/install. ...

  5. 安装ECshop普遍问题的解决方法

    安装ecshop经常会出现以下问题: 1.Strict Standards: Non-static method cls_image::gd_version() should not be calle ...

  6. PostgreSQL Monitor pg_view

    PostgreSQL Monitor pg_view https://github.com/zalando/pg_view Requirements Linux 2.6, python 2.6, ps ...

  7. WebService的简单应用

    具体看项目源文件:包含: ip地址查询, QQ在线状态查询,和自定义的MD5 破解和加密(呵呵有形无势...) http://pan.baidu.com/s/1bn09WQj SOAP 1.1 The ...

  8. Java基础(6):foreach 方法遍历数组

    foreach 并不是 Java 中的关键字,是 for 语句的特殊简化版本,在遍历数组.集合时, foreach 更简单便捷.从英文字面意思理解 foreach 也就是“ for 每一个”的意思,那 ...

  9. C++之路进阶——codevs2460(树的统计)

    2460 树的统计 2008年省队选拔赛浙江  时间限制: 2 s  空间限制: 128000 KB  题目等级 : 大师 Master       题目描述 Description 一棵树上有n个节 ...

  10. CCF真题之数字排序

    201503-2 问题描述 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出. 输入格式 输入的第一行包含一个整数n,表示给定数字的个数. 第二行包含n个整数,相邻的整数之间用一 ...