 
- 積分
- 335
- 威望
- 335
- 金錢
- 149
- 最後登錄
- 2017-10-27
|
[討論] [繁化]你的主題加上信息密碼(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 |
|