找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 641|回复: 0
打印 上一主题 下一主题

分享几个Ecshop中二次开发的常见方法

[复制链接]

2647

主题

2647

帖子

7881

积分

论坛元老

Rank: 8Rank: 8

积分
7881
跳转到指定楼层
楼主
发表于 2018-2-13 20:45:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

收货人信息的省市区设成非必选项
一般面向国外用户的ECSHOP商城,可能会有这方面的需求:【将Ecshop中收货人信息的省市区设成非必选项】,其实也就是只留一个“请选择国家”的下拉选择框。
修改相关JS文件
打开 /js/shopping_flow.js 文件,将下面JS代码删除掉
JavaScript Code复制内容到剪贴板
    if (frm.elements['province'] && frm.elements['province'].value == 0 && frm.elements['province'].length > 1)   
   
  • {   
         err = true;   
       
  • msg.push(province_not_null);   
         }   
       
  • if (frm.elements['city'] && frm.elements['city'].value == 0 && frm.elements['city'].length > 1)   
         {   
       
  • err = true;   
         msg.push(city_not_null);   
       
  • }   
         if (frm.elements['district'] && frm.elements['district'].length > 1)   
       
  • {   
         if (frm.elements['district'].value == 0)   
       
  • {   
         err = true;   
       
  • msg.push(district_not_null);   
         }   
       
  • }  
    [/ol]
    修改程序文件
    修改 /inlcudes/lib_order.php 文件,将下列PHP代码删除掉
    PHP Code复制内容到剪贴板
        if ($res)   
       
  • {   
         if (emptyempty($consignee['province']))   
       
  • {   
         /* 没有设置省份,检查当前国家下面有没有设置省份 */  
       
  • $pro = get_regions(1, $consignee['country']);   
         $res = emptyempty($pro);   
       
  • }   
         elseif (emptyempty($consignee['city']))   
       
  • {   
         /* 没有设置城市,检查当前省下面有没有城市 */  
       
  • $city = get_regions(2, $consignee['province']);   
         $res = emptyempty($city);   
       
  • }   
         elseif (emptyempty($consignee['district']))   
       
  • {   
         $dist = get_regions(3, $consignee['city']);   
       
  • $res = emptyempty($dist);   
         }   
       
  • }  
    [/ol]
    然后收货人信息那里,只选择国家不选择省市区,也照样能提交。
    修改底部的在线人数
    建站之初,网站的在线人数肯定不会很多,那么我们可以稍微修改下ECSHOP的程序,让页面底部显示的在线人数 翻几番。
    具体方法如下:
    打开 /includes/lib_insert.php文件,找到下面代码
    PHP Code复制内容到剪贴板
        $online_count = $GLOBALS['db']->getOne("SELECT COUNT(*) FROM " . $GLOBALS['ecs']->table('sessions'));  
    [/ol]
    将之修改为:
    PHP Code复制内容到剪贴板
        $online_count = $GLOBALS['db']->getOne("SELECT COUNT(*) FROM " . $GLOBALS['ecs']->table('sessions'))*15;  
    [/ol]
    这样,你的ECSHOP商城显示的在线人数就会多15倍,当然你也可以将15改成100,这样就会多100倍。
    文章的浏览次数

    修改数据库结构
    进ECSHOP后台 》 数据库管理 》SQL查询 ,输入下面SQL语句
    复制代码代码如下:
    ALTER TABLE `ecs_article` ADD `click_count` INT( 10 ) NOT NULL
    点击 “提交查询”
    修改 /article.php
    搜索
    PHP Code复制内容到剪贴板
        else  
       
  • {   
         $smarty->display('article_pro.dwt', $cache_id);   
       
  • }  
    [/ol]
    在它下面增加一行PHP代码,如下:
    复制代码代码如下:
    $db->query("update ".$ecs->table('article')." set click_count=click_count+1 where article_id=$article_id") ;
    修改 /themes/default/article.dwt
    找到
    复制代码代码如下:
    {$article.add_time}
    在它后边增加PHP代码,如下:
    复制代码代码如下:
    / 浏览次数:{$article.click_count}
    这种修改方法,要清除缓存或者缓存自动更新后才能体现出最新的浏览次数来,如果你想能实时显示最新的浏览次数,就要构造一个INSERT函数,并在模板中用 {insert name =“xxx”} 调用。
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端