PDA

View Full Version : Forums Access Options


Valter
08-29-2005, 07:48 PM
There was hack for vB 3.0.x called "Forums Access Options"

It was originally created by Grog6 who is not active anymore on this forums.
Now I think original thread is deleted.

The hack required 5 simple file edits.
It requires running 1 sql query.
It requires adding 3 phrases.
No template edits.

Can someone make plugin for 3.5 from this instructions:

With this hack, you can choose the minimum number of posts a user must have to access a forum, the minimum number of posts he must have to be able to create new threads, and the minimum number of posts he must have to be able to reply in this forum


##################
# SQL QUERY #
################

Run this SQL query on your database (don't forget to add a prefix to forum's table if you use a prefix on your board database) :

*********************************************
ALTER TABLE `forum` ADD `access_nb` INT( 5 ) DEFAULT '0' NOT NULL ,
ADD `create_nb` INT( 5 ) DEFAULT '0' NOT NULL ,
ADD `reply_nb` INT( 5 ) DEFAULT '0' NOT NULL ;
*********************************************




########################
# ADD OF PHRASES #
######################

In the part : Languages & Phrases > Phrase Manager, add these phrases :

*********************************************
Type : GLOBAL
Varname : forum_access_nb
Text : Minimum posts to access this forum
<dfn>Minimum number of posts the user must have to be able to access this forum</dfn>
*********************************************
Type : GLOBAL
Varname : forum_create_nb
Text : Minimum posts to create threads in this forum
<dfn>Minimum number of posts the user must have to be able to create a new thread in this forum</dfn>
*********************************************
Type : GLOBAL
Varname : forum_reply_nb
Text : Minimum posts to reply in this forum
<dfn>Minimum number of posts the user must have to be able to reply in this forum</dfn>
*********************************************




###################################
# FILES MODIFICATIONS #
#################################


In admincp/forum.php, find :

*********************************************
print_yes_no_row($vbphrase['can_have_password'], 'options[canhavepassword]', $forum['canhavepassword']);
*********************************************

Add below :

*********************************************
print_input_row($vbphrase['forum_access_nb'], 'forum[access_nb]', $forum['access_nb']);
print_input_row($vbphrase['forum_create_nb'], 'forum[create_nb]', $forum['create_nb']);
print_input_row($vbphrase['forum_reply_nb'], 'forum[reply_nb]', $forum['reply_nb']);
*********************************************




In forumdisplay.php, find :

*********************************************
eval('print_output("' . fetch_template('FORUMDISPLAY') . '");');
*********************************************


and replace with :

*********************************************
if ($foruminfo[access_nb]<=$bbuserinfo[posts] || $bbuserinfo[usergroupid]==6)
eval('print_output("' . fetch_template('FORUMDISPLAY') . '");');
else print_no_permission();
*********************************************




In newthread.php, find :

*********************************************
eval('print_output("' . fetch_template('newthread') . '");');
*********************************************


and replace with :

*********************************************
if ($foruminfo[create_nb]<=$bbuserinfo[posts] || $bbuserinfo[usergroupid]==6)
eval('print_output("' . fetch_template('newthread') . '");');
else print_no_permission();
*********************************************



In newreply.php, find :

*********************************************
eval('print_output("' . fetch_template('newreply') . '");');
*********************************************


and replace with :

*********************************************
if ($foruminfo[reply_nb]<=$bbuserinfo[posts] || $bbuserinfo[usergroupid]==6)
eval('print_output("' . fetch_template('newreply') . '");');
else print_no_permission();
*********************************************



In showthread.php, find :

*********************************************
eval('print_output("' . fetch_template('SHOWTHREAD') . '");');
*********************************************


and replace with :

*********************************************
if ($foruminfo[reply_nb]<=$bbuserinfo[posts] || $bbuserinfo[usergroupid]==6)
eval('print_output("' . fetch_template('SHOWTHREAD') . '");');
else print_no_permission();
*********************************************

Thanks

Andreas
08-29-2005, 07:50 PM
Not necessary at all, can be done with Promotions.

Valter
08-29-2005, 08:02 PM
Not necessary at all, can be done with Promotions.
I know but sometimes users doesn't know that Promotions needs to be executed in Scheduled Tasks..... and then they asks "My post count is xx now but i can not access xx forum".

And in vB Options it says it is not recommended to set Promotions Task to run every 1 minute.

House_of_Crazed
08-30-2005, 12:16 AM
Well, that's because if you set it to run every minute, it'll more likely push the server to the maximum...

I suggest like every 20 minutes, maybe 30...

You can use conditionals and put up something in the header template saying "Congrauations you have gotten xx posts, you will be awarded access to the xx forum within the next 20 or 30 minutes."

macooper
09-08-2005, 01:59 PM
What hard work. I use this hack because it is simple to manage. I tried doing the same thing with promotions, but had to setup over 20 new groups to do something that can be managed much more logically and conveniently on the forum itself.

