免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享
Board logo

標題: [討論] [繁化]你的主題加上信息密碼(discuz 7.0 實用版) [打印本頁]

作者: 冰楓幻羽    時間: 2013-1-12 23:09     標題: [繁化]你的主題加上信息密碼(discuz 7.0 實用版)

轉載:http://www.alan888.com/Discuz/thread-170013-1-1.html
另求高手幫忙轉成7.2~
功能說明:
  支持任意密碼及答案.
  支持回答正確後,第二次訪問不必再次驗證.
  支持用戶權限.
  支持普通主題無影響.
  良好的前台顯示.

  這功能同樣可以引入到discuz上來.現在讓我們一起來感受一下比較實用的信息密碼吧.
演示


第一步viewthread.php)
查找:
while($post = $sdb->fetch_array($query)) {
在它的下一行增加:
            
$user = array();

                $on = $passstr = $ons = null;

                if($post['first']==1 && strpos($post['message'],'[pass=')!==false && $on === null){

                        preg_match('/\[pass=(.*)\](.*)\[\/pass\]/isU',$post['message'],$passstr);

                        preg_match('/\[user\](.*)\[\/user\]/isU',$post['message'],$user);

                        unset($user[0]);

                        if(isset($user[1])){

                                $user = explode(',',$user[1]);

                        }else {

                                $user = array();

                        }

                        count($passstr)!==3 && $ons = 1;

                        //讓遊客永遠為假.

                        isset($discuz_uid)===false && $ons = 3;

                        if($ons === null && in_array($discuz_uid,$user)===false && isset($passs)){

                                $passs === $passstr[2] && $ons = 2;

                                if($ons === 2){

                                        $user[] =$discuz_uid;

                                        $user = implode(',',$user);

                                        $post['message'] = strtr($post['message'],array('[/pass]'=>"[/pass][user]{$user}[/user]"));

                                        $db->query("UPDATE `{$tablepre}posts` SET `message` = '{$post['message']}' WHERE `pid` = '{$post['pid']}'");

                                }else {

                                        showmessage('你的答案錯誤,請重新輸入',dreferer());

                                }

                        }elseif (in_array($discuz_uid,$user)===false || $ons === 3) {

                        $post['htmlon'] = 1;

                        $post['message'] = '<br /><br /><br />

                        <form action="viewthread.php?tid='.$tid.'" enctype="application/x-www-form-urlencoded" method="post">

                        <ul style="border:1px solid #FC3; background-color:#F3F9E6;padding:8px;">

                        <li style="list-style:none; color:red">信息密碼: '.$passstr[1].'</li>

                        <li style="list-style:none;"><input name="passs" type="text" value="請輸入信息答案" onclick="this.value=\'\';this.onclick=\'\'" /><input type="submit" value="提交答案" /></li>

                        <li style="list-style:none;color:#06F; font-size:12px;">提示: 只有輸入用戶所設置的信息答案,才可查看用戶的主題內容</li>

                        </ul></form>';

                        }

                        //最後將部分內容清除:

                        $post['message'] = preg_replace(array('/\[pass=.*\].*\[\/pass\]/isU','/\[user\].*\[\/user\]/isU'),'',$post['message']);

                }
第二步:後台
界面->編輯器設置->discuz代碼
部分說明:
替換內容代碼: [pass=1]{1}[pass][pass=2]{2}[pass]
參數提示語
請輸入你的信息密碼:
請輸入你的信息答案:
複製代碼其它說明: 目前在前台的編輯器圖標我暫時就隨便用了一個, 如果自己願意可以編輯一個圖標, 然後把名字改一下..
使用方法: 用戶可點擊編輯器上的按紐來設置.
發現許多人安裝有問題.這裡提示一下:
是pass 不是pess
作者: 达人小G    時間: 2013-1-12 23:42

谢谢分享,7.2的路过~
作者: pigeon    時間: 2013-1-13 07:33

是呀,都是7.2了
作者: liangweisee    時間: 2013-1-13 08:04

谢谢您分享先。
作者: bonimon    時間: 2013-1-13 08:43

SCLUB免费论坛不能修改php文档,故此类修改于SCLUB无效。
作者: 章鱼    時間: 2013-1-13 14:23

你怎么改PHP
作者: bourbon    時間: 2013-1-15 14:47

谢谢分享,7.2的路过~
作者: tommy850924    時間: 2013-2-16 02:12

可惜~我想要得說




歡迎光臨 SCLUB免費論壇申請-使用者論壇 (http://six168.com/discuz/) Powered by Discuz! 7.2