最模板 - 外贸网站建设,外贸网站模板

最模板

当前位置: 首页 > 建站教程 > CMS教程 > ECShop教程 >

ecshop 添加可多次使用的红包步骤

时间:2014-06-10 11:03来源: 作者: 点击:
1) 添加一种新的红包类型 4 , 文件 admin/templates/bonus_type_info.htm 找到 inputtype="radio"name="send_type"value="0"{if$bonus_arr.send_typeeq0}checked="true"{/if}onClick="showunit(0)"/{$lang.send_by[0]} inputtype="radio"name=
(责任编辑:admin)

 1) 添加一种新的红包类型

文件 admin/templates/bonus_type_info.htm 找到

  <input type="radio" name="send_type" value="0" {if $bonus_arr.send_type eq 0} checked="true" {/if} onClick="showunit(0)"  />{$lang.send_by[0]}

      <input type="radio" name="send_type" value="1" {if $bonus_arr.send_type eq 1} checked="true" {/if} onClick="showunit(1)"  />{$lang.send_by[1]}

      <input type="radio" name="send_type" value="2" {if $bonus_arr.send_type eq 2} checked="true" {/if} onClick="showunit(2)"  />{$lang.send_by[2]}

      <input type="radio" name="send_type" value="3" {if $bonus_arr.send_type eq 3} checked="true" {/if} onClick="showunit(3)"  />{$lang.send_by[3]}

     在其后面添加

<input type="radio" name="send_type" value="4" {if $bonus_arr.send_type eq 4} checked="true" {/if} onClick="showunit(4)"  />通用红包多次使用

2) 生成这类红包字符串

增加文件 admin/templates/bonus_by_print_phpsir.htm 

修改文件 admin/bonus.php 找到

 elseif ($_REQUEST['send_by'] == SEND_BY_PRINT)

    {

        $smarty->assign('type_list',    get_bonus_type());

$smarty->display('bonus_by_print.htm');

}

在其后添加

     elseif ($_REQUEST['send_by'] == 4)

    {

        $smarty->assign('type_list',    get_bonus_type_phpsir());

$smarty->display('bonus_by_print_phpsir.htm');

    }

3) 增加 get_bonus_type_phpsir 函数 

文件 admin/includes/lib_main.php

function get_bonus_type_phpsir()

{

    $bonus = array();

    $sql = 'SELECT type_id, type_name, type_money FROM ' . $GLOBALS['ecs']->table('bonus_type') .

           ' WHERE send_type = 4';

    $res = $GLOBALS['db']->query($sql);

while ($row = $GLOBALS['db']->fetchRow($res))

    {

        $bonus[$row['type_id']] = $row['type_name'].' [' .sprintf($GLOBALS['_CFG']['currency_format'], $row['type_money']).']';

    }

 return $bonus;

}

4)  bonus.php 里面找到 

if ($_REQUEST['act'] == 'send_by_print')

{

...........................

}

在其后面添加,处理增加这类红包时候生成方法

if ($_REQUEST['act'] == 'send_by_print_phpsir')

{

    @set_time_limit(0);

/* 红下红包的类型ID和生成的数量的处理 */

    $bonus_typeid = !empty($_POST['bonus_type_id']) ? $_POST['bonus_type_id'] : 0;

    $bonus_sum    = !empty($_POST['bonus_sum'])     ? $_POST['bonus_sum']     : 1;

/* 生成红包序列号 */

for ($i = 0, $j = 0; $i < $bonus_sum; $i++)

    {

        $bonus_sn = $_POST['bonus_txt'];

        $db->query("INSERT INTO ".$ecs->table('user_bonus')." (bonus_type_id, bonus_sn) VALUES('$bonus_typeid', '$bonus_sn')");

$j++;

    }

 /* 记录管理员操作 */

    admin_log($bonus_sn, 'add', 'userbonus');

  /* 清除缓存 */

    clear_cache_files();

 /* 提示信息 */

    $link[0]['text'] = $_LANG['back_bonus_list'];

    $link[0]['href'] = 'bonus.php?act=bonus_list&bonus_type=' . $bonus_typeid;

sys_msg($_LANG['creat_bonus'] . $j . $_LANG['creat_bonus_num'], 0, $link);

}

