ecsmart的开发经历

   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 ‘<pre>‘;
    print_r($field_list);
    echo ‘</pre>‘;*/
    // echo $_POST[‘cat_id‘];
    $data = file($_FILES[‘file‘][‘tmp_name‘]);
    $up_tm_file = $_FILES[‘file‘][‘tmp_name‘];
    $coding = detect_encoding($up_tm_file);//得到上传文件的编码-----------------这句话就是我的修改处之一
    //echo ‘<hr>‘,detect_encoding($up_tm_file);
    /*将文件按行读入数组,逐行进行解析*/
    if($_POST[‘data_cat‘] == ‘ecshop‘)
    {
        foreach ($data AS $line)
        {
            // 跳过第一行
            if ($line_number == 0)
            {
                $line_number++;
                continue;
            }
//echo ‘<hr>‘,$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用的是相对路径  而我开发的时候都把改成/的路径方式

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

时间: 2024-11-19 06:54:13

ecsmart的开发经历的相关文章

用做网页开发经历了三个阶段(附长篇讨论) good

用做网页开发经历了三个阶段:第一阶:傻干阶段使用Intraweb,傻瓜型,无需知道javascript,html,css,会pascal就可以了. 第二阶:困惑阶段使用Intraweb,有很多限制,比如资料少,界面不容易做漂亮,没有源代码等等.于是转向研究其他开发工具.首先吸引眼球的是Nodejs,前后台用一种语言Javascript,爽,运行速度也不赖.随着PHP7的发布,注意力也被PHP7的高性能所吸引,玩了一阵PHP7.当然还有以前摸过的Tomcat/asp.net,各种框架一大堆.还有,

一套跨平台五子棋网游的开发经历(二)

接上文http://wchrt.blog.51cto.com/8472636/1661524 4.游戏通信协议设计 因为是PC.手机都能玩的游戏,考虑到糟糕的手机网络环境,通信采用客户端单方发起请求,服务器回复的方式,使服务器不用考虑确保手机信号不好或IP变更的情况,类似于web方式. 游戏没有设计固定的用户,采用的是游戏每次向服务器申请一个游戏ID,使用这个游戏ID在互联网上和其他用户对战.于是协议报文设计了两种:普通请求/回复报文gamequest.游戏数据报文nextquest. #inc

一套跨平台五子棋网游的开发经历

闲来无事,因自己想要在服务器开发方面进行更深入的学习,积累更丰富的经验.决定写一套网络游戏的c/s. 因为主要目的是服务器的开发,因此游戏我选用规则较为简单.画面特效没有要求的回合制游戏:五子棋.我曾经在刚接触编程的时候自己在控制台下做过这个游戏,当时写的ai特nb我自己根本下不赢他.确定是制作五子棋了, 但是还要满足跨平台的特性,毕竟移动互联时代,得终端者得天下.游戏做成全平台才能更好的将各种玩家聚集在一起.跨平台?b/s是人们通常会第一个想到的跨平台方式,的确现在市面上有很多基于b/s的页游

apiclound studio 2 开发经历

总结下:apicloud studio 2 的这两天的开发经历:从零到写出一个小的应用. 一.先注册账号 二.下载开发工具apicloud studio 2 . 基于一款atom编辑器改造的类型微信小程序开发工具.但是功能还是有一定的差距的. 三.优缺点: 优点: 1.与代码管理工具集成在一起方便代码的管理. 2.真机调试做的挺好,速度也很快. 3.本地编译和云编译很方便. 4.提供了一套云服务解决方案(可以上传文件,可以保存数据) 5.win和frame区分很清楚. 6.官方有提供一些模板和U

.net程序员转行做手游开发经历(二)

上篇主要介绍自己个人的经历,这篇主要讲下学习新语言的过程. 上次说到最终选择的语言是swift,框架用spritekit,上次有网友对为什么选择用这俩呢,为什么不用cocos和unity呢,cocos和unity我觉得相对来说比较成熟,但是一开始觉得要接触的东西会比较多,对我来说学习的成本要大点,spritekit 本身集成在xcode中,对新手来说会省去很多的配置工作,可以很快的进入开发工作,spritekit目前用的人确实不多,现成的开发库也比较少,遇到问题也不好解决,这个在我们后面开发中也

H5拍照应用开发经历的那些坑儿

一.项目简介 1.1.项目背景: 这是一个在移动终端创新应用的项目,用户在浏览器端(微信/手Q)即可完成与金秀贤的合影,希望通过这样一种趣味体验,引发用户的分享与转发的热潮. 1.2.系统要求: ios6-ios7.android3.0-android4.3.android4.4+(非webview内) 1.3.体验地址: 二.初步技术方案确定 在项目前期首先启动了技术预演,确定初步技术方案(*非最终解决方案): 2.1.获取用户照片数据2.1.1.首先放弃了主动获取用户摄像头的getUserM

.net程序员转行做手游开发经历(一)

从辞职到自己开发游戏也有几个月的时间了,游戏也已经在AppStore上线了,我觉得我有必要写点东西,算是留下的一些记忆,也可以和广大博友分享下自己的创业经历,这可能不是一篇成功的创业经历,因为故事还在进行中. 今天这篇主要是讲下自己的一些经历. 我出生在河南的一个小村庄里,小时候是跟着爷爷奶奶一起生活的,捉蚂蚱,套马蜂窝都干过,有时候没还跟爷爷奶奶一起下地干活,现在回想小时农村的体验还是很有趣的,也听说和爷爷奶奶生活的孩子比较聪明,不知道是不是真的,不过确实很多人说我比较聪明.接着6岁左右的时候

记一次爬虫框架的开发经历

爬虫是我看过的所有程序中最酷的,因为爬虫可以真正帮你完成一些费事繁琐的工作,比如搜集图片. 咳咳~因为某个网站会把图片打包成种子,发布,并且提供下载,对于老司机来说是省时省力的事情,但是种子是会失效的.有一些很想看的图集想看但是种子失效了,这时候会让人很尴尬,还好,种子没了但是官网图片还在!所以当时就想要是自己写一个爬虫去帮我完成这些另存为图片的工作就好了. 我是想也没想,自己开始筹划. 开始的第一步自然而然是收集一些网页的前端代码(也就是在浏览器里面右键->网页源代码里面查看).因为我要知道这

.net程序员转行做手游开发经历(四)

今天是大年初二,在这里先给大家拜个年,祝大家在新的一年里能事事顺心. 年前的时候更新了一版,先发了内测,没有想到过年这几天,有的小伙伴们还在玩,还给我们提了很多建议和意见,让我们觉得非常温暖,给我们很多信心. 这次主要讲下上线前的内测的技术操作和我们内测事情,上次说到,我们内测的时候邀请到了200位内测的玩家,在短短的不到一个月的内测时间里,我们游戏就更新了好几版,游戏稳定性和平衡性都得到了很大的提升. 内测的技术操作是通过苹果自带的内测功能实现的.苹果的app应用不像android的应用一样,