限制游客查看Discuz!帖子完整内容

标签:Discuz!

方法是别人的,参照下面,我只是稍微改进了下,可以设置隐藏条件,仅用于Discuz!6.1。
原帖地址:http://www.discuz.net/thread-1051063-1-1.html

打开viewthread.htm模板,搜索:
<!--{if $bannedmessages && (($post['authorid'] && !$post['username']) || ($post['groupid'] == 4 || $post['groupid'] == 5))}-->
	<div class="notice" style="width: 500px">{lang admin_message_banned}</div>
<!--{elseif $post['status'] & 1}-->
	<div class="notice" style="width: 500px">{lang admin_message_single_banned}</div>
<!--{/if}-->
在下面加上:
<!--{if $post['number'] == 1 && $typetemplate}-->$typetemplate<!--{/if}-->
<!--{if $post['number'] == 1}-->
<!--{if $discuz_uid || $post[fid] != 8 || strlen($post[message]) < 1000}-->
<div id="postmessage_$post[pid]" class="t_msgfont">$post[message]</div>
<!--{else}-->
<div id="postmessage_$post[pid]" class="t_msgfont" style=" height:300px; overflow:hidden">$post[message]
</div><BR />
<div style="text-align:center; line-height:30px; border:1px solid #99CC00">本区属于私人地带,欲查看全部内容请<a href="$link_login"><font color="#FF0000">{lang login}</font></a>或者<a href="$link_register"><font color="#FF0000">$reglinkname</font></a></div>
<!--{/if}-->
<!--{else}-->
<div id="postmessage_$post[pid]" class="t_msgfont">$post[message]</div>
<!--{/if}-->
解释一下:
$post['number'] == 1:判断是不是楼主的帖。
$discuz_uid || $post[fid] != 8 || strlen($post[message]) < 1000:这个就是限制条件了
$discuz_uid:游客的$discuz_uid为0
$post[fid] != 8:$post变量取的是posts表,里面的字段都能使用,fid指的是版块id,你可以设置tid、pid,甚至还能用针对某人的uid
strlen($post[message]) < 1000:只隐藏字数少于1000的帖
height:300px:只为游客显示300像素高的内容

以上按自己需求更改即可。

此外,这个只是隐藏了显示,看源代码还是可以看到的。
搜索引擎貌似也能读取到隐藏内容,百度快照甚至直接就把隐藏部分显示出来了。
所以这并不是什么安全性很高的方法,真正需要隐藏的东西,可以用自带的hide代码。

0条评论 你不来一发么↓

    想说点什么呢?