AL8 Forum
   登錄註冊幫助


標題: [D4.0 & 4.1] [原創] 承諾 (21/11更新)
 小康@HK
 0027215
Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7
點擊查看 小康@HK 的詳細資料

頭銜: Moderator

暱稱: 小康

帖子: 1219

精華: 0

積分: 13955 點

現金: 261 元

存款: 1019 元

閱讀權限: 100

註冊: 2005-7-26

來自: HK

狀態: 離線
 
發表於 2006-8-20 18:18  資料  個人空間  短消息  加為好友  添加 小康@HK 為MSN好友 通過MSN和 小康@HK 交談 ICQ 狀態 Yahoo!
[原創] 承諾 (21/11更新)

插件名稱: 承諾
適用版本: 4.1、(4.0唔知,成功請通知)
作  者: 小康
修  改: viewthread.php、misc.php、commoon.inc.php、discuzcode.func.php、newreply.inc.php、./archiver/include/thread.inc.php、post_bbinsert模版、./include/bbcode.js
用  途: 當會員在發主題時,如把內容使用了『承諾』,內容會被隱藏。如果不是版主或作者,其他會員如要瀏覽隱藏的內容,必須按下"承諾",才可看到內容。而瀏覽過那些隱藏內容後,必須回覆該主題,才可瀏覽論壇的其他地方。

QUOTE:
使用方法:
[promise]要隱藏的內容[/promise]

17/9: (_請重新裝第3步_)
21/11: (_更新第4步_)
1. 升級數據庫:
ALTER TABLE cdb_members ADD `promise` mediumint(8) unsigned NOT NULL DEFAULT '0';
ALTER TABLE cdb_threads ADD `promiseid` text NOT NULL DEFAULT '';

************************************************************************************
2.修改viewthread.php,找:
showmessage('thread_nonexistence');

上加:
if ($promise && $promise == $tid) $db->query("UPDATE {$tablepre}members SET promise='0' WHERE uid='$discuz_uid'");


找:
showmessage('thread_nopermission', NULL, 'NOPERM');

上加:
if ($promise && $promise == $tid) $db->query("UPDATE {$tablepre}members SET promise='0' WHERE uid='$discuz_uid'");

