插件发布
插件名称: |
密碼帖 |
插件来源: |
|
适用版本: |
Discuz! 7.2 |
语言编码: |
GBK简体 UTF8简体 BIG5繁体 |
最后更新时间: |
|
插件作者: |
不詳 |
插件简介: |
支持任意密碼及答案.
支持回答正確後,第二次訪問不必再次驗證.
支持用戶權限.
支持普通主題無影響.
良好的前台顯示. |
本帖最后由 chtois 于 2010-3-15 19:26 编辑
相信很多人一定需要這種功能,這個插件我不是原作,只是看到Discuz.net好像都沒有,所以放上來與大家免費分享。
這插件的目的,就是要讀帖子時,必須先輸入密碼,而密碼的取得,就看你是否要放在其他帖子裡告知大家,或是透過短消息與你索取。
演示:http://www.footybbs.com/?fromuid=1 (請到發帖測試區隨便發文)
帳號:test
密碼:test
下面會有圖片教學
功能說明:
支持任意密碼及答案.
支持回答正確後,第二次訪問不必再次驗證.
支持用戶權限.
支持普通主題無影響.
良好的前台顯示.
第一步修改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
新增完後,進入"詳情"去編輯內容:
替換內容請輸入:
[pass=1]{1}[pass][pass=2]{2}[pass]
參數個數請輸入2
參數提示語
請輸入你的信息密碼:
請輸入你的信息答案:
參數提示語你看自己需求修改字串,主要是信息答案要輸入正確,才能看到此篇帖子內容。
如果懶得看文字,請看圖片,跟我設定一樣即可。
圖標圖案,你可以用我做的,或是自己做一個。
將圖片放到images/common下
演示圖:
歡迎各位到我的論壇測試。
這個插件,目前我發現有各小問題,就是當發表圖片時,圖片在還沒輸入密碼前,仍然會被看到,所以目前只對文字有用。
如果有人會2次修改,歡迎提出。
請大家有沒有下載,喜歡的話,回覆一下,我希望能看到自己的帖子一直在版面前面喔。
謝謝大家賞光看帖!
Kiss bye |
评分
-
3
查看全部评分
-
|