列印

會員卡插件 V2.0 FOR 6.0 手動安裝方法

會員卡插件 V2.0 FOR 6.0 手動安裝方法

from: http://www.discuz.net/thread-837189-1-2.html

插件版權歸作者「猴子」所有

整理 by Linux0911


文章內、個人資料頁、編輯個人資料裡面都會顯示


後台在 → 擴展設置裡面 設定發卡數量
引用:
反安裝升級資料庫:
複製內容到剪貼簿
代碼:
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

如果你新安裝了風格中包含需要修改的模板檔案,則需另行修改
修改檔案需仔細


開始安裝 (此插件極為繁複, 建議新手不要安裝, 安裝前請先備份檔案)

下載附件根據需求上傳附件

你喜歡手動修改的, 就傳 "手動修改的人只要上傳這個資料夾內的檔案" 資料夾裡面的檔案就可以了 (依結構上傳即可)
不想改這麼多檔案的, 直接上傳 "已改好的檔案" 裡面的檔案就可以了 (依結構上傳即可)

UTF-8 用戶請在修改時存成 UTF-8 編碼

1. 修改 ./admin/forums.inc.php
找到:
複製內容到剪貼簿
代碼:
echo 'result = result.replace(/pageviews/g, \'<u>'.$lang['settings_creditsformula_pageviews'].'</u>\');';
下面增加:
複製內容到剪貼簿
代碼:
// 會員卡插件 V2.0 - START
                echo 'result = result.replace(/membercard/g, \'<u>擁有會員卡</u>\');';