************************************************************************************
3. 修改misc.php,找:
} elseif($action == 'viewthreadmod' && $tid) {

上加:
} elseif($action == 'promise' && $tid) {
        if (!$discuz_uid) showmessage('not_loggedin');
        if ($promise) showmessage("你還有承諾主題未回覆!", "viewthread.php?tid={$promise}");

        $query = $db->query("SELECT * FROM {$tablepre}threads WHERE tid='$tid' AND displayorder>='0'");
        if(!$thread = $db->fetch_array($query)) {
                showmessage('thread_nonexistence');
        }
        $promiseid = explode(',', $thread[promiseid]);
        if ($discuz_uid && in_array($discuz_uid, $promiseid)) showmessage("你承諾過了,請返回!");

        $newpromiseid = !$thread[promiseid] ? $discuz_uid : $thread[promiseid].','.$discuz_uid;
        $db->query("UPDATE {$tablepre}threads SET promiseid='$newpromiseid' WHERE tid='$tid'");
        $db->query("UPDATE {$tablepre}members SET promise='$tid' WHERE uid='$discuz_uid'");
        showmessage("承諾成功!請在瀏覽內容後回覆,以履行承諾!", "viewthread.php?tid={$tid}");

************************************************************************************
4. 修改./include/common.inc.php,找(共兩處):
m.accessmasks

後加:
, m.promise


找:
newpm, accessmasks

後加:


找:

上加:
if ($promise && $promise != $tid && $action != 'logout' && $credits > 0) {
        showmessage("你還沒有履行承諾!", "viewthread.php?tid={$promise}");
}

************************************************************************************
5. 修改./include/discuzcode.func.php,找:
$maxsmilies, $db, $tablepre

後加:


找:
if(preg_match("/\[hide=?\d*\].+?\[\/hide\]/is", $message)) {

*這種是原始風格顯示,上加:
                if(preg_match("/\[promise\].+?\[\/promise\]/is", $message)) {
                        if (stristr($message, '[promise]')) {
                                $promiseid = explode(',', $thread[promiseid]);
                                $promisenum = !$thread[promiseid] ? 0 : count($promiseid);
                                if($GLOBALS['forum']['ismoderator'] || ($discuz_uid && in_array($discuz_uid, $promiseid)) || $thread[authorid] == $discuz_uid) {
                                        $message = preg_replace("/\[promise\]\s*(.+?)\s*\[\/promise\]/is",
                                                '<span class="bold">以下內容跟帖承諾後才能看到(承諾人數: '.$promisenum.')</span><br>'.
                                                '==============================<br><br>'.
                                                '\\1<br><br>'.
                                                '==============================',
                                                $message);
                                } else {
                                        $message = preg_replace("/\[promise\](.+?)\[\/promise\]/is", '<b>**** 本內容跟帖承諾後才可瀏覽,<a href="misc.php?action=promise&tid='.$tid.'">按此承諾『瀏覽內容後回覆』</a>(承諾人數: '.$promisenum.') *****</b>', $message);
                                }
                        }
                }

*美化版顯示,改成上加:
                if(preg_match("/\[promise\].+?\[\/promise\]/is", $message)) {
                        if (stristr($message, '[promise]')) {
                                $promiseid = explode(',', $thread[promiseid]);
                                $promisenum = !$thread[promiseid] ? 0 : count($promiseid);
                                $mha = "<br><fieldset style=\"padding: 5px;width:95%;border:1px solid ".BORDERCOLOR."\" align=\"center\"><legend><span class=\"smalltxt\"> 內容隱藏:承諾後才能看到 (承諾人數: ".$promisenum.") </span></legend><table width=\"100%\" cellpadding=\"5\"><tr><td>";
                                $mhb = "</td></tr></table></fieldset><br><br>";
                                if($GLOBALS['forum']['ismoderator'] || ($discuz_uid && in_array($discuz_uid, $promiseid)) || $thread[authorid] == $discuz_uid) {
                                        $message = preg_replace("/\[promise\]\s*(.+?)\s*\[\/promise\]/is",
                                                $mha."\\1".$mhb,
                                                $message);
                                } else {
                                        $message = preg_replace("/\[promise\](.+?)\[\/promise\]/is", $mha.'本內容跟帖承諾後才可瀏覽,<a href="misc.php?action=promise&tid='.$tid.'">按此承諾『瀏覽內容後回覆』</a>'.$mhb, $message);
                                }
                        }
                }


************************************************************************************
6. 修改./include/newreply.inc.php,找:
$message = preg_replace("/\[hide=?\d*\](.+?)\[\/hide\]/is", "[b]$language[post_hidden][/b]", $message);

上加:
$message = preg_replace("/\[promise\](.+?)\[\/promise\]/is", "[b]$language[post_hidden][/b]", $message);


找:
showmessage('post_thread_closed');

上加:
if ($promise && $promise == $tid) $db->query("UPDATE {$tablepre}members SET promise='0' WHERE uid='$discuz_uid'");


找:
showmessage($post_autoclose);

上加:
if ($promise && $promise == $tid) $db->query("UPDATE {$tablepre}members SET promise='0' WHERE uid='$discuz_uid'");


找:
!$allowuseblog || empty($isblog) ? showmessage('post_reply_succeed', "viewthread.php?tid=$tid&pid=$pid&page=".(@ceil(($thread['replies'] + 2) / $ppp))."&extra=$extra#pid$pid")

上加:
if ($promise && $promise == $tid) $db->query("UPDATE {$tablepre}members SET promise='0' WHERE uid='$discuz_uid'");

************************************************************************************
7. 修改./archiver/include/thread.inc.php,找:
QUOTE:
array('/&amp;(#\d{3,5};)/', "/\[hide=?\d*\](.+?)\[\/hide\]/is"),

前加:
QUOTE:
preg_replace(array('/&amp;(#\d{3,5};)/', "/\[promise\](.+?)\[\/promise\]/is"),array('&\\1', '<b>**** Hidden Message *****</b>'),


找:
$post['message'])));