Anyway, I don't yet have a way of setting this up for vb3.5 as a module, as I have only upgraded this morning. But I have modified the files to make this work with vb3.5 rc 2 using the following instructions


#################################################
# FORUMS ACCESS OPTIONS #
# v1.0 #
# #
# VB 3.0.0 GOLD #
# #
# http://www.vbulletindev.net #
# Grog6 #
#################################################


With this hack, you can choose the minimum number of posts a user must have to access a forum, the minimum number of posts he must have to be able to create new threads, and the minimum number of posts he must have to be able to reply in this forum


##################
# SQL QUERY #
################

Run this SQL query on your database (don't forget to add a prefix to forum's table if you use a prefix on your board database) :

*********************************************
ALTER TABLE `forum` ADD `access_nb` INT( 5 ) DEFAULT '0' NOT NULL ,
ADD `create_nb` INT( 5 ) DEFAULT '0' NOT NULL ,
ADD `reply_nb` INT( 5 ) DEFAULT '0' NOT NULL ;
*********************************************




########################
# ADD OF PHRASES #
######################

In the part : Languages & Phrases > Phrase Manager, add these phrases :

*********************************************
Type : GLOBAL
Varname : forum_access_nb
Text : Minimum posts to access this forum
<dfn>Minimum number of posts the user must have to be able to access this forum</dfn>
*********************************************
Type : GLOBAL
Varname : forum_create_nb
Text : Minimum posts to create threads in this forum
<dfn>Minimum number of posts the user must have to be able to create a new thread in this forum</dfn>
*********************************************
Type : GLOBAL
Varname : forum_reply_nb
Text : Minimum posts to reply in this forum
<dfn>Minimum number of posts the user must have to be able to reply in this forum</dfn>
*********************************************




###################################
# FILES MODIFICATIONS #
#################################


In admincp/forum.php, find :

*********************************************
print_yes_no_row($vbphrase['can_have_password'], 'options[canhavepassword]', $forum['canhavepassword']);
*********************************************

Ajoutez en dessous :

*********************************************
print_input_row($vbphrase['forum_access_nb'], 'forum[access_nb]', $forum['access_nb']);
print_input_row($vbphrase['forum_create_nb'], 'forum[create_nb]', $forum['create_nb']);
print_input_row($vbphrase['forum_reply_nb'], 'forum[reply_nb]', $forum['reply_nb']);
*********************************************




In forumdisplay.php, find :

*********************************************
eval('print_output("' . fetch_template('FORUMDISPLAY') . '");');
*********************************************


and replace with :

*********************************************
if ($foruminfo[access_nb]<=$vbulletin->userinfo[posts] || $vbulletin->userinfo[usergroupid]==6)
eval('print_output("' . fetch_template('FORUMDISPLAY') . '");');
else print_no_permission();
*********************************************




In newthread.php, find :

*********************************************
eval('print_output("' . fetch_template('newthread') . '");');
*********************************************


and replace with :

*********************************************
if ($foruminfo[create_nb]<=$vbulletin->userinfo[posts] || $vbulletin->userinfo[usergroupid]==6)
eval('print_output("' . fetch_template('newthread') . '");');
else print_no_permission();
*********************************************



In newreply.php, find :

*********************************************
eval('print_output("' . fetch_template('newreply') . '");');
*********************************************


and replace with :

*********************************************
if ($foruminfo[reply_nb]<=$vbulletin->userinfo[posts] || $vbulletin->userinfo[usergroupid]==6)
eval('print_output("' . fetch_template('newreply') . '");');
else print_no_permission();
*********************************************




That's all
Enjoy
Grog6


All I have done so far is edit the original instructions to work with vb3.5, I have tried to contact the original author, but cannot, so I thought I'd reply with this. I will eventually port the hack properly to vb3.5, but have too many other things to sort out right at the moment.

Andreas
09-08-2005, 04:47 PM
This can be easily done as a Plugin - no need for File Edits.

Valter
09-08-2005, 04:54 PM
Thanks macooper but you need to add yet one file edit:

In showthread.php, find :

*********************************************
eval('print_output("' . fetch_template('SHOWTHREAD') . '");');
*********************************************


and replace with :

*********************************************
if ($foruminfo[reply_nb]<=$vbulletin->userinfo[posts] || $vbulletin->userinfo[usergroupid]==6)
eval('print_output("' . fetch_template('SHOWTHREAD') . '");');
else print_no_permission();
*********************************************


Without this, users with no permissions CAN view threads if they know exact url. Also "next thread" and "previous thread" can be used to see other threads. Also if you search for some user's posts you'll be able to open listed threads. I fixed this problem on 3.0.x by editing showthread.php as shown above.


This can be easily done as a Plugin - no need for File Edits.
It would be great if someone can make it.

Regards,

Cyb

Valter
09-22-2005, 12:36 AM
Released as plugin few days ago:
https://vborg.vbsupport.ru/showthread.php?t=96523