ecshop二次开发50个小技巧

最近很忙,也没时间去打理一些资料和开发笔记,去年总结了使用ecshop电子商务系统的100个小问题,被ecshop爱好的朋友大量转载,今年应更多朋友的邀请。总结50条ecshop二次开发小技巧。希望对大家有所帮助。我将尽力快速的完成完善本文.但是有一点,不会说的太详细,也不会有完整的代码。只提供思路给大家.

   1:如何统计ecshop商品在订单中出现的次数

     回答:$count = $db -> getOne("select sum(goods_number) from ".$ecs->table('order_goods')." where goods_id = '$goods[goods_id]'");

   2:ecshop详细页面如何通过onclick点击事件来控制购买,特别用在批发,批发存在一个最小购买量控制.

   回答:

         <script>
       function adgtz(){
      var number = document.getElementById("ordernumber").value;
      var min_number = {$goods.min_number};
      var goods_num = 1000;
      if(number > goods_num - min_number){
   alert("最多能买"+goods_number+"件");
      }
      number=parseInt(number)+min_number;
      document.getElementById("ordernumber").value = number;
}
function adgtzmm(){
    var number = document.getElementById("ordernumber").value;
     var min_number = {$goods.min_number};
    if (number>min_number){
      number=parseInt(number)-min_number;
    }
    document.getElementById("ordernumber").value = number;
  
}
</script>

    3:如何用js去验证手机号码.

    回答:var reg =/^[1]([3][0-9]{1}|50|53|59|58|56|86|80|89|87|88|85|86|55|51|52|57)[0-9]{8}$/;

    4:ecshop中如何取得每个月的1号时间?

   回答:local_mktime(0,0,0,date("m"),0,date("Y"));使用ecshop的local_mktime函数.  http://www.chinab4c.com/html/shangchengchengxu/ecshophanshu/2009/0629/70.html

    5:ecshop如何直接关闭窗口而不弹出提示

   回答:<a href="javascript:window.opener=null;window.close();">

    6:如何统计ecshop某商品下被审核过的评论数量。

回答:$ccount = $db -> getOne("select count(*) cc from ".$ecs->table('comment')." where id_value = '$goods_id' and comment_type = '0' and status = '1' and parent_id = '0'");

    有关ecshop评论,请参考本文http://www.chinab4c.com/html/shangchengchengxu/ecshopchangjianwenti/2009/0811/129.html

   7:ecshop中js如何将时间格式互转

    回答:date1 = new Date();
var b = Date.UTC(date1.getYear(),date1.getMonth()+1,date1.getDate(),0,0,0)
time1 = frm.elements['best_time'].value;

y = time1.substring(0,4);
m = time1.substring(5,7);
d = time1.substring(8,10);
var b2 = Date.UTC(y,m,d,0,0,0)

   8:如何解析ecshop flash的xml

回答:

    $str = @file_get_contents("data/flash_data.xml");
if($str){
   preg_match_all("/item_url=\"(.*?)\"/",$str,$url);
   preg_match_all("/text=\"(.*?)\"/",$str,$text);
   preg_match_all("/link=\"(.*?)\"/",$str,$link);
   $ar_flash = array();
   if(sizeof($url[1])){
    for($i=0;$i<sizeof($url[1]);$i++){
     $ar_flash[$i]['url'] = $url[1][$i];
     $ar_flash[$i]['text'] = $text[1][$i];
     $ar_flash[$i]['link'] = $link[1][$i];

    }
    $smarty->assign('ar_flash',$ar_flash);
   }
 
}
9:ecshop中如何正则提取中文

回答:preg_match("/[".chr(0xa1)."-".chr(0xff)."]+/",ecs_iconv("UTF-8","GBK",$v['brand_name']),$cn);

10:ecshop如何取得订单中所属区域

$p = $GLOBALS['db']->getOne("select region_name from ".$GLOBALS['ecs']->table('region')." where region_id = '".$re1['province']."'");
     $c = $GLOBALS['db']->getOne("select region_name from ".$GLOBALS['ecs']->table('region')." where region_id = '".$re1['city']."'");
     $d = $GLOBALS['db']->getOne("select region_name from ".$GLOBALS['ecs']->table('region')." where region_id = '".$re1['district']."'");

