Ecshop 开发问题汇总
2016-04-05
写在前面
本文记录在Ecshop开发和使用过程中遇到的各种问题以及解决方法
安装时提示:gd_version()
找到install/includes/lib_installer.php中的第31行return ls_image::gd_version();
然后在找到include/cls_image.php中的678行,发现gd_version()
方法未声明静态static,所以会出错
问题: 安装Ecshop时,出现错误提示信息Strict Standards: Non-static method cls_image::gd_version() should not be called statically
方案: 下面两种方法选择一种即可
- 将function gd_version()改成static function gd_version()即可
- 或者将install/includes/lib_installer.php中的第31行return cls_image::gd_version();改成:
$p = new cls_image(); return $p->gd_version();
JEPG显示不支持
查看发现有libjpeg.lib库,GD2库也有,都加载了,也都正常。查看ecshop源代码发现install/includes/lib_installer.php中第98行,JPEG写成了JPG
问题: 环境检测显示JEPG不支持
方案:将第98行代码改成如下形式
$jpeg_enabled = ($gd_info['JPEG Support'] === true) ? $_LANG['support'] : $_LANG['not_support'];
错误警告preg_replace()
安装Ecshop完成之后,访问前台页面,会提示警告信息 Deprecated: preg_replace(): The /e modifier is deprecated
问题: 错误警告 Deprecated: preg_replace(): The /e modifier is deprecated
方案: 打开includes\cls_template.php
,跳转到第300
行,将
return preg_replace("/{([^\}\{\n]*)}/e", "\$this->select('\\1');", $source);
替换成
return preg_replace_callback("/{([^\}\{\n]*)}/", function($r) { return $this->select($r[1]); }, $source);
重新访问页面就解决了
错误警告:Only variables
安装完成之后,访问前台首台,出现警告信息Strict standards: Only variables should be passed by reference
问题:错误警告Strict standards: Only variables should be passed by reference
方案:PHP 5.3以上版本的问题,和配置有关.只要includes\cls_template.php
第418
行
$tag_sel = array_shift(explode(' ', $tag));
拆成两句就没有问题了
$tag_arr = explode(' ', $tag);
$tag_sel = array_shift($tag_arr);
或者直接修改PHP配置文件php.ini
第451
行,将
error_reporting = E_ALL
改成
error_reporting = E_ALL
重新启动服务即可
Ecshop后台mktime()
错误警告
安装完成之后,登录系统后台访问“商店设置”时,系统报错,提示mktime(): You should be using the time() function instead in
.这是因为PHP版本的问题,mktime()
不带参数被调用时,会被提示错误.
问题:错误警告mktime(): You should be using the time() function instead in
方案:根据错误提示找到相应错误所在的文件,并且定位到问题代码,将
$auth = mktime();
替换成
$auth = time();
刷新页面就可以了
后台管理各页面功能备注
htm
templates/index.htm
:后台主界面,通过<frameset></frameset>
来实现页面分块
php
common.php
:后台基本显示语言
数据库修改记录和使用说明
goods表
goods
: 添加unit
字段作为商品单位
goods
: 添加goods_bar_code
字段作为商品条形码
goods
: 添加goods_max_buy
字段作为限购数量
goods
: 添加goods_min_buy
字段作为最低购买量
goods
: 添加goods_bind_type
字段作为装订类型
goods
: 添加goods_composite_page
字段作为合成图片格式
:0:单页,1:跨页
goods
: 添加goods_composite_pic
字段作为合成图片格式
:0:jpg,1:png
goods
: 添加goods_gray
字段作为灰度特效
:0:不启用,1:启用
goods
: 添加goods_composite_pdf
字段作为合并为pdf
:0:否,1:是
goods
: 添加goods_album
字段作为画册选项
:0:硬壳,1:软壳,2:皮革
goods
: 添加goods_add_page_start
字段作为起始页数
goods
: 添加goods_add_page_max
字段作为最大页数
goods
: 添加goods_add_page_unit
字段作为加页单位
goods
: 添加is_text_on
字段作为开启文本
goods
: 添加is_pic
字段作为开启用户图片
goods
: 添加is_background
字段作为开启背景
goods
: 添加is_gif
字段作为开启剪贴画
goods
: 添加is_border
字段作为开启边框
goods
: 添加is_mask
字段作为开启蒙版
goods
: 添加is_format
字段作为开启版式
goods
: 添加is_textvr
字段作为开启竖排文字
goods
: 添加goods_line_min
字段作为最小行距
goods
: 添加goods_line_max
字段作为最大行距
goods
: 添加goods_line_up_unit
字段作为行距递增单位
goods
: 添加goods_defination
字段作为分辨率
goods
: 添加goods_inner_width
字段作为内页设计宽度
goods
: 添加goods_inner_height
字段作为内页设计高度
goods
: 添加goods_blood_h
字段作为普通页水平出血
goods
: 添加goods_blood_v
字段作为普通页垂直出血
goods
: 添加goods_safe_line
字段作为安全线
goods
: 添加goods_inner_type
字段作为内页材质
goods
: 添加goods_size_width
字段作为尺寸-宽
goods
: 添加goods_size_length
字段作为尺寸-长
2016-04-28整理商品(规格)管理所需要字段
goods
:goods_id
字段作为商品id
goods
:goods_sn
字段作为商品编号
goods
:goods_name
字段作为商品名称
goods
:goods_brief
字段作为商品简介
goods
:goods_bind_type
字段作为装订类型
:取自goods_bind_type
表
goods
:shop_price
字段作为商品价格
goods
:goods_thumb
字段作为商品相册
goods
:goods_add_page_max
字段作为商品最大页数
goods
:goods_composite_page
字段作为合成图片格式
:0:单页,1:跨页
goods
:goods_composite_pic
字段作为合成图片格式
:0:jpg,1:png
goods
:goods_gray
字段作为灰度特效
:0:不启用,1:启用
goods
:goods_composite_pdf
字段作为合并为pdf
:0:不启用,1:启用
goods
:goods_inner_type
字段作为内页材质
:取自material_type
表
goods
:goods_size_width
字段作为尺寸-宽
goods
:goods_size_length
字段作为尺寸-长
goods
:add_time
字段作为商品添加时间
goods
:last_update
字段作为最后更新时间
ecs_goods_bind_type表
新建ecs_goods_bind_type
表装订类型表
type_id:类型id
type_name:类型名称
ecs_material_type表
新建ecs_material_type
表材质类型表
type_id:类型id
type_name:类型名称
remark:备注
admin_user表
admin_user
: 添加invitation_code
字段作为邀请码
admin_user
: 添加phone
字段作为手机号码
admin_user
: 添加company
字段作为所属部门
admin_user
: 添加bank_card
字段作为银行卡号
order_info表
order_info
:添加invitation_code
字段作为邀请码
order_info
:order_status
字段作为印刷厂是否处理
:0
:未确认,1
:已确认
order_info
:添加print_status
字段作为印刷厂订单是否打印
:0
:未打印订单,1
:已打印订单
order_info
:添加download_status
字段作为印刷厂订单是否下载
:0
:未下载订单,1
:已下载订单
order_info
:pay_status
字段作为用户付款状态
:0
:未付款:2
:已付款
order_info
:user_id
字段作为用户名称
:用户下单时存入当前登录用户名称
order_info
:invoice_no
字段作为快递单号
order_info
:user_name
字段作为下单用户姓名
:用户下单时写入
order_goods表
order_goods
:添加bind_type
字段作为装订类型
order_goods
:添加material_type
字段作为材质
order_goods
:添加goods_height
字段作为尺寸-长
order_goods
:添加goods_width
字段作为尺寸-宽
order_goods
:添加goods_page_count
字段作为商品页数
order_goods
:添加goods_url
字段作为电子稿下载地址
ecs_product_yzldiy表
product_yzldiy
:pid
字段作为模板编号
product_yzldiy
:cid
字段作为类别
:product_category_yzldiy
表中的id
product_yzldiy
:preview
字段作为预览图
product_yzldiy
:mbDes
字段作为模板描述
product_yzldiy
:name
字段作为模板名称
product_yzldiy
:status
字段值为1
product_yzldiy
:tid
字段值为00001
ecs_product_category_yzldiy表
product_category_yzldiy
:id
字段作为模板类别编号
product_category_yzldiy
:name
字段作为模板类别名称
product_category_yzldiy
:info
字段作为类别说明
ecs_product_yzldiy_gallery表
新建ecs_product_gallery
表材质类型表
img_id:图片id
pid:模板id:ecs_product_yzldiy
中的pid
img_url:图片url
时间戳数据库处理
/* 添加按照付款时间每日分组 */
$group = " GROUP BY FROM_UNIXTIME(oi.pay_time,'%y-%m-%d')";
/* 查询距添加代理用户第几天 */
$sql = "SELECT TO_DAYS(FROM_UNIXTIME(oi.pay_time)) - TO_DAYS(FROM_UNIXTIME(au.add_time)) AS day_num, ";
/* 查询每日订单数 */
$sql = $sql . " COUNT(oi.order_id) AS order_sum_day, ";
/* 查询每日产品数 */
$sql = $sql . " COUNT(og.goods_id) AS product_sum_day ";
参考资料
[1]Ecshop安装过程中的的问题:cls_image::gd_version()和不支持JPEG
[2]安装Ecshop首页出现报错:Only variables should be passed by referen