首页 > 网站 > 建站经验 > 正文

ecshop二次开发50个小技巧

2024-04-25 20:43:10
字体:
来源:转载
供稿:网友

ecshop二次开发50个小技巧,最模板提供

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'");

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']. "/" onclick=/"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']. "/" onclick=/"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;

}

}

*/

以上就是本文章的内容,希望对大家有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表