Log in

View Full Version : [How to] Guests can see the first message of a thread but not answers


cclaerhout
12-19-2005, 09:48 PM
For each thread opened, i don't want guests and some usergroups be able to see replies.

Result : i'm a guest looking a forum
I can see the first message of each thread, but i can't see any answer to it.

Is it possible to do that ; easily would be great :D

First edit :
On Vb.com, there is a little trick to do it with templates, but it would be better with a plugin system :D

http://www.vbulletin.com/forum/showpost.php?p=827751&postcount=4



Second edit :
P.S : the automerge function is not very convenient...


Here the solution i've found, but only with playing with conditionals in postbit template :


<if condition="$show['spacer']">
$spacer_open
<div id="edit$post[postid]" style="padding:0px 0px $stylevar[cellpadding]px 0px">
<if condition="!$post['islastshown']"><!-- this is not the last post shown on the page --></if>
</if>
<!-- Check if it's the first message of the thread-->
<if condition="$post[postcount] == 1">
<!-- / Check if it's the first message of the thread-->

<!-- modified postbit -->
Here you copy/paste your original postbit then you modify it. Don't forget to delete the spacer_open function that is already at the top. Idem for spacer_close (it's at the bottom of the file).
At the end of the modified postbit put this :

<!-- Warning restrict message according the forum and the usergroup -->

<if condition="in_array($GLOBALS[forumid], array(A,B,C,D)) AND !in_array($bbuserinfo[usergroupid], array(W,X,Y,Z))">

<table class="tborder" id="post$post[postid]" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center">
<tr>
<td class="alt1" align="center">
<span>Only premium members can read answers tho this thread</span>
</td>
</tr>
</table>
</if>
<!-- / Warning restrict message according the forum and the usergroup -->

<!-- / modified postbit -->

<else />

<!-- Not the first message of the thread -->

<!-- Check premium forums and usergroups-->
<if condition="in_array($GLOBALS[forumid], array(A,B,C,D)) AND !in_array($bbuserinfo[usergroupid], array(W,X,Y,Z))">
<!-- Check premium forums and usergroups-->
<else />

<!-- normal postbit -->
Here is your normal postbit. Don't forget to delete the spacer_open function that is already at the top of the file. Idem for spacer_close (it's at the bottom).
<!-- / normal postbit -->
</if>

<!-- / Not the first message of the thread -->
</if>

<if condition="$show['spacer']">
</div>
$spacer_close
</if>



Now i only have to do the same thing with printthreadbit template to avoid user bypass this protection but unfortunately i have difficulties ; the post[postcount] variable doesn't work in this template.

If someones has a solution for this or a new option with hook system for what i've done above, i'm still interested :D