博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ecsmart的开发经历
阅读量:5374 次
发布时间:2019-06-15

本文共 3501 字,大约阅读时间需要 11 分钟。

   ecsmart是ecshop的产品之一,是2015年发布的一套系统。关于它的介绍请到官网去了解,也可以百度 “商之翼” “ecsmart”

  1、ecsmart分别在pc、mobile、app三个方面都有开发,(你已经搭好环境了),在根目录下的admin目录是对pc端的管理,/mobile/admin  是手机对 app的管理

    所以在开发的时候一定要弄清楚,当然也可以合并后台

     2、我这次是做的微信开发,主要对mobile目录/admin目录进行修改。

     3、商品的图片上传的位置是/data/images里,广告图片pc与微信存放的路径不同,因为是分开的表(pc:ad、ad_position  mobile:ecsmart_ad 、ecsmart_ad_postion),他们分别在pc端后台与mobile端后台也都有相应的广告设置菜单。其实其实二者标的字段几乎没啥差别

   4、pc端后台的功能是最多,最大的,关于商品的添加、修改、分类添加......都是在它这里完成设置的,mobile端后台可以设置微信端商店的设置,已经前台的页面设置、还有微信设置

   说这点是为了不让大家混乱,因为我一开始的时候就没有搞清楚,然后我就把后台功能页面修改了,比如我当时把pc端后台的商店设置里对pc端商品的数据表 (shop_config)改成微网站商店(ecsmart_shop_config) 当然也能实现,但是挺麻烦的,后面弄清了目录结构就操作就简单点了

  5、pc端通过修改libiary/lic_menu.php libiary/lic_priv.php来设置后台的导航栏目,mobile则通过修改 mobile/templates/menu.htm  mobile/libiary/lic_menu.php mobile/libiary/lic_priv.php

  来设置后台的导航栏目

6、商品批量上传的时候,如果你选择的csv文件是根本gb2312 gbk 的编码的话,那就会出现上传后的商品乱码,这是因为你选择的是utf-8版本,那么如何解决这个乱码的问题,我当时的处理方法是

在公共函数里加一个判断文件编码的函数:可以直接在 goods_batch.php添加该函数
goods_batch.php里截取的代码 elseif ($_REQUEST['act'] == 'upload'){    //echo IMAGE_DIR; /* 检查权限 */ admin_priv('goods_batch'); /* 将文件按行读入数组,逐行进行解析 */ $line_number = 0; $arr = array(); $goods_list = array(); $field_list = array_keys($_LANG['upload_goods']); // 字段列表 /*echo '
'; print_r($field_list); echo '
';*/ // echo $_POST['cat_id']; $data = file($_FILES['file']['tmp_name']); $up_tm_file = $_FILES['file']['tmp_name']; $coding = detect_encoding($up_tm_file);//得到上传文件的编码-----------------这句话就是我的修改处之一 //echo '

',detect_encoding($up_tm_file); /*将文件按行读入数组,逐行进行解析*/ if($_POST['data_cat'] == 'ecshop') { foreach ($data AS $line) { // 跳过第一行 if ($line_number == 0) { $line_number++; continue; } //echo '

',$line; // 转换编码 if(strtolower($coding) != 'utf-8'){ //-----------------------------------我通过得到上传的文件的编码然后判断这个编码不是utf-8的话,我在执行ec使用的转化编码的处理 if (($_POST['charset'] != 'UTF8') && (strpos(strtolower(EC_CHARSET), 'utf') === 0)) { $line = ecs_iconv($_POST['charset'], 'UTF8', $line); } }
 

 

function detect_encoding($file) {     $list = array('GBK', 'UTF-8', 'UTF-16LE', 'UTF-16BE', 'ISO-8859-1','GB2312'); $str = file_get_contents($file); foreach ($list as $item) { $tmp = mb_convert_encoding($str, $item, $item); if (md5($tmp) == md5($str)) { return $item; } } return null; }

当然,这是我在开发的时候遇到的问题,如果有同样出现问题的朋友可以看看,还有  如果使用过的ec的朋友应该知道,ec可以导入淘宝的数据,然后是保存的csv文件 最后在批量上传到自己的站点上去

所以在goods_batch.php 有 data_cat数据格式的判断,所以应该把后面其它的数据格式也加入上面的判断才更合理

7、微网站你会看到商品的详情不显示,那是因为在goods.dwt里 详情、价格这些都是使用js ajax回调的  但是 它把js头部<script>可注释掉了,因此你应该去掉注释

8、关于goods.dwt有个 show_desc 函数   它存在一个问题 存在引号问题 如果你的详情内容里用引号 而且你又是用同样的引号把show_desc引住 那么js就会出错 导致后面的代码不能执行

  导致你页面上很多的效果不能实现(比如赠送积分、改变数量价格作出相应的变化等  因为都是一个函数 chageprice在处理 而 chageprice的调用就在show_desc的后面 所以会出错)

  因此 你该去掉这个函数  不通过回调显示详情  而是直接在

    <!---------------------------------详情----------------------------------->

<div class="main" id="user_goods_ka_2" style="display:none">
      <div class="product_main" style=" margin-top:40px;">
          <div class="product_images product_desc" id="product_desc"> {$goods.goods_desc}</div>
        </div>
      </div>

引用

9、关于微信功能不能显示图片的解决 第一:可以去掉在得到商品信息给图片前加的get_url()函数 第二也可以修改mobile/weixin/index.php

//$newsData[$k]['PicUrl'] = (strpos($v['thumb'],'http://') !== false ? $v['thumb'] : $baseurl.'mobile/'.$v['thumb']);                    $newsData[$k]['PicUrl'] = (strpos($v['thumb'],'http://') !== false ? $v['thumb'] : $baseurl.$v['thumb']); //这里的设置是因为网站的根目录不在mobile下,而图片却在根目录下,因此需要做这样的修改

一切的一切就是ec用的是相对路径  而我开发的时候都把改成/的路径方式

 

 

 

 

 

 

 

 

------------------目前还在使用它做项目,后面会把自己遇到的问题都分享出来

 

转载于:https://www.cnblogs.com/YangJieCheng/p/5813799.html

你可能感兴趣的文章
Java学习不走弯路教程(2.Eclipse环境搭建)
查看>>
C语言数据类型
查看>>
关于每次取PC的值为PC+4的问题
查看>>
JavaScript笔记——函数
查看>>
89 Gray Code
查看>>
.NET中的视图和过滤器 (DefaultView和RowFilter)
查看>>
jeecg权限设置案例
查看>>
第一次学习前端总结
查看>>
C#WinForm的DataGridView控件显示行号
查看>>
递归复习,递归输出字符串的全排列
查看>>
jQuery选择器 大于 空格 波浪线 加号
查看>>
猜数字游戏dowhile循环
查看>>
NoSql之旅--Cassandra的Cql简介(二)
查看>>
解决eclipse环境下maven项目tomcat启动,未加载到项目的问题
查看>>
js对象的复制,传递,新增,删除和比较
查看>>
android EditText
查看>>
为什么要拒绝使用大事务进行处理任务?
查看>>
云技术入门指导:什么是云计算技术,云技术用什么语言开发
查看>>
linux/windows转mac的习惯设置
查看>>
第三课响应式布局
查看>>