// 會員卡插件 V2.0 - END
找到:
複製內容到剪貼簿
代碼:
<a href="###" onclick="insertunit(' pageviews ')"><?=$lang['settings_creditsformula_pageviews']?></a>
下面增加:
複製內容到剪貼簿
代碼:
<!--// 會員卡插件 V2.0 - START -->
<a href="###" onclick="insertunit(' membercard ')">擁有會員卡</a>
<!--// 會員卡插件 V2.0 - END -->
找到:
複製內容到剪貼簿
代碼:
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).';'))) {
替換成:
複製內容到剪貼簿
代碼:
/* 會員卡插件 V2.0 - START
                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).';'))) {
// 會員卡插件 V2.0 - END
找到:
複製內容到剪貼簿
代碼:
$formulapermary[1] = preg_replace("/(digestposts|posts|pageviews|oltime|extcredits[1-8])/", "\$_DSESSION['\\1']", $formulapermnew);
替換成:
複製內容到剪貼簿
代碼:
/* 會員卡插件 V2.0 - START
                $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);
// 會員卡插件 V2.0 - END
儲存檔案



2. 修改 ./admin/menu.inc.php
找到:
複製內容到剪貼簿
代碼:
echo '</div><div id="others" style="display: none">';
上面增加:
複製內容到剪貼簿
代碼:
// 會員卡插件 V2.0 - START
                        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')));
// 會員卡插件 V2.0 - END
儲存檔案



3. 修改 ./include/global.func.php
找到:
複製內容到剪貼簿
代碼:
@eval("\$formulaperm = ($formula) ? TRUE : FALSE;");
上面增加:
複製內容到剪貼簿
代碼:
// 會員卡插件 V2.0 - START
        global $db, $tablepre, $discuz_uid;
        $_DSESSION['membercard'] = $db->result($db->query("SELECT count(*) FROM {$tablepre}membercards WHERE uid='$discuz_uid' AND cardid<>'0'"), 0);
// 會員卡插件 V2.0 - END
找到:
複製內容到剪貼簿
代碼:
                $search = array('$_DSESSION[\'digestposts\']', '$_DSESSION[\'posts\']', '$_DSESSION[\'oltime\']', '$_DSESSION[\'pageviews\']');
                $replace = array($language['formulaperm_digestposts'], $language['formulaperm_posts'], $language['formulaperm_oltime'], $language['formulaperm_pageviews']);
替換成:
複製內容到剪貼簿
代碼:
/* 會員卡插件 V2.0 - START
                $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'], '擁有會員卡');
// 會員卡插件 V2.0 - END
儲存檔案



4. 修改 ./include/viewpro.inc.php
找到:
複製內容到剪貼簿
代碼:
if($inajax) {
上面增加:
複製內容到剪貼簿
代碼:
// 會員卡插件 V2.0 - START
$membercard = $db->fetch_array($db->query("SELECT * FROM {$tablepre}membercards WHERE uid='$uid' AND cardid<>'0'"));
// 會員卡插件 V2.0 - END
儲存檔案



5. 修改 ./templates/default/memcp_profile.htm
找到:
複製內容到剪貼簿
代碼:
{template personal_navbar}
下面增加:
引用:
<!--// 會員卡插件 V2.0 - START -->
<!--{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><span style="color: red">持證會員</span><br />會員卡號碼: $membercard[cardno]</center>
                </div>
        <!--{/if}-->
<!--{/if}-->
<!--// 會員卡插件 V2.0 - END -->
儲存檔案



6. 修改 ./templates/default/register.htm
找到:
複製內容到剪貼簿
代碼:
                <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>
下面增加:
複製內容到剪貼簿
代碼:
<!--// 會員卡插件 V2.0 - START -->
                <!--{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}-->
<!--// 會員卡插件 V2.0 - END -->
儲存檔案



7. 修改 ./templates/default/viewpro.htm
找到:
複製內容到剪貼簿
代碼:
<tr><th>{lang uid}:</th><td>$member[uid]
下面增加:
複製內容到剪貼簿
代碼:
<!--// 會員卡插件 V2.0 - START -->
<!--{if $membercard}--> <span style="color: red">持證會員</span><!--{/if}-->
<!--// 會員卡插件 V2.0 - END -->
儲存檔案



8. 修改 ./templates/default/viewpro_classic.htm
找到:
複製內容到剪貼簿
代碼:
<tr><th>{lang uid}:</th><td>$member[uid]
下面增加:
複製內容到剪貼簿
代碼:
<!--// 會員卡插件 V2.0 - START -->
<!--{if $membercard}--> <span style="color: red">持證會員</span><!--{/if}--></td></tr>
<!--// 會員卡插件 V2.0 - END -->
儲存檔案



9. 修改 ./templates/default/viewthread.htm
找到:
複製內容到剪貼簿
代碼:
<p>{eval showstars($post['stars']);}</p>
下面增加:
複製內容到剪貼簿
代碼:
<!--// 會員卡插件 V2.0 - START -->
<!--{if $membercards[$post[authorid]]}--><p><span style="color: red">持證會員</span></p><!--{/if}-->
<!--// 會員卡插件 V2.0 - END -->
儲存檔案



10. 修改 admincp.php
找到:
複製內容到剪貼簿
代碼:
if($radminid != $groupid) {
上面增加:
複製內容到剪貼簿
代碼:
// 會員卡插件 V2.0 - START
                elseif($action == 'membercard') {
                        $cpscript = 'membercard';
                }
// 會員卡插件 V2.0 - END
儲存檔案



11. 修改 memcp.php
找到:
複製內容到剪貼簿
代碼:
$passport_status = $passport_status == 'shopex' && $passport_shopex ? '' : $passport_status;
下面增加:
複製內容到剪貼簿
代碼:
// 會員卡插件 V2.0 - START
        $membercard = $db->fetch_array($db->query("SELECT * FROM {$tablepre}membercards WHERE uid='$discuz_uid'"));
        $membercardstatus = unserialize($membercardstatus);
// 會員卡插件 V2.0 - END
儲存檔案



12. 修改 register.php
找到:
複製內容到剪貼簿
代碼:
$fromuid = !empty($_DCOOKIE['promotion']) && $creditspolicy['promotion_register'] ? intval($_DCOOKIE['promotion']) : 0;
下面增加:
複製內容到剪貼簿
代碼:
// 會員卡插件 V2.0 - START
$membercardstatus = unserialize($membercardstatus);
// 會員卡插件 V2.0 - END
找到:
複製內容到剪貼簿
代碼:
$password = md5($password);
上面增加:
複製內容到剪貼簿
代碼:
// 會員卡插件 V2.0 - START
        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('會員卡不存在,請返回。');
                        }
        }
// 會員卡插件 V2.0 - END
找到
複製內容到剪貼簿
代碼:
if($regctrl || $regfloodctrl) {
上面增加:
複製內容到剪貼簿
代碼:
// 會員卡插件 V2.0 - START
        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'");
                        }
        }
// 會員卡插件 V2.0 - END
儲存檔案


13. 修改 viewthread.php
找到:
複製內容到剪貼簿
代碼:
$postlist[$post['pid']] = viewthread_procpost($post);
下面增加:
複製內容到剪貼簿
代碼:
// 會員卡插件 V2.0 - START
                $authorids[] = $post['uid'];
// 會員卡插件 V2.0 - END
找到:
複製內容到剪貼簿
代碼:
        if($pagebydesc) {
                $postlist = array_reverse($postlist, TRUE);
        }
上面增加:
複製內容到剪貼簿
代碼:
// 會員卡插件 V2.0 - START
        $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'];
        }
// 會員卡插件 V2.0 - END
儲存檔案


修改完畢

[ 本帖最後由 zhujinyan 於 2008-1-20 18:53 編輯 ]
附件: 您所在的用戶組無法下載或查看附件
Hack 安裝錯誤, 80% 來自粗心, 請專心安裝
Linux0911 打造您的個性論壇

本人現在忙於研究所, 沒多的時間管論壇, 有問題別發 pm 給我, 謝謝~
Linux0911 Forum © 2004-2009 All Rights Reserved.

TOP



論壇聲明
  • 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
    如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
    請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!
最佳瀏覽解析度:不低於 1024 (最佳 1280 以上).(支援 IE 7, Mozilla Firefox, Safari, Chrome)
The Best Surfing Resolution: No Lower than 1024 (Best: above 1280).(IE 7, Mozilla Firefox, Safari, Chrome Supported)