11:ecshop中如何分别提取中文和英文

回答:utf下面

$pregstr = "/[\x{4e00}-\x{9fa5}]+/u";
preg_match($pregstr,$v['brand_name'],$ch);     

gbk下面

$strtest = “yyg中文字符yyg”;

$pregstr = "/([".chr(0xb0)."-".chr(0xf7)."][".chr(0xa1)."-".chr(0xfe)."])+/i";

if(preg_match($pregstr,$strtest,$matchArray)){

echo $matchArray[0];

}

12:如何控制ecshop商品总价格只有ecshop会员特殊等级才能查看

回答:ecshop的goods.php

$is_spe = $GLOBALS['db'] -> getOne("select special_rank from ".$GLOBALS['ecs']->table('user_rank')." where rank_id = '".$_SESSION['user_rank']."'");
   if($is_spe){
    $res['result'] = price_format($shop_price * $number);
   }else{
    $string = "<a href=article-21-%E6%80%8E%E4%B9%88%E6%B3%A8%E5%86%8C.html>请联系客服</a>";
    $res['result'] = $string;
   }

13:调试ecshop程序出现以下错误Fatal error: Cannot redeclare是什么意思?

回答:Fatal error: Cannot redeclare,意思是你运行的程序中,某函数重新申明了两次,要删除其中一个同名函数.

14:ecshop如何判断是否当天登陆,并赠送积分.

回答:/* 赠送积分 */
   $day = local_mktime(0,0,0,date("m"),date("d"),date("Y"));
   $last_time = $db -> getOne("select last_login from ".$ecs->table('users')." where user_name = '".$username."'");
   if($last_time < $day){
    log_account_change($_SESSION['user_id'], 0, 0, 0, 10, '每天登陆送积分', ACT_OTHER);
   }

15:如何在ecshop订单列表中列表出订单中所包含的商品编号.

回答:

    function get_user_orders($user_id, $num = 10, $start = 0)
{
    /* 取得订单列表 */
    $arr    = array();
    global $ecs;
global $db;
    $sql = "SELECT order_id, order_sn, order_status,consignee, shipping_status, pay_status, add_time, " .
           "(goods_amount + shipping_fee + insure_fee + pay_fee + pack_fee + card_fee + tax - discount) AS total_fee ".
           " FROM " .$GLOBALS['ecs']->table('order_info') .
           " WHERE user_id = '$user_id' ORDER BY add_time DESC";
    $res = $GLOBALS['db']->SelectLimit($sql, $num, $start);

    while ($row = $GLOBALS['db']->fetchRow($res))
    {
        if ($row['order_status'] == OS_UNCONFIRMED)
        {
            $row['handler'] = "<a href=\"user.php?act=cancel_order&order_id=" .$row['order_id']. "\" οnclick=\"if (!confirm('".$GLOBALS['_LANG']['confirm_cancel']."')) return false;\">".$GLOBALS['_LANG']['cancel']."</a>";
        }
        else if ($row['order_status'] == OS_SPLITED)
        {
            /* 对配送状态的处理 */
            if ($row['shipping_status'] == SS_SHIPPED)
            {
                @$row['handler'] = "<a href=\"user.php?act=affirm_received&order_id=" .$row['order_id']. "\" οnclick=\"if (!confirm('".$GLOBALS['_LANG']['confirm_received']."')) return false;\">".$GLOBALS['_LANG']['received']."</a>";
            }
            elseif ($row['shipping_status'] == SS_RECEIVED)
            {
                @$row['handler'] = '<span style="color:red">'.$GLOBALS['_LANG']['ss_received'] .'</span>';
            }
            else
            {
                if ($row['pay_status'] == PS_UNPAYED)
                {
                    @$row['handler'] = "<a href=\"user.php?act=order_detail&order_id=" .$row['order_id']. '">' .$GLOBALS['_LANG']['pay_money']. '</a>';
                }
                else
                {
                    @$row['handler'] = "<a href=\"user.php?act=order_detail&order_id=" .$row['order_id']. '">' .$GLOBALS['_LANG']['view_order']. '</a>';
                }

            }
        }
        else
        {
            $row['handler'] = '<span style="color:red">'.$GLOBALS['_LANG']['os'][$row['order_status']] .'</span>';
        }
        $row2 = $db -> getAll("select goods_id ,goods_sn from ".$ecs->table('order_goods')." where order_id = '".$row['order_id']."'");
        $row['shipping_status'] = ($row['shipping_status'] == SS_SHIPPED_ING) ? SS_PREPARING : $row['shipping_status'];
        $row['order_status'] = $GLOBALS['_LANG']['os'][$row['order_status']] . ',' . $GLOBALS['_LANG']['ps'][$row['pay_status']] . ',' . $GLOBALS['_LANG']['ss'][$row['shipping_status']];

        $arr[] = array('order_id'       => $row['order_id'],
                       'order_sn'       => $row['order_sn'],
                       'order_time'     => local_date($GLOBALS['_CFG']['time_format'], $row['add_time']),
                       'order_status'   => $row['order_status'],
       'consignee'   => $row['consignee'],
                       'total_fee'      => price_format($row['total_fee'], false),
        'goodslist'   => $row2,
                       'handler'        => $row['handler']);
    }

    return $arr;
}

