Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[发布] 密碼帖 For Discuz 7.2 (教你設定帖子需密碼才能瀏覽)

[复制链接]
chtois 发表于 2010-3-15 18:23:47 | 显示全部楼层 |阅读模式
插件发布
插件名称: 密碼帖
插件来源:
适用版本: Discuz! 7.2
语言编码: GBK简体 UTF8简体 BIG5繁体 
最后更新时间:
插件作者: 不詳
插件简介: 支持任意密碼及答案.
支持回答正確後,第二次訪問不必再次驗證.
支持用戶權限.
支持普通主題無影響.
良好的前台顯示.
本帖最后由 chtois 于 2010-3-15 19:26 编辑

相信很多人一定需要這種功能,這個插件我不是原作,只是看到Discuz.net好像都沒有,所以放上來與大家免費分享。

這插件的目的,就是要讀帖子時,必須先輸入密碼,而密碼的取得,就看你是否要放在其他帖子裡告知大家,或是透過短消息與你索取。

演示:http://www.footybbs.com/?fromuid=1 (請到發帖測試區隨便發文)
帳號:test
密碼:test
下面會有圖片教學

功能說明:
  支持任意密碼及答案.
  支持回答正確後,第二次訪問不必再次驗證.
  支持用戶權限.
  支持普通主題無影響.
  良好的前台顯示.

第一步修改viewthread.php
  1. while($post = $sdb->fetch_array($query)) {
复制代码
下面增加
  1. $user = array();

  2.                 $on = $passstr = $ons = null;

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

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

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

  6.                         unset($user[0]);

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

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

  9.                         }else {

  10.                                 $user = array();

  11.                         }

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

  13.                         //讓遊客永遠為假.

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

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

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

  17.                                 if($ons === 2){

  18.                                         $user[] =$discuz_uid;

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

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

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

  22.                                 }else {

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

  24.                                 }

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

  26.                         $post['htmlon'] = 1;

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

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

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

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

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

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

  33.                         </ul></form>';

  34.                         }

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

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

  37.                 }
复制代码
上面的字是繁體中文,如果你需要簡體,請自行修改即可,沒幾個字的。

第二步:後台

界面->編輯器設置->discuz代碼
新增一個標籤,名稱叫 pass
新增完後,進入"詳情"去編輯內容:
替換內容請輸入:
[pass=1]{1}[pass][pass=2]{2}[pass]
參數個數請輸入2
參數提示語
請輸入你的信息密碼:
請輸入你的信息答案:

參數提示語你看自己需求修改字串,主要是信息答案要輸入正確,才能看到此篇帖子內容。
如果懶得看文字,請看圖片,跟我設定一樣即可。
圖標圖案,你可以用我做的,或是自己做一個。

將圖片放到images/common下



演示圖:




歡迎各位到我的論壇測試。
這個插件,目前我發現有各小問題,就是當發表圖片時,圖片在還沒輸入密碼前,仍然會被看到,所以目前只對文字有用。
如果有人會2次修改,歡迎提出。

請大家有沒有下載,喜歡的話,回覆一下,我希望能看到自己的帖子一直在版面前面喔。

謝謝大家賞光看帖!

Kiss bye

评分

3

查看全部评分

hongjun521 发表于 2010-3-15 18:33:02 | 显示全部楼层
这个不错  支持了
回复

使用道具 举报

xuezhou118 发表于 2010-3-15 18:36:41 | 显示全部楼层
70怎么修改,楼主能说下么?谢谢
回复

使用道具 举报

ilei365 发表于 2010-3-15 18:56:46 | 显示全部楼层
路过,支持下。

评分

1

查看全部评分

回复

使用道具 举报

 楼主| chtois 发表于 2010-3-15 19:09:04 | 显示全部楼层
路过,支持下。
ilei365 发表于 2010-3-15 18:56



    我沒有安裝7.0喔,你可以看一下這個檔案viewthread.php
如果找的到代碼的話,應該都是可以共用的。
回复

使用道具 举报

shukai2010 发表于 2010-3-15 21:56:56 | 显示全部楼层
很棒啊,7.1测试通过。楼主很无私,感谢中。。。
回复

使用道具 举报

hk2123 发表于 2010-3-15 22:17:04 | 显示全部楼层
THANK`6.0有沒有~
回复

使用道具 举报

 楼主| chtois 发表于 2010-3-16 08:43:44 | 显示全部楼层
THANK`6.0有沒有~
hk2123 发表于 2010-3-15 22:17



    6.0應該不能用喔,詳細你要看看viewthread.php中,相對應的代碼可否找到?

目前知道是7.0,7.1,7.2是可以用的。
回复

使用道具 举报

tesky 发表于 2010-3-16 08:49:18 | 显示全部楼层
回复

使用道具 举报

minnurse 发表于 2010-3-16 09:32:11 | 显示全部楼层
非绿色插件
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-16 10:24 , Processed in 0.037038 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表