ECSHOP增加产品中新增一个上传附件功能
ecshop后台图片批量上传插件分享
ecshop后台图片批量上传插件分享本着分享的精神,这里跟大家免费分享下ecshop后台图片批量上传插件的制作教程,部分需要的文件在底部我的百度网盘里有下载,推荐大家使用百度网盘分享下载方便。
下面说下制作方法。
一.如果你是ecshop的后台商品描述要添加批量上传的话1、解压缩里面的文件夹plugins解压缩到\includes\fckeditor\editor以上好了,接着设置加载插件2、打开fckeditor\fckconfig.js找到"FCKConfig.AutoGrowMax = 400 ;"在前面添加行FCKConfig.Plugins.Add('swfupload','zh-cn');然后在FCKConfig.ToolbarSets["Default"] = [或者FCKConfig.ToolbarSets["Basic"] = [中添加例如我在['Image','swfupload','Table','Smiley','SpecialChar'] 中添加到了'image'标签后面这样这个插件图片就会显示到文件上传的按钮的后面一个二、.其他系统的话,则1)里面的文件夹plugins 复制到fckeditor\editor\下最后的路径就因该是 fckeditor\editor\plugins\swfupload注意文件夹名不能修改要修改需要配合修改fckconfig.js以上好了,接着设置加载插件打开 fckeditor\fckconfig.js找到 "FCKConfig.AutoGrowMax = 400 ;"在前面添加行 FCKConfig.Plugins.Add('swfupload','zh-cn');然后在 FCKConfig.ToolbarSets["Default"] = [或者 FCKConfig.ToolbarSets["Basic"] = [中添加例如我在 ['Image','swfupload','Table','Smiley','SpecialChar'] 中添加到了 'image'标签后面这样这个插件图片就会显示到文件上传的按钮的后面一个该插件其他需要下载的部分文件在我的百度网盘里:百度网盘:/share/link?shareid=532801&uk=454004364。
ecshop商品详情页添加任意字段的方法
ecshop商品详情页添加任意字段的方法一、在数据库添加字段,会手写的就后台添加,不会就进入phpmyadmin默认的就行。
这是通用的写法ALTER TABLE `kbt_goods` ADD `goods_gift` VARCHAR( 500 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL AFTER `is_check` ;表名做下修改即可。
二、修改admin/good.php找到/* 处理商品数据 */$shop_price = !empty($_POST['shop_price']) ? $_POST['shop_price'] : 0;后面依葫芦画瓢添加近自己字段。
找到/* 入库 */if ($is_insert){if ($code == '')同样依葫芦画瓢添加近自己字段,找到"goods_gift = '$goods_gift'," .同样依葫芦画瓢添加近自己字段。
三、修改admin/templates/goods_info.htm在合适的地方添加,如果想在编辑商品—其他信息处添加,找到{if $code eq ''}{$b_goods_gift}{/if}添加{$b_goods_sz}四、修改模板在合适的地方添加:如果想在商品重量下添加查找{$goods.goods_weight}在下面添加{$lang.goods_sz}{$goods.goods_sz}自己修改相应字段。
五、基本到位,下面就是修改下语言项,不想修改也可以,将{$lang.goods_sz}、{$b_goods_sz}改成自己需要的个汉字即可。
Ecshop商品详情批量上传图片插件终极版[千圣网络出品]
Ecshop商品详情批量上传图片插件终极版[千圣网络出品]事件回放:如果客户要求在后台的商品详情页中,加入图文描述,默认的编辑器就是个鸡肋了,只能一张张土传,然后再加文字,文字可以复制粘贴,但是图片呢……当然图片也有更好的方式,这里我们就先不透漏方法了,相信有实战经验的朋友都知道的,今天我们讲的是在ecshop 后台自带的编辑器中加入批量上传图片功能,图片传好了,文字加起来就方便多了。
以下是实现步骤,请仔细看,不然有插件你也实现不了的哦。
1.将拿到的压缩包,解压到\includes\fckeditor\editor\,这里要注意,简单来讲就是要将解压出来的plugins文件夹,放到editor这个文件目录中!!!网上的一些教程说明,有误导用户的嫌疑,放不对的话,实现不了的哟。
2.以上好了,接着设置加载插件语句,方法是打开 fckeditor\fckconfig.js文件,搜索找到 "FCKConfig.AutoGrowMax = 400 ;"然后在它的上一行添加一句: FCKConfig.Plugins.Add('swfupload','zh-cn');如下图所示:3.然后再找到 FCKConfig.ToolbarSets["Default"] = [……这段,按我在下面有附图中标明的地方,增加一句:’swfupload’,如果成功的话,我们在后台的商品详情页里,在工具栏中,会看到最后增加了一个小图标,这就是批量上传的按钮了,如图所示:下面这张图是修改“FCKConfig.ToolbarSets["Default"] = [”这几段内容时要用到的,请仔细看,不然按钮就出现不了!!!请注意,共有三个地方要添加,这是最关键的地方!!!4.以上3步完成之后,我们再到后台商品详情里看看,是不是多了一个按钮,试一试吧。
ecshop2.7.3新商品接口使用手册 - ET采集
ecshop2.7.3新商品接口使用手册一、简介1、本接口应用于ecshop商品管理频道添加新商品;2、发布时请使用管理员用户帐号;3、ecshop有utf8和GBK版本,请在发布规则中选择对应编码;4、本接口基于ecshop2.7.3 RELEASE 20121106版制作,应用于其他版本时请自行测试调整;5、接口文件无须任何改动即可使用,如果你希望增加校验或其他功能,请仔细修改;6、2个接口文件请复制在网站目录admin下使用;本接口支持图片入库,自动生成商品缩略图,自动生成相册图片;二、安装接口在接口文件夹中找到接口文件,如图:请将etchk.php、etpost.php等接口文件上传到指定目录,请使用二进制方式上传,如图:三、配置发布规则1、复制范例发布规则或者将本节后附的范例规则文本导入ET2发布配置即可,如图:2、将检查网址和发布网址中的“您的网站”改为您要发布的网站网址,如图:3、在参数取值处,填上您要发布的商品分类ID,分类ID必填,如图:在后台商品分类管理查看分类ID,如图示:4、填上您的管理账号、密码,注意格式,如图:四、接口说明一、检查接口1、接口文件名etchk.php,为保密,请自行修改文件名;2、本接口文件复制在网站admin目录下使用;3、主要参数goods_name商品名称cat_id商品分类ID,用于指定重复检查范围,可不填,请对照后台管理查看分类ID;vercode安全校验码,请自行设定,并在检查接口文件开始处修改vercode使其一致;4、发布配置-文章检查网址处,可以如下填写:http://您的网站/admin/etchk.php?goods_name=<%title%>&cat_id=商品分类ID&vercode=注:使用大小写敏感的服务器的用户请注意网址大小写和网站文件一致5、接口文件无须任何改动即可使用,如果你希望增加校验或其他功能,请仔细修改;二、发布接口1、接口文件名etpost.php,为保密,请自行修改文件名;2、本接口文件请复制在网站admin目录下使用;注:以下参数名后“=”号为示范取值而用,参数名本身不含“=”号;固定取值的参数,可以在发布规则-参数取值中设置;采集取值的参数项,请在发布规则-发布项中添加;3、主要参数user_name会员名参数名;password密码参数名;goods_name商品名称goods_desc商品详细描述4、附加参数cat_id商品分类ID,必填,可在后台管理-商品分类管理中查看;vercode安全校验码,请自行设定,并在发布接口文件开始处修改vercode使其一致,本项用以防止接口被他人利用,如果需要进行更多校验,请自行填加相关代码;shop_price本店售价,必填5、可选参数zk会员折扣,用于计算会员(注册用户)价格,1为原价,0.5表示5折,以此类推,留空无折扣;goods_sn商品货号,可留空,货号不能重复;other_cat[]商品所属其他分类ID,可留空,可设多个,格式如图:goods_name_color商品名称显示颜色,可留空,格式为RGB代码,如红色#ff0000;goods_name_style商品名称显示样式,可留空,strong:加粗,em:斜体,u:下划线,strike:删除线;brand_id商品品牌ID,可留空,可在品牌管理处查看ID,如图示:suppliers_id供货商ID,0表示本店,可在供货商管理处查看ID,如图示:volume_number[]商品优惠起始数量,可设多个,与volume_price[]对应设置,见volume_price[]图示;volume_price[]对应数量商品优惠价格,商品优惠参数必须成对按顺序设置,见图示:market_price市场售价,0则自动计算;give_integral购买该商品时赠送消费积分数,-1表示按商品价格赠送;rank_integral购买该商品时赠送等级积分数,-1表示按商品价格赠送;integral积分购买金额,购买该商品时最多可以使用积分的金额;is_promote是否促销,1为是,留空或0为否;promote_price促销价;promote_start_date促销开始日期,长日期格式,如:2013-5-21,;promote_end_date促销结束日期,长日期格式,如:2013-7-21,;goods_weight商品重量;weight_unit重量单位,1为千克,0.001为克;goods_number商品库存数量;warn_number库存警告数量;is_best是否精品,1为是,0或空为否;is_new是否新品,1为是,0或空为否;is_hot是否热销,1为是,0或空为否;is_on_sale是否上架,1为是,0或空为否;is_alone_sale是否能作为普通商品销售,否则只能作为配件或赠品销售,1为是,0或空为否;is_shipping是否为免运费商品表示此商品不会产生运费花销,否则按照正常运费计算重量,1为是,0或空为否;keywords商品关键词,空格分隔;goods_brief商品简介;seller_note商家备注;goods_type商品类型ID,可在商品类型管理中查看ID,不设则为0;attr_id_list[]、attr_value_list[]、attr_price_list[]商品属性值设置参数,attr_ id _list[]为属性ID,attr_ value _list[]为属性值,attr_price_list[]为保留参数默认为0;属性ID可在后台-商品类型-属性中查看,如图示:设置多个属性时,3个属性参数必须成对按顺序设置,以设置上图中ID分别为56的网络制式和60的主屏参数/内屏参数为例,见图示:用户在设置服装等其他自定义类别的商品属性时,请按以上图示设置;7、图片参数ECSHOP图片入库会默认在网站生成相关图片,因此网站的PHP配置必须开启allow_url_fopen;goods_thumb_url商品缩略图地址参数,可使用外链网址,也可以上传到网站(默认上传位置/ images 目录),将自动在网站生成相关本地图片;goods_img_url商品图片地址参数,可使用外链网址,也可以上传到网站(默认上传位置/ images 目录),将自动在网站生成相关本地图片;当商品缩略图参数为空值时,将自动使用商品图片生成缩略图。
ECSHOP各文件夹功能说明要点
ECSHOP各文件夹功能说明1、根目录:前台程序文件2、admin:后台程序文件夹--根目录:后台程序文件*.php文件--help\zh_cn:各功能的帮助文件*.xml文件--images:后台页面用图片--includes:后台公用文件和函数--js:后台用js脚本--styles:后台用样式表--templates:后台页面模板*.htm文件3、api:调用API的系统公用函数4、cert:存放证书的文件夹5、data:数据连接设置等,包括各种广告的上传图片等--afficheimg:首页flash广告图片--brandlogo:品牌logo6、images:上传商品图片文件夹,按日期分目录--200902:按月份划分商品图片--upload:上传文件夹,包括file、flash、image和media7、includes:前台公用文件和函数--codetable:语言对应的代码表--fckeditor:开源html文本编辑器--modules\convert:shopex转换文件--modules\cron:如自动上下架、ip删除等函数--modules\integrates:整合各种插件和函数基础类--modules\payment:各种支付接口插件--modules\shipping:各种送货方式插件8、install:系统安装文件夹,用后请删除9、js:前台用js脚本--calendar:日历控件10、languages:语言文件--zh_cn:简体中文语言文件,存储简体中文下使用的函数变量等--zh_tw:繁体中文语言文件,存储繁体中文下使用的函数变量等11、temp:存放临时缓存等文件12、themes:模板文件夹,可以随意拷贝模板样式13、wap:手机浏览程序--includes;公用文件和函数--templates:页面模板*.wml文件。
无限标记语言WML(Wireless Markup Language)是一种基于扩展标记语言XML(Extension Markup Language)的语言,是XML的子集。
Ecshop使用说明流程图
Ecshop 使用说明流程图及分析一、功能模块概述电子商务商品管理订单管理会员管理管理员管理文章管理系统设置商品列表添加商品商品分类商品品牌商品回收站订单列表订单查询订单状态变更删除订单会员列表添加新会员会员等级会员评论资金管理管理员列表管理员权限文章分类文章列表商店设置配送方式地区列表友情链接验证码管理自定义导航栏商品类型二、商品管理2.1商品列表通过查询数据库中的商品信息,将相关信息显示在页面上,并提供相应操作连接。
添加编辑复制 放入回收站搜索查看2.1.1商品列表所含功能说明商品列表商品列表添加商品商品编辑商品复制商品回收站商品查询2.1.2商品列表流程商品列表查询未放入回收站的商品信息输出数组至页面根据页面布局输出商品列表组合SQL语句,查询未放入回收站的商品获取返回的数组,传递到模版按规则显示数据简述:本功能主要实现显示出商品信息的功能,通过点击商品列表的链接,使用PHP查询没有放入回收站的商品信息,将返回值存储到数组中,通过模版引擎将数组传送到视图,利用模版引擎的格式输出查询到的数据。
2.1.3添加商品流程添加商品填写商品信息提交至处理页面保存到数据库并跳转至列表页添加商品填写表单信息提交到处理页面接收数据并存储到数组中组合插入数据的SQL语句将数据存储到相应的数据表中跳转到商品列表页面简述:本功能主要描述添加一件商品的过程。
点击添加商品按钮,调出需要填写的表单,表单填写完成后,通过提交,将数据提交到处理页面,由处理页面负责设置数组接收提交的数据,组合成插入的SQL语句,将数据写入到数据库表中,确认添加完成后跳转到商品列表页面,完成数据插入。
2.1.4商品编辑编辑商品修改商品信息提交至处理页面保存到数据库并跳转至列表页编辑商品修改表单信息提交到处理页面接收数据并存储到数组中组合更新数据的SQL语句将数据存储到相应的数据表中跳转到商品列表页面获取指定的商品信息获取商品ID根据商品ID查询出需要修改的商品信息按照规定的表单位置显示商品信息简述:本功能主要描述修改一件商品信息的过程。
商派Commerce B2B2C移动商城买家版APP产品功能说明
无
需依据效果图确定
30
店铺信息
1. 店铺信息
2. 店铺首页标签信息
无
需依据效果图确定
31
其他
帮助类
1. 支付接口
2. 猎取支付方式
3. 猎取地区列表
4. 依据ID猎取地区名
5. 得到地区的结构图
6. 猎取地区名
7. 得到指定id的地区信息
8. 指定id的下级信息
9. 得到指定id同级的地区信息
10.得到指定id的信息及父级的名称
无
支付接口,目前支持支付宝,银盛。其他需另行评估。
待付款订单详情页
16
会员
登录注册页面
1. 登录〔无信任登录〕
2. 注册〔邮箱, ,用户名〕
3. 猎取 短信验证码
4. 校验 短信验证码
无
17
会员中心
1. 订单评论列表
2. 订单追加评论
3. 保存评论
4. 站内通知
5. 站内信
无
18
我的优待券
1. 猎取会员优待券列表
2. 猎取优待券信息
无
19
保藏店铺
1. 保藏店铺列表
1. 修改购物车商品购置数量
2. 删除购物车项
3. 猎取购物车列表
4. 调转订单确认页
5. 猎取优待劵列表
6. 修改订单确认工程
7. 生成订单,返回待付款订单详情页
8. 取消订单
9. 确认收货
无
支付接口
物流接口
14
确认订单页面
1、支付:将银联合作银行提取到一级页面,自动跳转银联
2、第三方物流接口
15
活动首页
ecshop商品分类添加上传图片的功能
ecshop的商品分类没有对就的分类图片,如果你需要为分类添加图片,然后在前端显示,可以按以下的步骤实现这个功能:第一步:为数据库中的ecs_category表增加一个字段,用来存储上传上来的分类图片名,这步可以直接在后台执行sql语句:alter table ecs_category add thumb varchar(255) not null default '';注意,如果你的ecshop表前缀不是ecs_请把ecs_换成你自已的表前缀第二步:在admin/templates/categroy_info.html增加上传要类图片的表单:代码如下<tr><td class="label">{$lang.cat_desc}:</td><td><textarea name='cat_desc' rows="6" cols="48">{$cat_info.cat_desc}</textarea></td></tr><!-----从这时开始是新增加的----><tr><td class="label">分类图片</td><td><input type="file" name="thumb" id="thumb" size="45">{if $cat_info.thumb neq ""}<input type="button" value="删除logo" onclick="if (confirm('确认删除分类图标吗?'))location.href='category.php?act=drop_thumb&id={$cat_info.cat_id}'">{/if}<br />{if $cat_info.thumb}<img src="../data/catthumb/{$cat_info.thumb}" />{/if}</td></tr><!-------------新加加的结束----------------------></table>第三步:修改category.php的insert和update在顶部增加:代码如下define('IN_ECS', true);require(dirname(__FILE__) . '/includes/init.php');/***新增加的开始***/include_once(ROOT_PATH . 'includes/cls_image.php');$image = new cls_image($_CFG['bgcolor']);/***新增加的结束***/$exc = new exchange($ecs->table("category"), $db, 'cat_id', 'cat_name');在insert段代码/*------------------------------------------------------ *///-- 商品分类添加时的处理/*------------------------------------------------------ */if ($_REQUEST['act'] == 'insert'){/* 权限检查*/admin_priv('cat_manage');/* 初始化变量*/$cat['cat_id'] = !empty($_POST['cat_id']) ? intval($_POST['cat_id']) : 0;$cat['parent_id'] = !empty($_POST['parent_id']) ? intval($_POST['parent_id']) : 0;$cat['sort_order'] = !empty($_POST['sort_order']) ? intval($_POST['sort_order']) : 0;$cat['keywords'] = !empty($_POST['keywords']) ? trim($_POST['keywords']) : '';$cat['cat_desc'] = !empty($_POST['cat_desc']) ? $_POST['cat_desc'] : '';$cat['measure_unit'] = !empty($_POST['measure_unit']) ? trim($_POST['measure_unit']) : ''; $cat['cat_name'] = !empty($_POST['cat_name']) ? trim($_POST['cat_name']) : '';$cat['show_in_nav'] = !empty($_POST['show_in_nav']) ? intval($_POST['show_in_nav']): 0; $cat['style'] = !empty($_POST['style']) ? trim($_POST['style']) : '';$cat['is_show'] = !empty($_POST['is_show']) ? intval($_POST['is_show']) : 0;$cat['grade'] = !empty($_POST['grade']) ? intval($_POST['grade']) : 0;$cat['filter_attr'] = !empty($_POST['filter_attr']) ? implode(',', array_unique($_POST['filter_attr'])) : 0;$cat['cat_recommend'] = !empty($_POST['cat_recommend']) ? $_POST['cat_recommend'] : array();if (cat_exists($cat['cat_name'], $cat['parent_id'])){/* 同级别下不能有重复的分类名称*/$link[] = array('text' => $_LANG['go_back'], 'href' => 'javascript:history.back(-1)');sys_msg($_LANG['catname_exist'], 0, $link);}if($cat['grade'] > 10 || $cat['grade'] < 0){/* 价格区间数超过范围*/$link[] = array('text' => $_LANG['go_back'], 'href' => 'javascript:history.back(-1)');sys_msg($_LANG['grade_error'], 0, $link);}/*处理图片*/$img_name = basename($image->upload_image($_FILES['thumb'],'catthumb'));if($img_name) $cat['thumb'] = $img_name;/* 入库的操作*/if ($db->autoExecute($ecs->table('category'), $cat) !== false){$cat_id = $db->insert_id();if($cat['show_in_nav'] == 1){$vieworder = $db->getOne("SELECT max(vieworder) FROM ". $ecs->table('nav') . " WHERE type = 'middle'");$vieworder += 2;//显示在自定义导航栏中$sql = "INSERT INTO " . $ecs->table('nav') ." (name,ctype,cid,ifshow,vieworder,opennew,url,type)"." V ALUES('" . $cat['cat_name'] . "', 'c', '".$db->insert_id()."','1','$vieworder','0', '" . build_uri('category', array('cid'=> $cat_id), $cat['cat_name']) . "','middle')";$db->query($sql);}insert_cat_recommend($cat['cat_recommend'], $cat_id);admin_log($_POST['cat_name'], 'add', 'category'); // 记录管理员操作clear_cache_files(); // 清除缓存/*添加链接*/$link[0]['text'] = $_LANG['continue_add'];$link[0]['href'] = 'category.php?act=add';$link[1]['text'] = $_LANG['back_list'];$link[1]['href'] = 'category.php?act=list';sys_msg($_LANG['catadd_succed'], 0, $link);}}在update段代码/*------------------------------------------------------ *///-- 编辑商品分类信息/*------------------------------------------------------ */if ($_REQUEST['act'] == 'update'){/* 权限检查*/admin_priv('cat_manage');/* 初始化变量*/$cat_id = !empty($_POST['cat_id']) ? intval($_POST['cat_id']) : 0;$old_cat_name = $_POST['old_cat_name'];$cat['parent_id'] = !empty($_POST['parent_id']) ? intval($_POST['parent_id']) : 0;$cat['sort_order'] = !empty($_POST['sort_order']) ? intval($_POST['sort_order']) : 0;$cat['keywords'] = !empty($_POST['keywords']) ? trim($_POST['keywords']) : '';$cat['cat_desc'] = !empty($_POST['cat_desc']) ? $_POST['cat_desc'] : '';$cat['measure_unit'] = !empty($_POST['measure_unit']) ? trim($_POST['measure_unit']) : ''; $cat['cat_name'] = !empty($_POST['cat_name']) ? trim($_POST['cat_name']) : '';$cat['is_show'] = !empty($_POST['is_show']) ? intval($_POST['is_show']) : 0;$cat['show_in_nav'] = !empty($_POST['show_in_nav']) ? intval($_POST['show_in_nav']): 0; $cat['style'] = !empty($_POST['style']) ? trim($_POST['style']) : '';$cat['grade'] = !empty($_POST['grade']) ? intval($_POST['grade']) : 0;$cat['filter_attr'] = !empty($_POST['filter_attr']) ? implode(',', array_unique($_POST['filter_attr'])) : 0;$cat['cat_recommend'] = !empty($_POST['cat_recommend']) ? $_POST['cat_recommend'] : array();/* 判断分类名是否重复*/if ($cat['cat_name'] != $old_cat_name){if (cat_exists($cat['cat_name'],$cat['parent_id'], $cat_id)){$link[] = array('text' => $_LANG['go_back'], 'href' => 'javascript:history.back(-1)');sys_msg($_LANG['catname_exist'], 0, $link);}}/* 判断上级目录是否合法*/$children = array_keys(cat_list($cat_id, 0, false)); // 获得当前分类的所有下级分类if (in_array($cat['parent_id'], $children)){/* 选定的父类是当前分类或当前分类的下级分类*/$link[] = array('text' => $_LANG['go_back'], 'href' => 'javascript:history.back(-1)');sys_msg($_LANG["is_leaf_error"], 0, $link);}if($cat['grade'] > 10 || $cat['grade'] < 0){/* 价格区间数超过范围*/$link[] = array('text' => $_LANG['go_back'], 'href' => 'javascript:history.back(-1)');sys_msg($_LANG['grade_error'], 0, $link);}$dat = $db->getRow("SELECT cat_name, show_in_nav FROM ". $ecs->table('category') . " WHERE cat_id = '$cat_id'");/* 处理图片*/$img_name = basename($image->upload_image($_FILES['thumb'],'catthumb'));if($img_name) $cat['thumb'] = $img_name;if ($db->autoExecute($ecs->table('category'), $cat, 'UPDATE', "cat_id='$cat_id'")){if($cat['cat_name'] != $dat['cat_name']){//如果分类名称发生了改变$sql = "UPDATE " . $ecs->table('nav') . " SET name = '" . $cat['cat_name'] . "' WHERE ctype = 'c' AND cid = '" . $cat_id . "' AND type = 'middle'";$db->query($sql);}if($cat['show_in_nav'] != $dat['show_in_nav']){//是否显示于导航栏发生了变化if($cat['show_in_nav'] == 1){//显示$nid = $db->getOne("SELECT id FROM ". $ecs->table('nav') . " WHERE ctype = 'c' AND cid = '" . $cat_id . "' AND type = 'middle'");if(empty($nid)){//不存在$vieworder = $db->getOne("SELECT max(vieworder) FROM ". $ecs->table('nav') . " WHERE type = 'middle'");$vieworder += 2;$uri = build_uri('category', array('cid'=> $cat_id), $cat['cat_name']);$sql = "INSERT INTO " . $ecs->table('nav') . " (name,ctype,cid,ifshow,vieworder,opennew,url,type) V ALUES('" . $cat['cat_name'] . "', 'c', '$cat_id','1','$vieworder','0', '" . $uri . "','middle')";}else{$sql = "UPDATE " . $ecs->table('nav') . " SET ifshow = 1 WHERE ctype = 'c' AND cid = '" . $cat_id . "' AND type = 'middle'";}$db->query($sql);}else{//去除$db->query("UPDATE " . $ecs->table('nav') . " SET ifshow = 0 WHERE ctype = 'c' AND cid = '" . $cat_id . "' AND type = 'middle'");}}//更新首页推荐insert_cat_recommend($cat['cat_recommend'], $cat_id);/* 更新分类信息成功*/clear_cache_files(); // 清除缓存admin_log($_POST['cat_name'], 'edit', 'category'); // 记录管理员操作/* 提示信息*/$link[] = array('text' => $_LANG['back_list'], 'href' => 'category.php?act=list');sys_msg($_LANG['catedit_succed'], 0, $link);}}然后再增加一个删除分类图片的方法/*------------------------------------------------------ *///-- 删除品牌图片/*------------------------------------------------------ */elseif ($_REQUEST['act'] == 'drop_thumb'){/* 权限判断*/admin_priv('cat_manage');$cat_id = isset($_GET['id']) ? intval($_GET['id']) : 0;/* 取得logo名称*/$sql = "SELECT thumb FROM " .$ecs->table('category'). " WHERE cat_id = '$cat_id'"; $thumb_name = $db->getOne($sql);if (!empty($thumb_name)){@unlink(ROOT_PATH . DA TA_DIR . '/catthumb/' .$thumb_name);$sql = "UPDATE " .$ecs->table('category'). " SET thumb = '' WHERE cat_id = '$cat_id'";$db->query($sql);}$link= array(array('text' => '编辑商品分类', 'href' => 'category.php?act=edit&cat_id=' . $cat_id),array('text' =>'商品分类列表', 'href' => 'category.php?act=list')); sys_msg('删除商品分类小图成功', 0, $link);}至此全部修改完成示例网站:。
(三十)商品管理-添加商品(上传图片)
(三⼗)商品管理-添加商品(上传图⽚)添加商品(上传图⽚)1.修改页⾯上添加连接/store/adminProduct?method=addUI2.在addUI请求转发到添加页⾯3.在表单页⾯上修改action : /store/addProductServlet提交⽅式: method="post"添加enctype属性: enctype="multipart/form-data"给每个字段添加name属性4.addProductServlet通过request.getParameterMap获取的信息全部为空我们想使⽤beanuitls.populate(bean,map),我们需要创建⼀个map集合 ,将前台接受过来信息⼿动的put到map中注意:商品的图⽚:1:保存到服务器的磁盘2.在数据中添加图⽚的位置调⽤productservice完成添加商品操作重定向到所有的商品的上⾯////////////////////////////////////////////////////////////////////////////////////////////////fileUpload使⽤创建⼀个磁盘⽂件项⼯⼚DiskFileItemFactory factory = new DiskFileItemFactory();创建⼀个核⼼⽂件上传对象 ServletFileUpLoadServletFileUpload upload = new ServletFileUpload(factory);上传对象调⽤⽅法解析请求获取⼀个List<FileItem>List<FileItem> list = upload.parseRequest(request);遍历list获取每⼀个⽂件项isFormFiled():判断是否是普通上传组件true:普通上传组件false:⽂件上传组件getFiledName():获取表单⼦标签的name属性值若是普通的上传组件getString("utf-8"):获取⽤户输⼊的值若是⽂件上传组件getName():获取上传⽂件的名称getInputStream():获取上传⽂件流最后删除临时⽂件delete()导⼊fileupload的jar包/store/WebContent/admin/product/list.jsp/store/src/com/louis/web/servlet/AdminProductServlet.java/*** 跳转到添加商品的页⾯* @param request* @param response* @return* @throws Exception*/public String addUI(HttpServletRequest request, HttpServletResponse response) throws Exception {//查询所有的分类返回listCategoryService cs=(CategoryService) BeanFactory.getBean("CategoryService");List<Category> clist = cs.findAll();//将list放⼊requestrequest.setAttribute("clist", clist);return "/admin/product/add.jsp";}/store/WebContent/admin/product/add.jsp/store/src/com/louis/web/servlet/AddProductServlet.javapackage com.louis.web.servlet;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.util.Date;import java.util.HashMap;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import mons.beanutils.BeanUtils;import mons.fileupload.FileItem;import mons.fileupload.disk.DiskFileItemFactory;import mons.fileupload.servlet.ServletFileUpload;import mons.io.IOUtils;import com.louis.domain.Category;import com.louis.domain.Product;import com.louis.service.ProductService;import com.louis.utils.BeanFactory;import com.louis.utils.UUIDUtils;import com.louis.utils.UploadUtils;/*** Servlet implementation class AddProduct*/public class AddProductServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try {//0.创建map 放⼊前台传递的数据HashMap<String, Object> map = new HashMap<>();//创建磁盘⽂件项DiskFileItemFactory factory = new DiskFileItemFactory();//创建核⼼上传对象ServletFileUpload upload = new ServletFileUpload(factory);//解析requestList<FileItem> list = upload.parseRequest(request);//遍历集合for (FileItem fi : list) {//判断是否是普通的上传组件if(fi.isFormField()){//普通上传组件map.put(fi.getFieldName(),fi.getString("utf-8"));}else{//⽂件上传组件//获取⽂件名称String name = fi.getName();//获取⽂件的真实名称 xxxx.xxString realName = UploadUtils.getRealName(name);//获取⽂件的随机名称String uuidName = UploadUtils.getUUIDName(realName);//获取⽂件的存放路径String path = this.getServletContext().getRealPath("/products/1");//获取⽂件流InputStream is = fi.getInputStream();//保存图⽚FileOutputStream os = new FileOutputStream(new File(path, uuidName));IOUtils.copy(is, os);os.close();is.close();//删除临时⽂件fi.delete();//在map中设置⽂件的路径map.put(fi.getFieldName(), "products/1/"+uuidName);}}//1.封装参数Product p = new Product();BeanUtils.populate(p, map);//1.1 商品idp.setPid(UUIDUtils.getId());//1.2 商品时间p.setPdate(new Date());//1.3 封装cateogryCategory c = new Category();c.setCid((String)map.get("cid"));p.setCategory(c);//2.调⽤service完成添加ProductService ps=(ProductService) BeanFactory.getBean("ProductService");ps.add(p);//3.页⾯重定向response.sendRedirect(request.getContextPath()+"/adminProduct?method=findAll");} catch (Exception e) {e.printStackTrace();request.setAttribute("msg", "商品添加失败~");request.getRequestDispatcher("/jsp/msg.jsp").forward(request, response);return;}}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stubdoGet(request, response);}}/store/WebContent/WEB-INF/web.xml<servlet><description></description><display-name>AddProductServlet</display-name><servlet-name>AddProductServlet</servlet-name><servlet-class>com.louis.web.servlet.AddProductServlet</servlet-class></servlet><servlet-mapping><servlet-name>AddProductServlet</servlet-name><url-pattern>/addProduct</url-pattern></servlet-mapping>/store/src/com/louis/service/impl/ProductServiceImpl.java/*** 添加商品*/@Overridepublic void add(Product p) throws Exception {ProductDao pdao=(ProductDao) BeanFactory.getBean("ProductDao");pdao.add(p);}/store/src/com/louis/dao/impl/ProductDaoImpl.java/*** 添加商品*/@Overridepublic void add(Product p) throws Exception {QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource());/*** `pid` VARCHAR(32) NOT NULL,`pname` VARCHAR(50) DEFAULT NULL,`market_price` DOUBLE DEFAULT NULL,`shop_price` DOUBLE DEFAULT NULL,`pimage` VARCHAR(200) DEFAULT NULL,`pdate` DATE DEFAULT NULL,`is_hot` INT(11) DEFAULT NULL,`pdesc` VARCHAR(255) DEFAULT NULL,`pflag` INT(11) DEFAULT NULL,`cid` VARCHAR(32) DEFAULT NULL,*/String sql="insert into product values(?,?,?,?,?,?,?,?,?,?);";qr.update(sql, p.getPid(),p.getPname(),p.getMarket_price(),p.getShop_price(),p.getPimage(),p.getPdate(),p.getIs_hot(),p.getPdesc(),p.getPflag(),p.getCategory().getCid()); }问题:beanutilsuploadfilemap。
ecshop操作流程
ecshop 网站软件操作流程1、用户的购买方法⑴选购商品用户通过登陆商城选购商品,可以在首页的商品分类、导航栏或者是推荐版块中选购商品。
将挑选好的商品点击加入购物车将该商品加入到购物车中。
在购物车中可以查看商品的信息,选择继续购物或直接去支付。
如果更改商品的购买数量,则需要点击“更新购物车”来更新购买信息。
点击去结算会出现让你输入用户名和密码的界面如果已经注册过该商城的会员,只需要在用户登录界面输入用户名和密码直接登录。
如果不是该商城的会员,需要填写用户名、电子邮件地址、密码、确认密码字段就可以注册会员了。
还可以选择“不打算登录,直接购买”选项,进行商品的购买,但是这样非会员无法享受购物积分、无法查询订单等,所以我们建议您花一分钟时间注册成为会员,这样就能享受整个网站强大的会员功能和多种优惠措施了。
注册会员成功后会出现填写收货人信息的页面,将页面中的信息填写完整,点击“配送至这个地址”会出现以下选择区域:①商品列表:核对商品列表,如有错误可以点击“修改”来改购物车中的商品信息②收货人信息:核对收货人信息,如有错误可以点击“修改”来改收货人地址③配送方式:选择适合自己的配送方式,可以到达收货人所在地区范围的④支付方式:会员自行选择商家提供的支付方式⑤商品包装:根据自己需要来选择⑥其他信息:若有红包,输入红包序列号,点击验证红包就可获取红包信息。
如有什么要求可填写订单付言核实完整个订单信息无误后,点击提交订单出现这个界面可以直接点“立即使用快钱支付”进行线上付款。
订单提交成功,可以在首页的“用户中心”查看点击我的订单查看订单信息会员也可在首页的订单查询中输入订单号查询订单状态2、产生订单处理方法:点击订单列表就可以查看订单详情可以看到该订单的订单号、下单时间、收货人、总金额、应付金额以及订单状态将鼠标放在订单号处,即可看到该订单的商品信息点击查看可以看到该订单的详细信息,可以对该订单的基本信息、其他信息、收货人信息、商品信息、费用信息作出修改核实信息无误后可以选择“确认”来确认该订单也可对该订单做出付款、取消、无效、售后的选择。
ecshop增加多个产品详细描述编辑器的方法
ecshop增加多个产品详细描述编辑器的方法在做商产品详情的时候,经常会有选项卡类似的几个产品说明,如:商品详情,商品规格,参数列表,售后服务等。
Ecshop后台里面默认只有一个编辑框(器),那么我们还得自己添加几个,以下是ecshop 如何增加产品描述编辑器个数的步骤:1)在数据库的表esc_goods里增加二个text的字段用来存储新增的二个编辑框的内容,如:goods_desc2,goods_desc3(可以用phpmyadmin)2)修改生成编辑器的函数找到/admin/includes/lib_main.php 文件将function create_html_editor($input_name, $input_value = '')修改为function create_html_editor($input_name, $input_value = '',$fckid=0)继续向下找到$smarty-assign('FCKeditor', $FCKeditor);将它修改为if ($fckid){$smarty-assign('FCKeditor'.$fckid, $FCKeditor);}else{$smarty-assign('FCKeditor', $FCKeditor);}3)接下来要修改后台商品处理页/admin/goods.php 文件找到create_html_editor('goods_desc', $goods['goods_desc']);在它下面另添加2行create_html_editor('goods_desc2', $goods['goods_desc2'],2);create_html_editor('goods_desc3', $goods['goods_desc3'],3);4)最后修改一下对应的后台显示文件/admin/templates/goods_info.htm找到下面这些代码table width="90%" id="detail-table" style="display:none"trtd{$FCKeditor}/td/tr/table在下面复制粘贴2个并把(包括原来一个)这三个表格代码修改为table width="90%" id="detail-table" style="display:none"trtd width="80" align="right"商品详情:/tdtd{$FCKeditor}/td/tr/tabletable width="90%" id="desc2-table" style="display:none"trtd width="80" align="right"售后服务:/tdtd{$FCKeditor2}/td/tr/tabletable width="90%" id="desc3-table" style="display:none"trtd width="80" align="right"买家必读:/tdtd{$FCKeditor3}/td/tr/table修改顶部的导航:找到span class="tab-back" id="detail-tab"{$lang.tab_detail}/span后面加入span class="tab-back" id="desc2-tab"desc2/spanspan class="tab-back" id="desc3-tab"desc3/span5)最后修改内容存储进数据库的文件,打开/admin/goods.php1 找到如下代码:$sql = "INSERT INTO " . $ecs-table('goods') . " (goods_name,goods_model, goods_name_style, goods_sn, " ."cat_id, brand_id, shop_price, market_price, is_promote, promote_price, " ."promote_start_date, promote_end_date, goods_img, goods_thumb, original_img, keywords, goods_brief, " ."seller_note, goods_weight, goods_number, warn_number, integral, give_integral, is_best, is_new, is_hot, " ."is_home, is_on_sale, is_alone_sale, is_shipping, goods_desc在后面加上,goods_desc2 ,goods_desc3 即如下代码$sql = "INSERT INTO " . $ecs-table('goods') . " (goods_name,goods_model, goods_name_style, goods_sn, " ."cat_id, brand_id, shop_price, market_price, is_promote, promote_price, " ."promote_start_date, promote_end_date, goods_img, goods_thumb, original_img, keywords, goods_brief, " ."seller_note, goods_weight, goods_number, warn_number, integral, give_integral, is_best, is_new, is_hot, " ."is_home, is_on_sale, is_alone_sale, is_shipping, goods_desc,goods_desc2 ,goods_desc3在下面几行,同理找到"VALUES ('$_POST[goods_name]','$_POST[goods_model]', '$goods_name_style', '$goods_sn', '$catgory_id', " ."'$brand_id', '$shop_price', '$market_price', '$is_promote','$promote_price', "."'$promote_start_date', '$promote_end_date', '$goods_img', '$goods_thumb', '$original_img', ". "'$_POST[keywords]', '$_POST[goods_brief]', '$_POST[seller_note]', '$goods_weight', '$goods_number',"." '$warn_number', '$_POST[integral]', '$give_integral', '$is_best', '$is_new', '$is_hot', '$is_home', '$is_on_sale', '$is_alone_sale', $is_shipping, "." '$_POST[goods_desc]', '" . gmtime() . "', '". gmtime() ."', '$goods_type', '$rank_integral', '$suppliers_id')"改为:"VALUES ('$_POST[goods_name]','$_POST[goods_model]', '$goods_name_style', '$goods_sn', '$catgory_id', " ."'$brand_id', '$shop_price', '$market_price', '$is_promote','$promote_price', "."'$promote_start_date', '$promote_end_date', '$goods_img', '$goods_thumb', '$original_img', ". "'$_POST[keywords]', '$_POST[goods_brief]', '$_POST[seller_note]', '$goods_weight', '$goods_number',"." '$warn_number', '$_POST[integral]', '$give_integral', '$is_best', '$is_new', '$is_hot', '$is_home', '$is_on_sale', '$is_alone_sale', $is_shipping, "." '$_POST[goods_desc]', '$_POST[goods_desc2]', '$_POST[goods_desc3]', '" . gmtime() . "', '". gmtime() ."', '$goods_type', '$rank_integral', '$suppliers_id')"同理,又下面几行else{$sql =$sql = "INSERT INTO. $ecs-table('goods')这一段中,作上面相同修改如下:$sql = "INSERT INTO " . $ecs-table('goods') . " (goods_name,goods_model, goods_name_style, goods_sn, " ."cat_id, brand_id, shop_price, market_price, is_promote, promote_price, " ."promote_start_date, promote_end_date, goods_img, goods_thumb, original_img, keywords, goods_brief, " ."seller_note, goods_weight, goods_number, warn_number, integral, give_integral, is_best, is_new, is_hot, is_home, is_real, " ."is_on_sale, is_alone_sale, is_shipping, goods_desc, goods_desc2, goods_desc3, add_time, last_update, goods_type, extension_code, rank_integral)" ."VALUES ('$_POST[goods_name]','$_POST[goods_model]', '$goods_name_style', '$goods_sn', '$catgory_id', " ."'$brand_id', '$shop_price', '$market_price', '$is_promote','$promote_price', "."'$promote_start_date', '$promote_end_date', '$goods_img', '$goods_thumb', '$original_img', ". "'$_POST[keywords]', '$_POST[goods_brief]', '$_POST[seller_note]', '$goods_weight', '$goods_number',"." '$warn_number', '$_POST[integral]', '$give_integral', '$is_best', '$is_new', '$is_hot', '$is_home', 0, '$is_on_sale', '$is_alone_sale', $is_shipping, "." '$_POST[goods_desc]', '$_POST[goods_desc2]', '$_POST[goods_desc3]', '" . gmtime() . "', '". gmtime() ."', '$goods_type', '$code', '$rank_integral')";2 再往下几十行,找到"goods_desc = '$_POST[goods_desc]', " .在其下方再添加二行,改成如下"goods_desc = '$_POST[goods_desc]', " ."goods_desc2 = '$_POST[goods_desc2]', " ."goods_desc3 = '$_POST[goods_desc3]', " .。
ECSHOP增加产品中新增一个上传附件功能
ECSHOP增加产品中新增一个上传附件功能第一步:在 admin\templates\goods_info.htm中<span class="tab-back" id="article-tab">{$lang.tab_article}</span>后面加上<span class="tab-back" id="file-tab">上传附件</span>现在确定按钮的前面加入<table width="90%" id="file-table" style="display:none" align="center"><tr><td >上传附件:</td><td><input type="file" name="file"><span class="narrow-label">{$lang.file_url}<input name="file_url" type="text" value="{$goods.file_url|escape}" size="30" maxlength="255" /></span></td></tr></table>第二步:在数据库的ECS_GOODS表中加入一个字段,这个自己去命名第三步:在admin/goods.php 中// 是否上传商品缩略图if (isset($_FILES['goods_thumb']) && $_FILES['goods_thumb']['tmp_name'] != '' && ---------在这个代码的前面加入/* 取得文件地址 */$file_url = '';if ((isset($_FILES['file']['error']) && $_FILES['file']['error'] == 0) ||(!isset($_FILES['file']['error']) && isset($_FILES['file']['tmp_name']) &&$_FILES['file']['tmp_name'] != 'none')){// 检查文件格式if (!check_file_type($_FILES['file']['tmp_name'], $_FILES['file']['name'],$allow_file_types)) {sys_msg($_LANG['invalid_file']);}// 复制文件$res = upload_article_file($_FILES['file']);if ($res != false) {$file_url = $res;}}if ($file_url == '') {$file_url = $_POST['file_url'];}/* 计算文章打开方式 */if ($file_url == '') {$open_type = 0;} else {$open_type = $_POST['FCKeditor1'] == '' ? 1 : 2;}第四步:搜索代码 /* 入库 */ 在SQL语句中加入你在第二步增加的字段。
在ECSHOP后台左侧导航中增加新菜单的完美解决方案
在ECSHOP后台左侧导航中增加新菜单的完美解决方案站长朋友们都知道Ecshop这款开源的程序后台开发的很完善,不过很多站长朋友选这款开源的程序做B2C商城还有一点就是在这个开源的程序上很好再次的二次开发,也就是很据自己商城的需要对其进行二次的修改,毕竟每个商城销售的商品不同,因此需要的功能也是不同的。
当我们进入Ecshop网站后台的时候可以看到左侧就是商品管理,促销管理,订单管理,系统设置等很多开发好的模块或者菜单,今天小编突发奇想,能不能根据自己网城的需要自己再开发一个新的菜单呢?小编通过查阅一些论坛,文档。
当然少不了的多次请教度终于找到了完美的解决方案,小编下面为站长伙伴们分享下吧例如我们要在后台左侧的菜单项添加一个“商品采集” 这个新的菜单(只是举个例子也可以根据自己需要添加别的菜单)。
总体而言我们是要修改三个文件的,小编先为各位言明下以下三个文件的详细路径和名称:(1)/admin/includes/inc_menu.php,(2)/admin/includes/inc_priv.php,(3)/languages/zh_cn/admin/common.php第一步:我们首先按照以上路径把第一个inc_menu.php文件,找到之后用一款编辑软件打开.在$mo dules[’02_cat_and_goods’][‘goods_auto’] = ‘goods_auto.php?act=list';下一行添加代码:$modules[’02_cat_and_goods’][‘goods_caiji’] = ‘goods_caiji.php';第二步:和第一步一样按照路径找到inc_priv.php文件打开找到$_LANG[‘navigator’] = ‘自定义导航栏';下一行添加代码:$_LANG[‘goods_caiji’]=’商品采集';第三步:打开 /admin/includes/inc_priv.php文件直接找到38行代码:$purview[‘goods_auto’]= ‘goods_auto';在下面添加一行代:$purview[‘goods_caiji’]= ‘goods_caiji';按照以上三个步骤分别添加后,我们用对应的编码格式保存好,然后传到对应的文件目录下覆盖以前的文件,登陆到网站的后台在右上角有个更新缓存。
ecshop后台增加上传图片项
ecshop 后台增加上传图片项2021-02-07 13:25:06| 分类:| 标签:|举报|字号定阅最近在研究ecshop,想后台添加/修改商品的时候,增加一个自己上传图片的功能,看了一下,修改如下(还想在images/年月/下建立一个新的文件夹goods_new_img准备:首先要先建立好goods_new_img,并且要有相关的权限)/*------------------------------------------------------ *///-- 添加新商品编辑商品/*------------------------------------------------------ */elseif ($_REQUEST['act'] == 'add' || $_REQUEST['act'] == 'edit' ||$_REQUEST['act'] == 'copy'){//这里面要改的东东,也就是复制商品里面的相应代码,自己看着改就是了/* 如果是复制商品,处理*/if ($_REQUEST['act'] == 'copy')}最要紧的是修改下面的内容了,黑体加粗的确实是修改或添加的内容了.(因为我的ecshop已经修悔改了,因此行码可能不准,大伙儿认真分辨一下就清楚了). /*------------------------------------------------------ *///-- 插入商品更新商品/*------------------------------------------------------ */elseif ($_REQUEST['act'] == 'insert' || $_REQUEST['act'] == 'update') {$code = empty($_REQUEST['extension_code']) ? '' :trim($_REQUEST['extension_code']);/* 是否处理缩略图*/$proc_thumb = (isset($GLOBALS['shop_id']) &&$GLOBALS['shop_id'] > 0)? false : true;if ($code == 'virtual_card'){admin_priv('virualcard'); // 检查权限}else{admin_priv('goods_manage'); // 检查权限}/* 检查货号是否重复*/if ($_POST['goods_sn']){$sql = "SELECT COUNT(*) FROM " . $ecs->table('goods') ." WHERE goods_sn = '$_POST[goods_sn]' AND is_delete = 0 AND goods_id <> '$_POST[goods_id]'";if ($db->getOne($sql) > 0){sys_msg($_LANG['goods_sn_exists'], 1, array(), false);}}/* (self)检查图片:若是有错误,检查尺寸是不是超过最大值;不然,检查文件类型*/if (isset($_FILES['goods_new_img']['error'])) // php 4.2 版本才支持error{// 最大上传文件大小$php_maxsize = ini_get('upload_max_filesize');$htm_maxsize = '2M';// 商品图片if ($_FILES['goods_new_img']['error'] == 0){if(!$image->check_img_type($_FILES['goods_new_img']['type'])){sys_msg($_LANG['invalid_goods_img'], 1, array(), false);}}elseif ($_FILES['goods_new_img']['error'] == 1){sys_msg(sprintf($_LANG['goods_img_too_big'],$php_maxsize), 1, array(), false);}elseif ($_FILES['goods_new_img']['error'] == 2){sys_msg(sprintf($_LANG['goods_img_too_big'],$htm_maxsize), 1, array(), false);}}/* 检查图片:如果有错误,检查尺寸是否超过最大值;否则,检查文件类型*/if (isset($_FILES['goods_img']['error'])) // php 4.2 版本才支持error {// 最大上传文件大小$php_maxsize = ini_get('upload_max_filesize');$htm_maxsize = '2M';// 商品图片if ($_FILES['goods_img']['error'] == 0){if (!$image->check_img_type($_FILES['goods_img']['type'])){sys_msg($_LANG['invalid_goods_img'], 1, array(), false);}}elseif ($_FILES['goods_img']['error'] == 1){sys_msg(sprintf($_LANG['goods_img_too_big'],$php_maxsize), 1, array(), false);}elseif ($_FILES['goods_img']['error'] == 2){sys_msg(sprintf($_LANG['goods_img_too_big'],$htm_maxsize), 1, array(), false);}// 商品缩略图if (isset($_FILES['goods_thumb'])){if ($_FILES['goods_thumb']['error'] == 0){if(!$image->check_img_type($_FILES['goods_thumb']['type'])){sys_msg($_LANG['invalid_goods_thumb'], 1, array(), false);}}elseif ($_FILES['goods_thumb']['error'] == 1){sys_msg(sprintf($_LANG['goods_thumb_too_big'], $php_maxsize), 1, array(), false);}elseif ($_FILES['goods_thumb']['error'] == 2){sys_msg(sprintf($_LANG['goods_thumb_too_big'], $htm_maxsize), 1, array(), false);}}// 相册图片foreach ($_FILES['img_url']['error'] AS $key => $value){if ($value == 0){if(!$image->check_img_type($_FILES['img_url']['type'][$key])){sys_msg(sprintf($_LANG['invalid_img_url'], $key + 1), 1, array(), false);}}elseif ($value == 1){sys_msg(sprintf($_LANG['img_url_too_big'], $key + 1, $php_maxsize), 1, array(), false);}elseif ($_FILES['img_url']['error'] == 2){sys_msg(sprintf($_LANG['img_url_too_big'], $key + 1, $htm_maxsize), 1, array(), false);}}}/* 4.1版本*/else{// 商品图片if ($_FILES['goods_img']['tmp_name'] != 'none'){if (!$image->check_img_type($_FILES['goods_img']['type'])){sys_msg($_LANG['invalid_goods_img'], 1, array(), false);}}// 商品缩略图if (isset($_FILES['goods_thumb'])){if ($_FILES['goods_thumb']['tmp_name'] != 'none'){if(!$image->check_img_type($_FILES['goods_thumb']['type'])){sys_msg($_LANG['invalid_goods_thumb'], 1, array(), false);}}}// 相册图片foreach ($_FILES['img_url']['tmp_name'] AS $key => $value){if ($value != 'none'){if(!$image->check_img_type($_FILES['img_url']['type'][$key])){sys_msg(sprintf($_LANG['invalid_img_url'], $key + 1), 1, array(), false);}}}}/* 插入还是更新的标识*/$is_insert = $_REQUEST['act'] == 'insert';/* 处理商品图片*/$goods_img = ''; // 初始化商品图片$goods_new_img = ''; // 初始化商品图片2$goods_thumb = ''; // 初始化商品缩略图$original_img = ''; // 初始化原始图片$old_original_img = ''; // 初始化原始图片旧图// 是不是上传商品图片newif (isset($_FILES['goods_new_img']) &&$_FILES['goods_new_img']['tmp_name'] != '' &&isset($_FILES['goods_new_img']['tmp_name']) &&$_FILES['goods_new_img']['tmp_name'] != 'none') {// 上传了,直接使用,原始大小$goods_new_img =$image->upload_image($_FILES['goods_new_img']);if ($goods_new_img === false){sys_msg($image->error_msg(), 1, array(), false);}}// 如果上传了商品图片,相应处理if (($_FILES['goods_img']['tmp_name'] != '' &&$_FILES['goods_img']['tmp_name'] != 'none') or(($_POST['goods_img_url'] != $_LANG['lab_picture_url'] &&$_POST['goods_img_url'] != 'http://') && $is_url_goods_img = 1)) {if ($_REQUEST['goods_id'] > 0){/* 删除原来的图片文件*/$sql = "SELECT goods_thumb, goods_img, original_img " ." FROM " . $ecs->table('goods') ." WHERE goods_id = '$_REQUEST[goods_id]'";$row = $db->getRow($sql);if ($row['goods_thumb'] != '' && is_file('../' .$row['goods_thumb'])){@unlink('../' . $row['goods_thumb']);}if ($row['goods_img'] != '' && is_file('../' .$row['goods_img'])){@unlink('../' . $row['goods_img']);}if ($row['original_img'] != '' && is_file('../' .$row['original_img'])){/* 先不处理,以防止程序中途出错停止*///$old_original_img = $row['original_img']; //记录旧图路径}/* 清除原来商品图片*/if ($proc_thumb === false){get_image_path($_REQUEST[goods_id],$row['goods_img'], false, 'goods', true);get_image_path($_REQUEST[goods_id],$row['goods_thumb'], true, 'goods', true);}}if (empty($is_url_goods_img)){$original_img =$image->upload_image($_FILES['goods_img']); // 原始图片}elseif (copy(trim($_POST['goods_img_url']), ROOT_PATH . 'temp/' . basename($_POST['goods_img_url']))){$original_img = 'temp/' .basename($_POST['goods_img_url']);}if ($original_img === false){sys_msg($image->error_msg(), 1, array(), false);}$goods_img = $original_img; // 商品图片/* 复制一份相册图片*//* 添加判断是否自动生成相册图片*/if ($_CFG['auto_generate_gallery']){$img = $original_img; // 相册图片$pos = strpos(basename($img), '.');$newname = dirname($img) . '/' .$image->random_filename() . substr(basename($img), $pos);if (!copy('../' . $img, '../' . $newname)){sys_msg('fail to copy file: ' . realpath('../' . $img), 1, array(), false);}$img = $newname;$gallery_img = $img;$gallery_thumb = $img;}// 如果系统支持GD,缩放商品图片,且给商品图片和相册图片加水印if ($proc_thumb && $image->gd_version() > 0 &&$image->check_img_function($_FILES['goods_img']['type']) ||$is_url_goods_img){if (empty($is_url_goods_img)){// 如果设置大小不为0,缩放图片if ($_CFG['image_width'] != 0 || $_CFG['image_height'] !=0){$goods_img = $image->make_thumb('../'. $goods_img , $GLOBALS['_CFG']['image_width'],$GLOBALS['_CFG']['image_height']);if ($goods_img === false){sys_msg($image->error_msg(), 1, array(), false);}}/* 添加判断是否自动生成相册图片*/if ($_CFG['auto_generate_gallery']){$newname = dirname($img) . '/' .$image->random_filename() . substr(basename($img), $pos);if (!copy('../' . $img, '../' . $newname)){sys_msg('fail to copy file: ' . realpath('../' . $img), 1, array(), false);}$gallery_img = $newname;}// 加水印if (intval($_CFG['watermark_place']) > 0&& !empty($GLOBALS['_CFG']['watermark'])){if($image->add_watermark('../'.$goods_img,'',$GLOBALS['_CFG']['waterm ark'], $GLOBALS['_CFG']['watermark_place'],$GLOBALS['_CFG']['watermark_alpha']) === false){sys_msg($image->error_msg(), 1, array(), false);}/* 添加判断是否自动生成相册图片*/if ($_CFG['auto_generate_gallery']){if ($image->add_watermark('../'.$gallery_img,'',$GLOBALS['_CFG']['watermark'],$GLOBALS['_CFG']['watermark_place'],$GLOBALS['_CFG']['watermark_alpha']) === false){sys_msg($image->error_msg(), 1, array(),false);}}}}// 相册缩略图/* 添加判断是否自动生成相册图片*/if ($_CFG['auto_generate_gallery']){if ($_CFG['thumb_width'] != 0 ||$_CFG['thumb_height'] != 0){$gallery_thumb = $image->make_thumb('../' . $img, $GLOBALS['_CFG']['thumb_width'], $GLOBALS['_CFG']['thumb_height']);if ($gallery_thumb === false){sys_msg($image->error_msg(), 1, array(), false);}}}}/* 取消该原图复制流程*/// else// {// /* 复制一份原图*/// $pos = strpos(basename($img), '.');// $gallery_img = dirname($img) . '/' .$image->random_filename() . // substr(basename($img), $pos);// if (!copy('../' . $img, '../' . $gallery_img))// {// sys_msg('fail to copy file: ' . realpath('../' . $img), 1, array(), false);// }// $gallery_thumb = '';// }}// 是否上传商品缩略图if (isset($_FILES['goods_thumb']) &&$_FILES['goods_thumb']['tmp_name'] != '' &&isset($_FILES['goods_thumb']['tmp_name'])&&$_FILES['goods_thumb']['tmp_name'] != 'none'){// 上传了,直接使用,原始大小$goods_thumb =$image->upload_image($_FILES['goods_thumb']);if ($goods_thumb === false){sys_msg($image->error_msg(), 1, array(), false);}}else{// 未上传,如果自动选择生成,且上传了商品图片,生成所略图if ($proc_thumb && isset($_POST['auto_thumb'])&& !empty($original_img)){// 如果设置缩略图大小不为0,生成缩略图if ($_CFG['thumb_width'] != 0 || $_CFG['thumb_height'] != 0){$goods_thumb = $image->make_thumb('../' . $original_img, $GLOBALS['_CFG']['thumb_width'],$GLOBALS['_CFG']['thumb_height']);if ($goods_thumb === false){sys_msg($image->error_msg(), 1, array(), false);}}else{$goods_thumb = $original_img;}}}// print_r(IMAGE_DIR);exit;/* 删除下载的外链原图*/if (!empty($is_url_goods_img)){unlink(ROOT_PATH . $original_img);empty($newname) || unlink(ROOT_PATH . $newname);$url_goods_img = $goods_img = $original_img = htmlspecialchars(trim($_POST['goods_img_url']));}/* 如果没有输入商品货号则自动生成一个商品货号*/if (empty($_POST['goods_sn'])){$max_id = $is_insert ? $db->getOne("SELECTMAX(goods_id) + 1 FROM ".$ecs->table('goods')) :$_REQUEST['goods_id'];$goods_sn = generate_goods_sn($max_id);}else{$goods_sn = $_POST['goods_sn'];}/* 处理商品数据*/$shop_price = !empty($_POST['shop_price']) ? $_POST['shop_price'] : 0;$goods_freight = !empty($_POST['goods_freight']) ?$_POST['goods_freight'] : 0;$sold_num = !empty($_POST['sold_num']) ? $_POST['sold_num'] : 0;$market_price = !empty($_POST['market_price']) ?$_POST['market_price'] : 0;$promote_price = !empty($_POST['promote_price']) ?floatval($_POST['promote_price'] ) : 0;$is_promote = empty($promote_price) ? 0 : 1;$promote_start_date = ($is_promote&& !empty($_POST['promote_start_date'])) ?local_strtotime($_POST['promote_start_date']) : 0;$promote_end_date = ($is_promote&& !empty($_POST['promote_end_date'])) ?local_strtotime($_POST['promote_end_date']) : 0;$goods_weight = !empty($_POST['goods_weight']) ?$_POST['goods_weight'] * $_POST['weight_unit'] : 0;$is_best = isset($_POST['is_best']) ? 1 : 0;$is_new = isset($_POST['is_new']) ? 1 : 0;$is_hot = isset($_POST['is_hot']) ? 1 : 0;$is_on_sale = isset($_POST['is_on_sale']) ? 1 : 0;$is_alone_sale = isset($_POST['is_alone_sale']) ? 1 : 0;$is_shipping = isset($_POST['is_shipping']) ? 1 : 0;$goods_number = isset($_POST['goods_number']) ?$_POST['goods_number'] : 0;$warn_number = isset($_POST['warn_number']) ?$_POST['warn_number'] : 0;$goods_type = isset($_POST['goods_type']) ? $_POST['goods_type'] : 0;$give_integral = isset($_POST['give_integral']) ?intval($_POST['give_integral']) : '-1';$rank_integral = isset($_POST['rank_integral']) ?intval($_POST['rank_integral']) : '-1';$suppliers_id = isset($_POST['suppliers_id']) ?intval($_POST['suppliers_id']) : '0';$goods_name_style = $_POST['goods_name_color'] . '+' .$_POST['goods_name_style'];$catgory_id = empty($_POST['cat_id']) ? '' : intval($_POST['cat_id']);$brand_id = empty($_POST['brand_id']) ? '' :intval($_POST['brand_id']);$goods_thumb = (empty($goods_thumb)&& !empty($_POST['goods_thumb_url']) &&goods_parse_url($_POST['goods_thumb_url'])) ?htmlspecialchars(trim($_POST['goods_thumb_url'])) : $goods_thumb;$goods_thumb = (empty($goods_thumb) &&isset($_POST['auto_thumb']))? $goods_img : $goods_thumb;/* 入库*/if ($is_insert){if ($code == ''){$sql = "INSERT INTO " . $ecs->table('goods') . "(goods_name,goods_seo_name, goods_name_style, goods_sn, " ."cat_id, brand_id,shop_price,goods_freight,sold_num,market_price, is_promote, promote_price, " ."promote_start_date, promote_end_date,goods_img, goods_thumb, original_img, goods_new_img,keywords, goods_brief, " ."seller_note, goods_weight, goods_number,warn_number, integral, give_integral, is_best, is_new, is_hot, " ."is_on_sale, is_alone_sale, is_shipping, goods_desc, add_time, last_update, goods_type, rank_integral, suppliers_id)" ."VALUES('$_POST[goods_name]','$_POST[goods_seo_name]','$goods_name_style', '$goods_sn', '$catgory_id', " ."'$brand_id', '$shop_price','$goods_freight','$sold_num', '$market_price','$is_promote','$promote_price', "."'$promote_start_date', '$promote_end_date', '$goods_img', '$goods_thumb', '$original_img', '$goods_new_img',"."'$_POST[keywords]', '$_POST[goods_brief]','$_POST[seller_note]', '$goods_weight', '$goods_number',"." '$warn_number', '$_POST[integral]','$give_integral', '$is_best', '$is_new', '$is_hot', '$is_on_sale','$is_alone_sale', $is_shipping, "." '$_POST[goods_desc]', '" . gmtime() . "', '". gmtime() ."', '$goods_type', '$rank_integral', '$suppliers_id')";}else{$sql = "INSERT INTO " . $ecs->table('goods') . " (goods_name,goods_seo_name, goods_name_style, goods_sn, " ."cat_id, brand_id,shop_price,goods_freight,sold_num market_price, is_promote, promote_price, " ."promote_start_date, promote_end_date, goods_img, goods_thumb, original_img, goods_new_img,keywords, goods_brief, " ."seller_note, goods_weight, goods_number, warn_number, integral, give_integral, is_best, is_new, is_hot, is_real, " ."is_on_sale, is_alone_sale, is_shipping, goods_desc, add_time, last_update, goods_type, extension_code, rank_integral)" ."VALUES('$_POST[goods_name]','$_POST[goods_seo_name]','$goods_name_style', '$goods_sn', '$catgory_id', " ."'$brand_id', '$shop_price','$goods_freight','$sold_num', '$market_price','$is_promote','$promote_price', "."'$promote_start_date', '$promote_end_date','$goods_img', '$goods_thumb', '$original_img', '$goods_new_img',"."'$_POST[keywords]', '$_POST[goods_brief]','$_POST[seller_note]', '$goods_weight', '$goods_number',"." '$warn_number', '$_POST[integral]','$give_integral', '$is_best', '$is_new', '$is_hot', 0, '$is_on_sale','$is_alone_sale', $is_shipping, "." '$_POST[goods_desc]', '" . gmtime() . "', '". gmtime() ."', '$goods_type', '$code', '$rank_integral')";}}else{/* 如果有上传图片,删除原来的商品图*/$sql = "SELECT goods_thumb, goods_img,original_img,goods_new_img " ." FROM " . $ecs->table('goods') ." WHERE goods_id = '$_REQUEST[goods_id]'";$row = $db->getRow($sql);/*(self)*/if ($proc_thumb && $goods_img && $row['goods_new_img'] && !goods_parse_url($row['goods_new_img'])){@unlink(ROOT_PATH . $row['goods_new_img']);}if ($proc_thumb && $goods_new_img && $row['goods_img']&& !goods_parse_url($row['goods_img'])){@unlink(ROOT_PATH . $row['goods_img']);@unlink(ROOT_PATH . $row['original_img']);}if ($proc_thumb && $goods_thumb && $row['goods_thumb'] && !goods_parse_url($row['goods_thumb']))@unlink(ROOT_PATH . $row['goods_thumb']);}$sql = "UPDATE " . $ecs->table('goods') . " SET " ."goods_name = '$_POST[goods_name]', " ."goods_seo_name = '$_POST[goods_seo_name]', " ."goods_name_style = '$goods_name_style', " ."goods_sn = '$goods_sn', " ."cat_id = '$catgory_id', " ."brand_id = '$brand_id', " ."shop_price = '$shop_price', " ."goods_freight = '$goods_freight', " ."sold_num = '$sold_num', " ."market_price = '$market_price', " ."is_promote = '$is_promote', " ."promote_price = '$promote_price', " ."promote_start_date = '$promote_start_date', " ."suppliers_id = '$suppliers_id', " ."promote_end_date = '$promote_end_date', ";/* 如果有上传图片,需要更新数据库*///图片(self)if ($goods_new_img){$sql .= "goods_new_img = '$goods_new_img', ";}if ($goods_img){$sql .= "goods_img = '$goods_img', original_img = '$original_img', ";}if ($goods_thumb){$sql .= "goods_thumb = '$goods_thumb', ";}if ($code != ''){$sql .= "is_real=0, extension_code='$code', ";}$sql .= "keywords = '$_POST[keywords]', " ."goods_brief = '$_POST[goods_brief]', " ."seller_note = '$_POST[seller_note]', " ."goods_weight = '$goods_weight'," ."goods_number = '$goods_number', " ."warn_number = '$warn_number', " ."integral = '$_POST[integral]', " ."give_integral = '$give_integral', " ."rank_integral = '$rank_integral', " ."is_best = '$is_best', " ."is_new = '$is_new', " ."is_hot = '$is_hot', " ."is_on_sale = '$is_on_sale', " ."is_alone_sale = '$is_alone_sale', " ."is_shipping = '$is_shipping', " ."goods_desc = '$_POST[goods_desc]', " ."last_update = '". gmtime() ."', "."goods_type = '$goods_type' " ."WHERE goods_id = '$_REQUEST[goods_id]' LIMIT 1";}// print_r($sql);exit;$db->query($sql);/* 商品编号*/$goods_id = $is_insert ? $db->insert_id() : $_REQUEST['goods_id'];/* 记录日志*/if ($is_insert){admin_log($_POST['goods_name'], 'add', 'goods');}else{admin_log($_POST['goods_name'], 'edit', 'goods');}/* 处理属性*/if ((isset($_POST['attr_id_list']) && isset($_POST['attr_value_list'])) || (empty($_POST['attr_id_list']) && empty($_POST['attr_value_list']))) {// 取得原有的属性值$goods_attr_list = array();$keywords_arr = explode(" ", $_POST['keywords']);$keywords_arr = array_flip($keywords_arr);if (isset($keywords_arr[''])){unset($keywords_arr['']);}$sql = "SELECT attr_id, attr_index FROM " .$ecs->table('attribute') . " WHERE cat_id = '$goods_type'";$attr_res = $db->query($sql);$attr_list = array();while ($row = $db->fetchRow($attr_res)){$attr_list[$row['attr_id']] = $row['attr_index'];}$sql = "SELECT g.*, a.attr_typeFROM " . $ecs->table('goods_attr') . " AS gLEFT JOIN " . $ecs->table('attribute') . " AS aON a.attr_id = g.attr_idWHERE g.goods_id = '$goods_id'";$res = $db->query($sql);while ($row = $db->fetchRow($res)){$goods_attr_list[$row['attr_id']][$row['attr_value']] = array('sign' => 'delete', 'goods_attr_id' => $row['goods_attr_id']);}// 循环现有的,根据原有的做相应处理if(isset($_POST['attr_id_list'])){foreach ($_POST['attr_id_list'] AS $key => $attr_id){$attr_value = $_POST['attr_value_list'][$key];$attr_price = $_POST['attr_price_list'][$key];if (!empty($attr_value)){if (isset($goods_attr_list[$attr_id][$attr_value])){// 如果原来有,标记为更新$goods_attr_list[$attr_id][$attr_value]['sign'] = 'update';$goods_attr_list[$attr_id][$attr_value]['attr_price'] = $attr_price;}else{// 如果原来没有,标记为新增$goods_attr_list[$attr_id][$attr_value]['sign'] = 'insert';$goods_attr_list[$attr_id][$attr_value]['attr_price'] = $attr_price;}$val_arr = explode(' ', $attr_value);foreach ($val_arr AS $k => $v){if (!isset($keywords_arr[$v]) &&$attr_list[$attr_id] == "1"){$keywords_arr[$v] = $v;}}}}}$keywords = join(' ', array_flip($keywords_arr));$sql = "UPDATE " .$ecs->table('goods'). " SET keywords ='$keywords' WHERE goods_id = '$goods_id' LIMIT 1";$db->query($sql);/* 插入、更新、删除数据*/foreach ($goods_attr_list as $attr_id => $attr_value_list){foreach ($attr_value_list as $attr_value => $info){if ($info['sign'] == 'insert'){$sql = "INSERT INTO " .$ecs->table('goods_attr'). " (attr_id, goods_id, attr_value, attr_price)"."VALUES ('$attr_id', '$goods_id','$attr_value', '$info[attr_price]')";}elseif ($info['sign'] == 'update'){$sql = "UPDATE " .$ecs->table('goods_attr'). " SET attr_price = '$info[attr_price]' WHERE goods_attr_id ='$info[goods_attr_id]' LIMIT 1";}else{$sql = "DELETE FROM " .$ecs->table('goods_attr'). " WHERE goods_attr_id = '$info[goods_attr_id]' LIMIT 1";}$db->query($sql);}}}/* 处理会员价格*/if (isset($_POST['user_rank']) && isset($_POST['user_price'])){handle_member_price($goods_id, $_POST['user_rank'],$_POST['user_price']);}/* 处理优惠价格*/if (isset($_POST['volume_number']) &&isset($_POST['volume_price'])){$temp_num = array_count_values($_POST['volume_number']);foreach($temp_num as $v){if ($v > 1){sys_msg($_LANG['volume_number_continuous'], 1, array(), false);break;}}handle_volume_price($goods_id, $_POST['volume_number'], $_POST['volume_price']);}/* 处理扩展分类*/if (isset($_POST['other_cat'])){handle_other_cat($goods_id, array_unique($_POST['other_cat']));}if ($is_insert){/* 处理关联商品*/handle_link_goods($goods_id);/* 处理组合商品*/handle_group_goods($goods_id);/* 处理关联文章*/handle_goods_article($goods_id);}/* 重新格式化图片名称*/$original_img = reformat_image_name('goods', $goods_id, $original_img, 'source');$goods_img = reformat_image_name('goods', $goods_id, $goods_img, 'goods');$goods_new_img = reformat_image_name('goods_new', $goods_id, $goods_new_img, 'goods_new');//新的图片$goods_thumb = reformat_image_name('goods_thumb', $goods_id, $goods_thumb, 'thumb');。
浅析Ecshop自带的赠品模块
浅析Ecshop自带的赠品模块
Ecshop自带有一个赠品模块,位于后台-》促销管理-》优惠活动。
赠品需要在后台手动的一个一个添加,比较麻烦。
所以想用一个比较快捷的方法。
先分析一下该功能用到的数据表`ecs_favourable_activity`的各个字段,可以发现赠品应该放在gift字段中。
在看一下后台的favourable.php文件,找到如下代码:
/* 取得赠品 */
$gift = array();
if (intval($_POST['act_type']) == FAT_GOODS && isset($_POST['gift_id']))
{
foreach ($_POST['gift_id'] as $key => $id)
{
$gift[] = array('id' => $id, 'name' => $_POST['gift_name'][$key], 'price' => $_POST['gift_price'][$key]);
}
}
......
'gift' => serialize($gift)
看上述代码不难发现赠品需要三个属性,分别是产品ID、产品名称、和赠品价格,并且放入数组,然后对这个赠品数组进行序列化处理后直接入数据库。
前台要显示这些赠品的时候只需要反序列化gift 字段的值。
最新Dede CMS如何在文章中增加“附件下载”操作说明
Dede CMS如何在文章中增加“附件下载”操作说明
1
2
1、进入后台——在“附件管理“中选择“上传新文件”
3
4
2、在“说明标题”输入要上传文件的名字,并在下面浏览找到要上传的文5
件,保存。
6
7
3、在“附件数据管理”中找到刚才上传的文件,双击打开。
8
9
4、在浏览器中复制供下载文件的地址(即您刚上传上去的文件)
10
11
5、新建一篇文章输入内容后,在后面输入供访问用户下载的文件名,并打
括号在后面输入“点击下载”,并链接到第四项的地址。
12
13
例如:正文部分:
14
-----------------------------
15
-----------------------------
16
-----------------------------
17
-----------------------------
结尾部分:
18
19
《公司产品报价表》(点击下载)
20。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ECSHOP增加产品中新增一个上传附件功能
第一步:在 admin\templates\goods_info.htm中
<span class="tab-back" id="article-tab">{$lang.tab_article}</span>后面加上
<span class="tab-back" id="file-tab">上传附件</span>
现在确定按钮的前面加入
<table width="90%" id="file-table" style="display:none" align="center">
<tr>
<td >上传附件:</td>
<td><input type="file" name="file">
<span class="narrow-label">{$lang.file_url}
<input name="file_url" type="text" value="{$goods.file_url|escape}" size="30" maxlength="255" />
</span></td>
</tr>
</table>
第二步:在数据库的ECS_GOODS表中加入一个字段,这个自己去命名
第三步:在admin/goods.php 中
// 是否上传商品缩略图
if (isset($_FILES['goods_thumb']) && $_FILES['goods_thumb']['tmp_name'] != '' && ---------在这个代码的前面加入
/* 取得文件地址 */
$file_url = '';
if ((isset($_FILES['file']['error']) && $_FILES['file']['error'] == 0) ||
(!isset($_FILES['file']['error']) && isset($_FILES['file']['tmp_name']) &&
$_FILES['file']['tmp_name'] != 'none'))
{
// 检查文件格式
if (!check_file_type($_FILES['file']['tmp_name'], $_FILES['file']['name'],
$allow_file_types)) {
sys_msg($_LANG['invalid_file']);
}
// 复制文件
$res = upload_article_file($_FILES['file']);
if ($res != false) {
$file_url = $res;
}
}
if ($file_url == '') {
$file_url = $_POST['file_url'];
}
/* 计算文章打开方式 */
if ($file_url == '') {
$open_type = 0;
} else {
$open_type = $_POST['FCKeditor1'] == '' ? 1 : 2;
}
第四步:搜索代码 /* 入库 */ 在SQL语句中加入你在第二步增加的字段。
第五步:搜索"goods_desc = '$_POST[goods_desc]', " . 找到后复制一个,再把"goods_desc = '$_POST[goods_desc]', " . 中的两个goods_desc 改成你新增的字段值
第六步:在$goods_thumb = reformat_image_name('goods_thumb', $goods_id, $goods_thumb, 'thumb');后面加入
if ($file_url !== false){
$db->query("UPDATE " . $ecs->table('goods') . " SET file_url = '$file_url' WHERE goods_id='$goods_id'");
}
大概位置在1100行左右
第七步:在goods.dwt中加入
{if $goods.file_url}
<a href="{$goods.你新增的字段}" >下载</a>
{else}
暂未上传
{/if}
做完以后,可以上传修改和删除如有疑问可留言。
长沙无幻设计。