前言:
使用过discuz!论坛程序朋友的应该都知道,后台“运营”里有个生成充值卡密的功能,用户可以通过卡密充值的方式获取论坛金币。论坛管理员一般都是后台导出充值卡密,然后拿到自动发卡平台寄售的,而discuz!论坛程序默认导出的是excel表格数据,而发卡平台只支持导入txt文本格式的数据,如此一来就需要手工把excel表格里的数据编写成发卡平台可以使用的txt文本,可以说是相当麻烦的,因此我们可以修改一下discuz!的代码,直接导出我们需要的txt文本卡密就可以了。
打开文件:source/admincp/admincp_card.php
1、搜索代码 } elseif ($operation == 'export'){ ,这个括号里的代码就是导出充值卡密的代码,我们修改成如下:
/*导出到txt文本*/ $sqladd = cardsql(); $_GET['start'] = intval($_GET['start']); $count = $sqladd ? C::t('common_card')->count_by_where($sqladd) : C::t('common_card')->count(); if($count) { $cardtype = C::t('common_card_type')->range(); $count = min(10000, $count); $content=""; $i=1; foreach(C::t('common_card')->fetch_all_by_where($sqladd, $_GET['start'], $count) as $result) { //使用[.=]拼接字符串 $no=date("Ymd").$result['extcreditsval'].$i; $content .=$no." ".$result['id']."\r\n"; $i++; } $filename = 'card_'.date('Ymd', TIMESTAMP).'.txt'; ob_end_clean(); header('Content-Encoding: none'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.$filename); header('Pragma: no-cache'); header('Expires: 0'); if($_G['charset'] != 'gbk') { $content = diconv($content, $_G['charset'], 'GBK'); } echo $content; exit(); }
2、导出来的txt文本效果如图:
卡号是使用日期+序号,一般的发卡平台都需要填写卡号和卡密。
3、大家也可以直接复制粘贴整个admincp_card.php文件的代码,完整的admincp_card.php请在附件里下载!
请登录之后再进行评论