Go Back   vb.org Archive > Community Discussions > Modification Requests/Questions (Unpaid)
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 08-29-2005, 07:48 PM
Valter Valter is offline
 
Join Date: Aug 2005
Location: Sarajevo
Posts: 2,432
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Forums Access Options

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:

PHP Code:
With this hackyou can choose the minimum number of posts a user must have to access a forumthe 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 `forumADD `access_nbINT) DEFAULT '0' NOT NULL ,
ADD `create_nbINT) DEFAULT '0' NOT NULL ,
ADD `reply_nbINT) DEFAULT '0' NOT NULL ;
*********************************************




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

In the part Languages Phrases Phrase Manageradd 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.phpfind :

*********************************************
    
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.phpfind :

*********************************************
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.phpfind :

*********************************************
    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.phpfind :

*********************************************
    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.phpfind :

*********************************************
    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
Reply With Quote
  #2  
Old 08-29-2005, 07:50 PM
Andreas's Avatar
Andreas Andreas is offline
 
Join Date: Jan 2004
Location: Germany
Posts: 6,863
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Not necessary at all, can be done with Promotions.
Reply With Quote
  #3  
Old 08-29-2005, 08:02 PM
Valter Valter is offline
 
Join Date: Aug 2005
Location: Sarajevo
Posts: 2,432
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by KirbyDE
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.
Reply With Quote
  #4  
Old 08-30-2005, 12:16 AM
House_of_Crazed House_of_Crazed is offline
 
Join Date: May 2004
Posts: 156
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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."
Reply With Quote
  #5  
Old 09-08-2005, 01:59 PM
macooper macooper is offline
 
Join Date: May 2005
Location: UK
Posts: 15
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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

Quote:
#################################################
# 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.
Reply With Quote
  #6  
Old 09-08-2005, 04:47 PM
Andreas's Avatar
Andreas Andreas is offline
 
Join Date: Jan 2004
Location: Germany
Posts: 6,863
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

This can be easily done as a Plugin - no need for File Edits.
Reply With Quote
  #7  
Old 09-08-2005, 04:54 PM
Valter Valter is offline
 
Join Date: Aug 2005
Location: Sarajevo
Posts: 2,432
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks macooper but you need to add yet one file edit:
PHP Code:
In showthread.phpfind :

*********************************************
    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.


Quote:
Originally Posted by KirbyDE
This can be easily done as a Plugin - no need for File Edits.
It would be great if someone can make it.

Regards,

Cyb
Reply With Quote
  #8  
Old 09-22-2005, 12:36 AM
Valter Valter is offline
 
Join Date: Aug 2005
Location: Sarajevo
Posts: 2,432
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Released as plugin few days ago:
https://vborg.vbsupport.ru/showthread.php?t=96523
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 04:55 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.07504 seconds
  • Memory Usage 2,282KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (2)bbcode_php
  • (3)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (8)post_thanks_box
  • (8)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (8)post_thanks_postbit_info
  • (8)postbit
  • (8)postbit_onlinestatus
  • (8)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete