字体:  

★●◆★超强插件:给你的论坛增加会员卡功能!(显示会员卡号码完美版)

fucenyuan 发表于: 2008-4-15 11:29 来源: SupeSite/X-Space官方站

给你的论坛增加VIP会员的功能,让你的论坛更高级!!
本插件版权归作者”猴子“所有


全新手动安装办法:(如未修改过原来的文件,直接覆盖附件中的文件即可!在此,建议大家用手动安装!)
下面是手动安装方法:


第一步:数据库升级语句
1、复制以下代码到后台数据库升级数据库:

CODE:

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;
2、复制以下代码到后台数据库升级数据库:

CODE:

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.找到:

CODE:

echo 'result = result.replace(/pageviews/g, \'<u>'.$lang['settings_creditsformula_pageviews'].'</u>\');';在其下面增加

CODE:

echo 'result = result.replace(/membercard/g, \'<u>拥有会员卡</u>\');';2.找到:

CODE:

<a href="###" onclick="insertunit(' pageviews ')"><?=$lang['settings_creditsformula_pageviews']?></a> 在其下面增加:

CODE:

<a href="###" onclick="insertunit(' membercard ')">拥有会员卡</a> 3.找到:

CODE:

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).';'))) {替换成:

CODE:

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.找到:

CODE:

$formulapermary[1] = preg_replace("/(digestposts|posts|pageviews|oltime|extcredits[1-8])/", "\$_DSESSION['\\1']", $formulapermnew);替换成:

CODE:

$formulapermary[1] = preg_replace("/(digestposts|posts|pageviews|membercard|oltime|extcredits[1-8])/", "\$_DSESSION['\\1']", $formulapermnew);保存文件

第三步:打开admin/menu.inc.php

1.找到:

CODE:

echo '</div><div id="others" style="display: none">';在其上面增加:

CODE:

                        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.找到:

CODE:

@eval("\$formulaperm = ($formula) ? TRUE : FALSE;");在其上面增加:

CODE:

        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.找到:

CODE:

                $search = array('$_DSESSION[\'digestposts\']', '$_DSESSION[\'posts\']', '$_DSESSION[\'oltime\']', '$_DSESSION[\'pageviews\']');
                $replace = array($language['formulaperm_digestposts'], $language['formulaperm_posts'], $language['formulaperm_oltime'], $language['formulaperm_pageviews']);
替换成:

CODE:

                $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.找到:

CODE:

if($inajax) {在其上面增加:

CODE:

$membercard = $db->fetch_array($db->query("SELECT * FROM {$tablepre}membercards WHERE uid='$uid' AND cardid<>'0'"));保存文件

第六步:打开templates/default/memcp_profile.htm
1.找到:

CODE:

{template personal_navbar}在其下面增加:

CODE:

        <!--{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.找到:

CODE:

                <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>
在其下面增加:

CODE:

                <!--{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.找到:

CODE:

<tr><th>{lang uid}:</th><td>$member[uid]在其下面增加:

CODE:

<!--{if $membercard}--> <font color="red">持证会员</font><!--{/if}-->保存文件

第九步:打开templates/default/viewpro_classic.htm
1.找到:

CODE:

<tr><th>{lang uid}:</th><td>$member[uid]在其下面增加:

CODE:

<!--{if $membercard}--> <font color="red">持证会员</font><!--{/if}--></td></tr>保存文件

第十步:打开templates/default/viewthread.htm
1.找到:

CODE:

<p>{eval showstars($post['stars']);}</p>在其下面增加:

CODE:

<!--{if $membercards[$post[authorid]]}--><p><font color="red">持证会员</font></p><!--{/if}-->保存文件

第十一步:打开admincp.php
1.找到:

CODE:

if($radminid != $groupid) {在其上面增加:

CODE:

                elseif($action == 'membercard') {
                        $cpscript = 'membercard';
                }
保存文件

第十二步:打开memcp.php
1.找到:

CODE:

$passport_status = $passport_status == 'shopex' && $passport_shopex ? '' : $passport_status;在其下面增加:

CODE:

        $membercard = $db->fetch_array($db->query("SELECT * FROM {$tablepre}membercards WHERE uid='$discuz_uid'"));
        $membercardstatus = unserialize($membercardstatus);
保存文件

第十三步:打开register.php
1.找到:

CODE:

$fromuid = !empty($_DCOOKIE['promotion']) && $creditspolicy['promotion_register'] ? intval($_DCOOKIE['promotion']) : 0;在其下面增加:

CODE:

$membercardstatus = unserialize($membercardstatus);2.找到:

CODE:

$password = md5($password);在其上面增加:

CODE:

        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.找到:

CODE:

if($regctrl || $regfloodctrl) {在其上面增加:

CODE:

        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.找到:

CODE:

$postlist[$post['pid']] = viewthread_procpost($post);在其下面增加:

CODE:

$authorids[] = $post['uid'];2.找到:

CODE:

        if($pagebydesc) {
                $postlist = array_reverse($postlist, TRUE);
        }
在其上面增加:

CODE:

        $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'];
        }
保存文件

最后一步:
1、如果是经过手动修改的,则将下面的第一个附件解压后传至服务器即可;
2、如果不想手动修改的,且没修改过相关文件,同时使用的是默认的风格,则可下载自动覆盖版的即可!


最后,在第二楼,我会附上相应的前后台设置的相关图片

在第三楼,会附上如何将会员卡相关数据显示在个人信息里

在第三楼,我将给大家介绍如何在个人信息中体现出会员卡的编号!


值得一提的是:很多朋友可能之前就装了个人信息美化插件,那在第十步的操作中,可能很多朋友都会找不到代码,那我会在第三楼详细讲解如何在装了个人信息美化插件后再使用此插件的方法,并会员卡相关数据完美体现在个人信息栏中!


完毕!

此插件为在“猴子”的基础上进行完善!如原作者有异议请提出!谢谢!

如果大家在安装过程中有遇到任何问题,可跟贴提出!




有人有意见了。
说我免费放出来
呵呵!需要免费版的朋友请到我的论坛下载!!
不好意思啊!各位朋友!


论坛地址:
http://bbs.ycsmvod.cn

已经免费放出!看图:


221.jpg



[ 本帖最后由 fucenyuan 于 2008-4-22 21:07 编辑 ]

会员卡V2.0.rar
(2008-04-15 11:29:11, Size: 141 KB, Downloads: 228)

会员卡V2.0自动覆盖版.rar
(2008-04-15 11:29:11, Size: 223 KB, Downloads: 160)

最新回复

fucenyuan at 2008-4-15 11:31:31
后台相关操作:

1、在后台的扩展设置最左边栏的最下面可以找到:


1.jpg



2.gif



2、后台设置中会员卡中的基本设置


3.jpg



3、后台设置中的会员卡列表


4.jpg



4、后台设置中的会员卡审核申请


5.jpg



前台相关操作:

1、前台在控制面板—编辑个人资料——最左边最下面可以看到会员卡相关信息


6.jpg


2、未生成会员卡信息:


8.jpg


3、已生成会员卡信息:


7.jpg



会员卡绑定后的个人信息栏中的显示效果:


9.jpg




顺便AD一下:
更多方法请进入我的论坛进行研讨!
http://bbs.ycsmvod.cn
相关附件也在我的论坛里可下!

版主,看在辛苦份上,不能加点分吗?


[ 本帖最后由 fucenyuan 于 2008-4-16 04:19 编辑 ]
fucenyuan at 2008-4-15 11:35:35
插件安装设置好后,如何体现在个人信息栏中:

一、如果不想显示会员卡编号,只需按照一楼相关操作即可

二、如果想在个人信息栏中显示会员卡编者按号,刚按以下操作:

     将第十步中的

QUOTE:

第十步:打开templates/default/viewthread.htm
1.找到:[code]<p>{eval showstars($post['stars']);}</p>[/code]在其下面增加:

CODE:

<!--{if $membercards[$post[authorid]]}--><p><font color="red">持证会员</font></p><!--{/if}-->保存文件
操作改为:
找到以下代码

CODE:

<p>{eval showstars($post['stars']);}</p>在其下面增加:

CODE:

<!--{if $membercards[$post[authorid]]}--><p align="center"><p><font color="red">持证会员</font></p><p align="center"><font color="blue" align="center"><b>卡号:</b></font><font color="red"><b>$membercards[$post[authorid]]</b></font></p><!--{/if}-->如果想显示成我那样的效果;(用图片进行显示,且居中显示!)(请自行下载下面附件中的VIP图片,然后放置在相应位置!)


online_vip.gif


则改为

CODE:

<!--{if $membercards[$post[authorid]]}--><p align="center"><img src="images/common/online_vip.gif" alt="" border="0" align="center"><font color="red" align="center">  <b>金卡会员</b></font></p><p align="center"><font color="blue" align="center"><b>卡号:</b></font><font color="red"><b>$membercards[$post[authorid]]</b></font></p><!--{/if}-->另外,值得一提的是:很多朋友可能之前就装了个人信息美化插件,那在第十步的操作中,可能很多朋友都会找不到代码,那我会在这里详细讲解如何在装了个人信息美化插件后再使用此插件的方法,并会员卡相关数据完美体现在个人信息栏中!

将第十步改为:

打开templates/default/snshow.htm(如果不是装在默认风格,刚在使用的风格文件夹中寻找)

查找以下代码:

CODE:

<!--{if $post['nickname']}--><p align="center">$post[nickname]</p><!--{/if}-->如果找不到,就查找:

CODE:

$post[nickname]</p><!--{/if}-->在其下面插入上面的相关代码即可!

在此处插入会员卡的相关数据为了美观好看!

这是我的会员卡效果图



9.jpg



[ 本帖最后由 fucenyuan 于 2008-4-17 18:01 编辑 ]
maierken at 2008-4-15 11:56:12
不错 是个好东西 先收藏 慢慢研究!
maierken at 2008-4-15 11:57:10
为自己预留一个演示位置!
fucenyuan at 2008-4-15 12:06:23
另外,还有一个小小的要求:
版主给点分吧!看在那么辛苦的份上!


顺便AD一下:
如需了解更详细的信息,请进入永诚点歌系统官方论坛!
如需下载附件,请进入永诚点歌系统
http://bbs.ycsmvod.cn

会员卡V2.0.rar
(2008-04-15 12:06:23, Size: 141 KB, Downloads: 0)

会员卡V2.0自动覆盖版.rar
(2008-04-15 12:06:23, Size: 223 KB, Downloads: 0)

〓偉◎耔〓 at 2008-4-15 12:15:35
爽啊!!这功能能不能绑定一个时间的.如:会员购买了一个月.到了一个月之后就自动取消..
天津数据 at 2008-4-15 12:24:41
收藏了谢谢楼主
真诚的小叶 at 2008-4-15 12:32:53
你这个会员卡名可以用中文显示,代码修改哪???
ym163 at 2008-4-15 12:49:25
你居然给拿来了 ,看猴子不生气。。。。
大大连连 at 2008-4-15 13:01:01
相当不错,万分感谢!!!
买空间网114 at 2008-4-15 14:52:09
不错哦,谢谢楼主提供哦,辛苦了
31558770 at 2008-4-15 15:00:34
做个标记回去就弄
闲散山人 at 2008-4-15 15:17:04
先致感谢,有空好好研究一下啦。
to9127 at 2008-4-15 21:34:12
问一个问题,卡号的长短如何控制,我这里,都是很长的
真诚的小叶 at 2008-4-15 21:39:54
到文件中修改即可,默认是15位。
to9127 at 2008-4-15 21:54:57
如何在贴子的个人信息里做成:
卡号: 卡号前缀
       起始编号
的格式
to9127 at 2008-4-15 21:59:20
楼上的可不可以说清楚些,在哪个文件里修改
真诚的小叶 at 2008-4-15 23:01:35
membercard.inc.php
vtx at 2008-4-15 23:34:08
我见过最好的插件。。。永远超级无敌支持你。。。谢谢。。收藏好。。。如何辛苦也要安装成功。。。
jy02791737 at 2008-4-15 23:48:45
收藏了真的不错已经安装成功了