換成:
$post['message']))));

承諾功能完成!!!
************************************************************************************
製作『承諾』按鈕

1. 修改post_bbinsert模版,找:
</td></tr><!--{/if}-->

按Enter將這句移到下一行,在前加:
<a href="javascript:promise()"><img src="{IMGDIR}/bb_promise.gif" border="0" alt="插入承諾"></a>

************************************************************************************
2. 修改./include/bbcode.js,找:
function setfocus() {

上加:
function promise()        {
        if (helpmode) {
                alert('將內容隱藏,非那區版主的會員必需承諾後才可看到內容。會員承諾後,必需回覆,否則不能瀏覽其他地方!\n例如:[promise]Discuz! 版權所有 - Crossday Studio[/promise]');
        } else if (getSelectedText()) {
                var range = document.selection.createRange();
                range.text = "[promise]" + range.text + "[/promise]";
        } else if (advmode)        {
                AddTxt="[promise][/promise]";
                AddText(AddTxt);
        } else {  
                txt=prompt("輸入要隱藏的內容:",text_input);
                if (txt!=null) {
                                AddTxt="[promise]"+txt;
                                AddText(AddTxt);
                                AddText("[/promise]");
                }
        }
}

3. 下載附件的按鈕,上傳到 ./images/模版名稱/
承諾按鈕完成!!!

[ 本帖最後由 小康@HK 於 2007-3-20 18:06 編輯 ]



 附件: 您所在的用戶組無法下載或查看附件



 AL8 Forum © All rights reserved.
頂部
 riva1993
 0041803
Rank: 4Rank: 4Rank: 4Rank: 4

頭銜: Lord

帖子: 342

精華: 0

積分: 437 點

現金: 2640 元

存款: 104 元

閱讀權限: 25

註冊: 2006-3-17

狀態: 離線
 
發表於 2006-8-20 18:24  資料  個人空間  主頁 短消息  加為好友  ICQ 狀態
好好呀!

下次裝^^

正!




 AL8 Forum © All rights reserved.
頂部
 是真是假
 0049314
Rank: 2Rank: 2

頭銜: Member

帖子: 71

精華: 0

積分: 470 點

現金: 162 元

存款: 0 元

閱讀權限: 15

註冊: 2006-8-5

狀態: 離線
 
發表於 2006-8-20 18:25  資料  個人空間  短消息  加為好友 
我知你地會唔明佢個用途係咩

即係= hide , 但是按下承諾=逼你回覆

[ 本帖最後由 是真是假 於 2006-8-20 18:33 編輯 ]




 AL8 Forum © All rights reserved.
頂部
 nonameandy
 0048187
 此發帖者已被禁止訪問

頭銜: Banned

帖子: 186

精華: 0

積分: 1340 點

現金: 554 元

存款: 0 元

閱讀權限: 0

註冊: 2006-7-17

狀態: 離線
 
發表於 2006-8-20 18:27  資料  個人空間  短消息  加為好友 
*** 作者被禁止或刪除 內容自動屏蔽 ***
 riva1993
 0041803
Rank: 4Rank: 4Rank: 4Rank: 4

頭銜: Lord

帖子: 342

精華: 0

積分: 437 點

現金: 2640 元

存款: 104 元

閱讀權限: 25

註冊: 2006-3-17

狀態: 離線
 
發表於 2006-8-20 18:27  資料  個人空間  主頁 短消息  加為好友  ICQ 狀態
QUOTE:
原帖由 是真是假 於 2006-8-20 18:25 發表。&nbsp;
我知你地會唔明佢個用途係咩
即係= hide , 但是按下承諾=逼你回覆


咁串咀= ="




 AL8 Forum © All rights reserved.
頂部
 小康@HK
 0027215
Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7
點擊查看 小康@HK 的詳細資料

頭銜: Moderator

暱稱: 小康

帖子: 1219

精華: 0

積分: 13955 點

現金: 261 元

存款: 1019 元

閱讀權限: 100

註冊: 2005-7-26

來自: HK

狀態: 離線
 
發表於 2006-8-20 18:28  資料  個人空間  短消息  加為好友  添加 小康@HK 為MSN好友 通過MSN和 小康@HK 交談 ICQ 狀態 Yahoo!
QUOTE:
原帖由 riva1993 於 2006-8-20 18:27 發表。&nbsp;

咁串咀= ="

人地幫緊我呀~
因為好難解釋呀~~~




 AL8 Forum © All rights reserved.
頂部
 riva1993
 0041803
Rank: 4Rank: 4Rank: 4Rank: 4

頭銜: Lord

帖子: 342

精華: 0

積分: 437 點

現金: 2640 元

存款: 104 元

閱讀權限: 25

註冊: 2006-3-17

狀態: 離線
 
發表於 2006-8-20 18:29  資料  個人空間  主頁 短消息  加為好友  ICQ 狀態
QUOTE:
原帖由 小康@HK 於 2006-8-20 18:28 發表。&nbsp;

人地幫緊我呀~
因為好難解釋呀~~~


好多野要改=.=

要慢慢黎..........




 AL8 Forum © All rights reserved.
頂部
 nonameandy
 0048187
 此發帖者已被禁止訪問

頭銜: Banned

帖子: 186

精華: 0

積分: 1340 點

現金: 554 元

存款: 0 元

閱讀權限: 0

註冊: 2006-7-17

狀態: 離線
 
發表於 2006-8-20 18:30  資料  個人空間  短消息  加為好友 
*** 作者被禁止或刪除 內容自動屏蔽 ***
 是真是假
 0049314
Rank: 2Rank: 2

頭銜: Member

帖子: 71

精華: 0

積分: 470 點

現金: 162 元

存款: 0 元

閱讀權限: 15

註冊: 2006-8-5

狀態: 離線
 
發表於 2006-8-20 18:34  資料  個人空間  短消息  加為好友 
QUOTE:
原帖由 nonameandy 於 2006-8-20 18:27 發表。&nbsp;
咁我可以唔怕人呃post!好!下次裝!

其實逼佢回覆,.佢都可以呃
不過呢個至少佢唔會睇完走左佢




 AL8 Forum © All rights reserved.
頂部
 TANK
 0044184
Rank: 4Rank: 4Rank: 4Rank: 4

頭銜: Lord

帖子: 341

精華: 0

積分: 4659 點

現金: 797 元

存款: 1000 元

閱讀權限: 25

註冊: 2006-4-28

狀態: 離線
 
發表於 2006-8-20 18:43  資料  個人空間  短消息  加為好友 
果然是好樣的插件
要強制回覆的承諾




 AL8 Forum © All rights reserved.
頂部
 riva1993
 0041803
Rank: 4Rank: 4Rank: 4Rank: 4

頭銜: Lord

帖子: 342

精華: 0

積分: 437 點

現金: 2640 元

存款: 104 元

閱讀權限: 25

註冊: 2006-3-17

狀態: 離線
 
發表於 2006-8-20 18:46  資料  個人空間  主頁 短消息  加為好友  ICQ 狀態
HELP

搵唔到$post['message'])));




 AL8 Forum © All rights reserved.