5) 修改 bonus.php 让后台显示红包内容

if ($_REQUEST['act'] == 'bonus_list')

{

...........................

}

if ($_REQUEST['act'] == 'query_bonus')

{

...........................

}

在里面增加

 if ($bonus_type['send_type'] == 4)

    {

        $smarty->assign('show_bonus_sn', 1);

}

至此 后台部分完成。

前台部分 修改 

includes/lib_order.php

function bonus_info($bonus_id, $bonus_sn = '')

{

    $sql = "SELECT t.*, b.* " .

            "FROM " . $GLOBALS['ecs']->table('bonus_type') . " AS t," .

                $GLOBALS['ecs']->table('user_bonus') . " AS b " .

            "WHERE t.type_id = b.bonus_type_id    ";

if ($bonus_id > 0)

    {

        $sql .= " AND b.bonus_id = '$bonus_id'";

        $row = $GLOBALS['db']->getRow($sql);

        return $row;

    }

    else

    {

        $sql .= " AND b.bonus_sn = '$bonus_sn'";

        $row = $GLOBALS['db']->getRow($sql);

    }

 if($row['send_type'] == 4) // phpsir 如果是第4类型红包,那么就找一个未使用的红包,这种红包可被多次使用,不限制每人使用次数

    {

        $sess_userid = $_SESSION["user_id"];

        $sql = "SELECT t.*, b.* " .

                "FROM " . $GLOBALS['ecs']->table('bonus_type') . " AS t," .

                    $GLOBALS['ecs']->table('user_bonus') . " AS b " .

                "WHERE t.type_id = b.bonus_type_id  and b.used_time = 0  ";

        if ($bonus_id > 0)

        {

            $sql .= "AND b.bonus_id = '$bonus_id'";

        }

        else

        {

            $sql .= "AND b.bonus_sn = '$bonus_sn'";

        }

//print $sql;

$row = $GLOBALS['db']->getRow($sql);

        //var_dump($row);

        return $row;

}


// 
如果想每人只使用N次,请用下面的部分

/*

if($row['send_type'] == 4) // phpsir 如果是第4类型红包,那么就找一个未使用的红包,这种红包可被多次使用,不限制每人使用次数

    {

        $sess_userid = $_SESSION["user_id"];

        $sql = "SELECT t.*, b.* " .

                "FROM " . $GLOBALS['ecs']->table('bonus_type') . " AS t," .

                    $GLOBALS['ecs']->table('user_bonus') . " AS b " .

                "WHERE t.type_id = b.bonus_type_id  and b.user_id = '$sess_userid'   and  b.bonus_sn = '$bonus_sn' ";

        $rows = $GLOBALS['db']->getAll($sql);

        $allow_used_bonus_num = 2; // 最大允许使用次数

        if(count($rows) >= $allow_used_bonus_num )

        {

            return false;

        }else{

            $sql = "SELECT t.*, b.* " .

                    "FROM " . $GLOBALS['ecs']->table('bonus_type') . " AS t," .

                        $GLOBALS['ecs']->table('user_bonus') . " AS b " .

                    "WHERE t.type_id = b.bonus_type_id  and b.used_time = 0   and  b.bonus_sn = '$bonus_sn' ";

            $row = $GLOBALS['db']->getRow($sql);

            return $row;

        }

 }

*/ 

return $row;

}

注意:修改PHP文件时候不要用记事本打开,否则文件编码会出问题导致网站报错,建议用专业的dreamweaver来修改。

 

 


  

------分隔线----------------------------
栏目列表
推荐内容