cclaerhout |
12-19-2005 09:48 PM |
[How to] Guests can see the first message of a thread but not answers
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/showp...51&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 :
HTML Code:
<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
|