好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

收货人信息的省市区设成非必选项  

一般面向国外用户的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);   

 }   

 }  

修改程序文件 

修改 /inlcudes/lib_order.php 文件,将下列PHP代码删除掉

PHP Code 复制内容到剪贴板

if  ( $res )   

 {   

  if  ( empty empty ( $consignee [ 'province' ]))   

 {   

  /* 没有设置省份,检查当前国家下面有没有设置省份 */   

  $pro  = get_regions(1,  $consignee [ 'country' ]);   

  $res  =  empty empty ( $pro );   

 }   

  elseif  ( empty empty ( $consignee [ 'city' ]))   

 {   

  /* 没有设置城市,检查当前省下面有没有城市 */   

  $city  = get_regions(2,  $consignee [ 'province' ]);   

  $res  =  empty empty ( $city );   

 }   

  elseif  ( empty empty ( $consignee [ 'district' ]))   

 {   

  $dist  = get_regions(3,  $consignee [ 'city' ]);   

  $res  =  empty empty ( $dist );   

 }   

 }  

然后收货人信息那里,只选择国家不选择省市区,也照样能提交。 

修改底部的在线人数  

建站之初,网站的在线人数肯定不会很多,那么我们可以稍微修改下ECSHOP的程序,让页面底部显示的在线人数 翻几番。 

具体方法如下: 

打开 /includes/lib_insert.php文件,找到下面代码

PHP Code 复制内容到剪贴板

$online_count  =  $GLOBALS [ 'db' ]->getOne( "SELECT COUNT(*) FROM "  .  $GLOBALS [ 'ecs' ]->table( 'sessions' ));  

将之修改为:

PHP Code 复制内容到剪贴板

$online_count  =  $GLOBALS [ 'db' ]->getOne( "SELECT COUNT(*) FROM "  .  $GLOBALS [ 'ecs' ]->table( 'sessions' ))*15;  


这样,你的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 );   

}  

在它下面增加一行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]} 调用。

查看更多关于分享几个Ecshop中二次开发的常见方法的详细内容...

  阅读:48次