16:如何取得ecshop会员一天内的评论条数

回答:

function get_day_count_comment($user_id = ''){

global $db;
global $ecs;
$pre = local_mktime(0,0,0,date("m"),date("d"),date("y"));
$next = local_mktime(0,0,0,date("m"),date("d")+2,date("y"));
 
$count = $db -> getOne("select count(*) from ".$ecs->table('comment')." where user_id = '$user_id' and add_time > '$pre' and add_time < '$next' ");

if($count > 5){
   return false;
}else{
   return true;
}
}

17:ecshop中js是如何验证radio选择.

回答:类似以下代码

/*
var businesstype = false;
var job_title = false;
var number_of_employees = false;


   for (i = 0; i < frm.elements.length; i ++ )
{
    if (frm.elements[i].name == 'businesstype' && frm.elements[i].checked)
    {
      businesstype = true;
    }

    if (frm.elements[i].name == 'job_title' && frm.elements[i].checked)
    {
      job_title = true;
    }
if (frm.elements[i].name == 'number_of_employees' && frm.elements[i].checked)
    {
      number_of_employees = true;
    }

if (frm.elements[i].name == 'number_of_employees' && frm.elements[i].checked)
    {
      number_of_employees = true;
    }
}
*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 设置修改 4 1.1 ECShop图片设置 4 1.2 去版权化 5 1.3 如何修改网站"欢迎光临本店" 11 1.4 如何去除ecshop底部查询信息的显示 11 1.5 后台管理删除no_license显示 11 1.6 如何发布站内新闻 13 1.7 如何修改网站logo 13 1.8 如何修改产品图片的大小 13 1.9 如何手动修改支付方式排列顺序 14 1.10 如何去除ecshop产品详细页产品点击率 14 1.11 首页、头部、底部模板文件名称 14 1.12 网站关闭了注册,如何修改“该网店暂停注册”字样 14 1.13 收货人详细信息js弹出框的提示脚本在哪个文件 14 1.14 网站公告代码段在那里 15 1.15 如何修改产品的库存 15 1.16 如何修改ecshop表的前缀 15 1.17 如何修改ecshop导航栏目名称 15 1.18 如何将最新产品栏目显示在导航栏里面? 15 1.19 如何更换ecshop模板 16 1.20 ecshop产品相关的图片有那几种 16 1.21 详细页面的积分 16 1.22 如何修改产品缩略图大小 16 1.23 如何设置ecshop货币格式和日期格式。 17 1.24 如何开取和关闭ecshop登陆验证码 17 1.25 如何修改个人帐户信息里面,出生年月的范围 17 1.26 ecshop中的模板中如何包含模板 17 1.27 如何调整ecshop flash播放器播放速度 18 1.28 ecshop2.7.3首页轮换图片如何管理 18 1.29 ecshop订单中,哪个字段是控制折扣的 18 1.30 如何显示销售排行 18 1.31 Notice:Undefined variable: _LANG in如何解决 19 1.32 ecshop flash播放器文件和图片在哪里? 19 1.33 如何将后台左侧菜单中的云服务中心删除掉 19 1.34 ecshop模板如何改变首页flash显示的大小? 20 1.35 ecshop模板中如何修改站内快讯标题的长度? 20 1.36 ecshop模板的首页热卖商品、新品上市等的数量在哪儿设置? 20 2 编程修改 21 2.1 如何新增PHP页面 21 2.2 调用指定分类下的精品、新品、热销 23 2.3 整合论坛 24 2.4 去掉ECShop购物流程中收货人电子邮箱必填项 25 2.5 货到付款设置说明 26 2.6 在ECSHOP首页的促销商品下显示促销时间 27 2.7 版本2.7.3相比2.7.2动了几个表 28 2.8 为每个商品设置最少购买量最小订购量 28 2.9 实现会员价格登陆才显示,且只显示和自己等级相符合的价格 32 2.10 生动讲解ecshop广告位的添加 33 2.11 商品详情页,根据不同商品分类调用不同模板 39 2.12 将Ecshop后台商品简单描述改成编辑器形式 40 2.13 商品描述上传中文名图片无法显示解决方法 42 2.14 如何将ECSHOP中的相对地址改为绝对地址 43 2.15 goods.php重命名 44 2.16 在Ecshop商品详情页显示当前会员等级价格 45 2.17 修改广告链接地址affiche.php为普通链接 46 2.18 如何让ecshop首页商品显示购买过的次数 47 2.19 不同级别客户看到不同的会员等级价格 54 2.20 分类描述使用FCKeditor作为编辑器 56 2.21 如何去掉ECSHOP帮助中心文章页的评论功能 57 2.22 ecshop 自定义分类模板的方法 59 2.23 多语言 62 2.24 实现自动选择语言转跳转 65 2.25 ecshop模板中如何调程序 66 2.26 ecshop如何实现不同商品调用不同模板 68 2.27 ecshop的SEO优化 69 3 开发说明 76 3.1 模板组常用SQL语句 76 3.2 商品详情页面属性价格显示其对应价格 76 3.3 设置ECSHOP支持货到付款 79 3.4 商品列表页判断商品是新品、精品、还是热销 80 3.5 如何把后台模板备份功能去掉 82 3.6 模板有的文章内容页不显示文字 82 3.7 验证邮件后送积分 82 3.8 任意文章页面显示所有文章分类 86 3.9 ecshop后台分页代码提取 87 3.10 增加批量修改成本价格,配合后台管理增加成本价和毛利润统计 90 3.11 商品批发增加起订数功能,设置购买数量 92 3.12 ECSHOP 手机号码怎么设置为必填选项 102 3.13 在ECSHOP后台会员列表中显示会员最后登录时间 105 3.14 如何给ecshop模板的文章加上分页 107 3.15 ecshop模板中如何实现悬浮分享 109 3.16 ecshop模板中如何实现报价 109 3.17 ecshop模板中如何实现局部刷新 112 3.18 模板随意调用文章 118 3.19 模板如何确保插入到数据库的文本是安全的 122 3.20 如何调出文章分类 122 3.21 显示指定分类下的文章 127 3.22 在ecshop商品详情页显示供货商 128 3.23 多彩模板[粉色]设置说明 129 3.24 轻松实现不同商品调用不同模板 132 3.25 商品分类下的销售排行 133 3.26 怎么样给文章增加权限 134 3.27 将文章列表改为显示内容提要 134 3.28 商品详情页显示所属品牌LOGO 135 3.29 ECSHOP模板在顶部会员登录时显示会员等级 136 3.30 常见问题汇总 139 3.31 ecshop模板如何让浏览历史按照先后排序? 139 3.32 ecshop添加一个30天销量的方法 139 3.33 ECSHOP模板首页商品显示购买过的次数 141 3.34 关于商品促销一人限购一件问题的解决方案 142 3.35 100问题汇总 146

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值