頂部
 riva1993
 0041803
Rank: 4Rank: 4Rank: 4Rank: 4

頭銜: Lord

帖子: 342

精華: 0

積分: 437 點

現金: 2640 元

存款: 104 元

閱讀權限: 25

註冊: 2006-3-17

狀態: 離線
 
發表於 2006-8-20 18:48  資料  個人空間  主頁 短消息  加為好友  ICQ 狀態
QUOTE:
原帖由 riva1993 於 2006-8-20 18:46 發表。&nbsp;
搵唔到$post['message'])));


SORRY

搵到啦= ="




 AL8 Forum © All rights reserved.
頂部
 riva1993
 0041803
Rank: 4Rank: 4Rank: 4Rank: 4

頭銜: Lord

帖子: 342

精華: 0

積分: 437 點

現金: 2640 元

存款: 104 元

閱讀權限: 25

註冊: 2006-3-17

狀態: 離線
 
發表於 2006-8-20 18:57  資料  個人空間  主頁 短消息  加為好友  ICQ 狀態
安裝失敗=0="

是否改錯了???



 附件: 您所在的用戶組無法下載或查看附件



 AL8 Forum © All rights reserved.
頂部
 sukibb
 0049566
 此發帖者已被禁止訪問

頭銜: Banned

暱稱: 桑高娜是也=]

