附件下载地址:https://discuz.dismall.com/thread-836032-1-1.html
本插件版权归作者”猴子“所有
注意:如果你要卸载插件的时候才运行反安装语句!
安装的时候不要忘记运行V2.0新加的数据库升级!
反安装升级数据库:- DROP TABLE `cdb_membercards`;
复制代码 帖子里面的显示方法在viewthread.htm里面改,放在哪大家自由发挥吧
$post[authortitle] 用户组
$post[avatar] 等级
$post[customstatus 自定义头衔
$post[nickname] 昵称
下面是手动安装方法:
数据库升级语句- CREATE TABLE `cdb_membercards` (
- `cardid` char(15) NOT NULL,
- `dateline` int(10) unsigned NOT NULL,
- `uid` mediumint(8) unsigned NOT NULL,
- `update` int(10) unsigned NOT NULL,
- PRIMARY KEY (`cardid`,`uid`),
- KEY `dateline` (`dateline`),
- KEY `update` (`update`)
- ) TYPE=MyISAM;
复制代码 V2.0 新增- ALTER TABLE `cdb_membercards` ADD COLUMN `cardno` CHAR(20) NOT NULL FIRST;
- ALTER TABLE `cdb_membercards` ADD INDEX `cardno` (`cardno`);
复制代码 可通过论坛系统设置 数据库 -> 数据库升级 处执行本 SQL 语句
新增文件:
admin/membercard.inc.php
membercard.php
修改文件:
admin/forums.inc.php
admin/menu.inc.php
include/global.func.php
include/viewpro.inc.php
templates/default/memcp_profile.htm
templates/default/register.htm
templates/default/viewpro.htm
templates/default/viewpro_classic.htm
templates/default/viewthread.htm
admincp.php
memcp.php
register.php
viewthread.php
如果你新安装了风格中包含需要修改的模板文件,则需另行修改
修改文件需仔细
打开admin/forums.inc.php
1.找到:- echo 'result = result.replace(/pageviews/g, \'<u>'.$lang['settings_creditsformula_pageviews'].'</u>\');';
复制代码 下面增加:- echo 'result = result.replace(/membercard/g, \'<u>拥有会员卡</u>\');';
复制代码 2.找到:- <a href="###" onclick="insertunit(' pageviews ')"><?=$lang['settings_creditsformula_pageviews']?></a>
复制代码 下面增加:- <a href="###" onclick="insertunit(' membercard ')">拥有会员卡</a>
复制代码 3.找到:- if($formulapermnew && !preg_match("/^(\+|\-|\*|\/|\.|>|<|=|\d|\s|extcredits[1-8]|digestposts|posts|pageviews|oltime|and|or)+$/", $formulapermnew) || !is_null(@eval(preg_replace("/(digestposts|posts|pageviews|oltime|extcredits[1-8])/", "\$\\1", $formulapermnew).';'))) {
复制代码 替换成:- if($formulapermnew && !preg_match("/^(\+|\-|\*|\/|\.|>|<|=|\d|\s|extcredits[1-8]|digestposts|posts|pageviews|membercard|oltime|and|or)+$/", $formulapermnew) || !is_null(@eval(preg_replace("/(digestposts|posts|pageviews|membercard|oltime|extcredits[1-8])/", "\$\\1", $formulapermnew).';'))) {
复制代码 4.找到:- $formulapermary[1] = preg_replace("/(digestposts|posts|pageviews|oltime|extcredits[1-8])/", "\$_DSESSION['\\1']", $formulapermnew);
复制代码 替换成:- $formulapermary[1] = preg_replace("/(digestposts|posts|pageviews|membercard|oltime|extcredits[1-8])/", "\$_DSESSION['\\1']", $formulapermnew);
复制代码 保存文件
打开admin/menu.inc.php
1.找到:- echo '</div><div id="others" style="display: none">';
复制代码 上面增加:- showmenu('会员卡', array(
- array('name' => '会员卡基本设置', 'url' => 'admincp.php?action=membercard&do=condition'),
- array('name' => '会员卡列表', 'url' => 'admincp.php?action=membercard'),
- array('name' => '会员卡申请审核', 'url' => 'admincp.php?action=membercard&do=modreg')));
复制代码 保存文件
打开include/global.func.php
1.找到:- @eval("\$formulaperm = ($formula) ? TRUE : FALSE;");
复制代码 上面增加:- global $db, $tablepre, $discuz_uid;
- $_DSESSION['membercard'] = $db->result($db->query("SELECT count(*) FROM {$tablepre}membercards WHERE uid='$discuz_uid' AND cardid<>'0'"), 0);
复制代码 2.找到:- $search = array('$_DSESSION[\'digestposts\']', '$_DSESSION[\'posts\']', '$_DSESSION[\'oltime\']', '$_DSESSION[\'pageviews\']');
- $replace = array($language['formulaperm_digestposts'], $language['formulaperm_posts'], $language['formulaperm_oltime'], $language['formulaperm_pageviews']);
复制代码 替换成:- $search = array('$_DSESSION[\'digestposts\']', '$_DSESSION[\'posts\']', '$_DSESSION[\'oltime\']', '$_DSESSION[\'pageviews\']', '$_DSESSION[\'membercard\']');
- $replace = array($language['formulaperm_digestposts'], $language['formulaperm_posts'], $language['formulaperm_oltime'], $language['formulaperm_pageviews'], '拥有会员卡');
复制代码 保存文件
打开include/viewpro.inc.php
1.找到:上面增加:- $membercard = $db->fetch_array($db->query("SELECT * FROM {$tablepre}membercards WHERE uid='$uid' AND cardid<>'0'"));
复制代码 保存文件
打开templates/default/memcp_profile.htm
1.找到:- {template personal_navbar}
复制代码 下面增加:- <!--{if $membercardstatus[$groupid]}-->
- <!--{if !$membercard && $membercardstatus[$groupid] == 1}-->
- <div style="padding:5px">
- <form method="post" action="membercard.php?action=apply">
- <input type="hidden" name="formhash" value="{FORMHASH}">
- 会员卡号码:<input type="text" name="cardno"><br />
- 会员卡密码:<input type="text" name="cardid"><br />
- <center><button type="submit">绑定会员卡</button></center>
- </form>
- </div>
- <!--{elseif !$membercard && $membercardstatus[$groupid] == 2}-->
- <div style="padding:5px">
- <form method="post" action="membercard.php?action=register">
- <input type="hidden" name="formhash" value="{FORMHASH}">
- 您可以申请会员卡了,是否提出申请?
- <center><button type="submit">申请会员卡</button></center>
- </form>
- </div>
- <!--{elseif $membercard && $membercardstatus[$groupid] == 2 && $membercard[cardid] == '0'}-->
- <div style="padding:5px">
- <!--{if $membercard[update]}-->
- <form method="post" action="membercard.php?action=apply">
- <input type="hidden" name="formhash" value="{FORMHASH}">
- 您已获准使用会员卡<br />
- 会员卡号码:<input type="text" name="cardno"><br />
- 会员卡密码:<input type="text" name="cardid"><br />
- <center><button type="submit">绑定会员卡</button></center>
- </form>
- <!--{else}-->
- 您的会员卡申请还未通过审核,请等候管理员审核
- <!--{/if}-->
- </div>
- <!--{else}-->
- <div style="padding:5px">
- <center><font color="red">持证会员</font><br />会员卡号码: $membercard[cardno]</center>
- </div>
- <!--{/if}-->
- <!--{/if}-->
复制代码 保存文件
打开templates/default/register.htm
1.找到:- <tr>
- <th><label for="advshow">{lang register_advanced_options}</label></th>
- <td><label><input id="advshow" name="advshow" class="checkbox" type="checkbox" $advcheck value="1" onclick="showadv()" tabindex="12" />{lang register_advanced_options_comment}</label></td>
- </tr>
复制代码 下面增加:- <!--{if $membercardstatus[7] == 1}-->
- <tr>
- <th><label for="cardno">会员卡号码</th>
- <td><label><input id="cardno" name="cardno" type="text" name="cardno"></td>
- </tr>
- <tr>
- <th><label for="cardid">会员卡密码</th>
- <td><label><input id="cardid" name="cardid" type="text" name="cardid"></td>
- </tr>
- <!--{/if}-->
复制代码 保存文件
打开templates/default/viewpro.htm
1.找到:- <tr><th>{lang uid}:</th><td>$member[uid]
复制代码 下面增加:- <!--{if $membercard}--> <font color="red">持证会员</font><!--{/if}-->
复制代码 保存文件
打开templates/default/viewpro_classic.htm
1.找到:- <tr><th>{lang uid}:</th><td>$member[uid]
复制代码 下面增加:- <!--{if $membercard}--> <font color="red">持证会员</font><!--{/if}--></td></tr>
复制代码 保存文件
打开templates/default/viewthread.htm
1.找到:- <p>{eval showstars($post['stars']);}</p>
复制代码 下面增加:- <!--{if $membercards[$post[authorid]]}--><p><font color="red">持证会员</font></p><!--{/if}-->
复制代码 保存文件
打开admincp.php
1.找到:- if($radminid != $groupid) {
复制代码 上面增加:- elseif($action == 'membercard') {
- $cpscript = 'membercard';
- }
复制代码 保存文件
打开memcp.php
1.找到:- $passport_status = $passport_status == 'shopex' && $passport_shopex ? '' : $passport_status;
复制代码 下面增加:- $membercard = $db->fetch_array($db->query("SELECT * FROM {$tablepre}membercards WHERE uid='$discuz_uid'"));
- $membercardstatus = unserialize($membercardstatus);
复制代码 保存文件
打开register.php
1.找到:- $fromuid = !empty($_DCOOKIE['promotion']) && $creditspolicy['promotion_register'] ? intval($_DCOOKIE['promotion']) : 0;
复制代码 下面增加:- $membercardstatus = unserialize($membercardstatus);
复制代码 2.找到:- $password = md5($password);
复制代码 上面增加:- if($membercardstatus[7] == 1 && $cardno && $cardid) {
- $membercard = $db->result($db->query("SELECT count(*) FROM {$tablepre}membercards WHERE uid='0' AND cardno='$cardno' AND cardid='$cardid'"), 0);
- if(!$membercard) {
- showmessage('会员卡不存在,请返回。');
- }
- }
复制代码 3.找到:- if($regctrl || $regfloodctrl) {
复制代码 上面增加:- if($membercardstatus[7] == 1 && $cardno && $cardid) {
- $db->query("UPDATE {$tablepre}membercards SET uid='$uid', `update`='$timestamp' WHERE cardid='$cardid'");
- $membercardcondition = unserialize($membercardcondition);
- if($membercardcondition[7]) {
- $db->query("UPDATE {$tablepre}members SET groupid='{$membercardcondition[7]}' WHERE uid='$uid'");
- }
- }
复制代码 保存文件
打开viewthread.php
1.找到:- $postlist[$post['pid']] = viewthread_procpost($post);
复制代码 下面增加:- $authorids[] = $post['uid'];
复制代码 2.找到:- if($pagebydesc) {
- $postlist = array_reverse($postlist, TRUE);
- }
复制代码 上面增加:- $authorids = implodeids(array_unique($authorids));
- $query = $db->query("SELECT uid, cardno FROM {$tablepre}membercards WHERE uid IN ($authorids) AND cardid<>'0'");
- while($membercard = $db->fetch_array($query)) {
- $membercards[$membercard['uid']] = $membercard['cardno'];
- }
复制代码 保存文件

修改完毕
[ 本帖最后由 zhujinyan 于 2008-1-26 10:41 编辑 ] |