1) 添加一种新的红包类型4 , 文件 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; }
/* 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来修改。
|