自述: 我 是 朱 ...

帖子: 2164

精華: 0

積分: 1044 點

現金: 159 元

存款: 117 元

閱讀權限: 0

註冊: 2006-8-9

狀態: 離線
 
發表於 2006-8-20 19:01  資料  個人空間  短消息  加為好友  添加 sukibb 為MSN好友 通過MSN和 sukibb 交談
*** 作者被禁止或刪除 內容自動屏蔽 ***
 Jay.W
 0049861
Rank: 3Rank: 3Rank: 3

頭銜: Conqueror

帖子: 105

精華: 0

積分: 600 點

現金: 256 元

存款: 0 元

閱讀權限: 20

註冊: 2006-8-14

狀態: 離線
 
發表於 2006-8-20 20:39  資料  個人空間  主頁 短消息  加為好友  添加 Jay.W 為MSN好友 通過MSN和 Jay.W 交談
回覆第 13 帖由 riva1993 所發的帖子

提供四個方法
1.建議你重裝看看
2.可能有之前安裝的插件相衝到
3.後台更新緩衝
4.下載Discuz程式包,重新上傳thread.inc.php,在安裝一次插件
-------------
$post['message'])));
位於下列代碼附近
thread.inc.php
<?

        $query = $db->query("SELECT author, dateline, subject, message, anonymous
                FROM {$tablepre}posts
                WHERE tid='$tid' AND invisible='0'
                ORDER BY dateline LIMIT $start, $ppp");

        while($post = $db->fetch_array($query)) {
                $post['dateline'] = gmdate($_DCACHE['settings']['dateformat'].' '.$_DCACHE['settings']['timeformat'], $post['dateline'] + $_DCACHE['timeoffset'] * 3600);
                $post['message'] = ($post['subject'] ? '<b>'.$post['subject'].'</b><br><br>' : '').nl2br(preg_replace(array('/&(#\d{3,5};)/', "/\[hide=?\d*\](.+?)\[\/hide\]/is"),
                        array('&\\1', '<b>**** Hidden Message *****</b>'),
                        str_replace(array('&', '"', '<', '>', "\t", '   ', '  '),
                        array('&', '"', '&lt;', '&gt;', '&nbsp; &nbsp; &nbsp; &nbsp; ', '&nbsp; &nbsp;', '&nbsp;&nbsp;'),
                        $post['message'])));
                if($thread['jammer']) {
                        $post['message'] =  preg_replace("/\<br \/\>/e", "jammer()", $post['message']);
                }
                $post['author'] = !$post['anonymous'] ? $post['author'] : $lang['anonymous'];

?>




 AL8 Forum © All rights reserved.
頂部
 riva1993
 0041803
Rank: 4Rank: 4Rank: 4Rank: 4

頭銜: Lord

帖子: 342

精華: 0

積分: 437 點

現金: 2640 元

存款: 104 元

閱讀權限: 25

註冊: 2006-3-17

狀態: 離線
 
發表於 2006-8-20 20:51  資料  個人空間  主頁 短消息  加為好友  ICQ 狀態
搵唔到array('/&(#\d{3,5}/', "/\[hide=?\d*\](.+?)\[\/hide\]/is",



 附件: 您所在的用戶組無法下載或查看附件



 AL8 Forum © All rights reserved.
頂部