Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
  #1  
Old 06-01-2006, 01:49 AM
jwocky jwocky is offline
 
Join Date: Mar 2005
Posts: 138
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default MySQL query for making a FORUM Active/Open ?

Does anyone know what the SQL query would be to make a certain forumid into an "Active" forum and an "Open" forum.. and vice versa?

Would be much appreciated!!

Update:

Ok I *think* I found the location where this info is kept and changed

Its in the forum.options area..

Now it seems my defauly forums have options of "87751" while one that has the Forum Active/Open settings set to NO are listed as "87748"

So I made a Db query command to change the 87748 to an 87751 to open a restricted forum..

PHP Code:
    if ($subfid>0)
    {
    echo 
"ACTIVE!!";
    
$vbulletin->db->query_write(
        UPDATE " 
TABLE_PREFIX "forum 
        SET options = " 
$activeperm .
        WHERE forumid = 
$subfid 
    "
); 
    } 

Now the change goes through on the database.. and if I open the subforum options in AdminCP is lists the change as having taken effect (just from looking at the radio button things)..

But the problem is in the forum display to the user, the change doesnt take effect.. ie. the users still cant see the forum. The change doesnt go through until I resubmit the forum options form in AdminCP then it works..

Any ideas on why this is acting like that ?

Thanks!!!

Ps. Ive been doing more reading thru old threads and Im wondering if my problem has to do with updating the 'datastore' anyone know if i'm barking up the right or wrong tree here ?
Reply With Quote
  #2  
Old 06-02-2006, 05:28 PM
hambil's Avatar
hambil hambil is offline
 
Join Date: Jun 2004
Location: Seattle
Posts: 1,719
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Okay, a couple things.

First, the options field is a bit field. So you want to find out the bit value of the option you want to change. In your case the difference is 3 (87751 - 87748), which means more than one option is different between the two forums, because valid bit values are multiples of 2. e.g. 1, 2, 4, 8, 16, 32, etc...

The only way to get three is if the option represented by 1 and the option represented by 2 are both different between the two forums. So we can assume that one of those options is "Open" and the other "Active".

Fortunately, since you want to toggle both open and active you can just go ahead and use 3 without knowing which is which. This will allow you to change the options regardless of what other options are set. You do so with simple math: options + 3, or options - 3. To check if the options are set, use options & 3.

So your query would like this to turn on the forum:
PHP Code:
if ($subfid>0)
{
    echo 
"ACTIVE!!";
    
$vbulletin->db->query_write(
        UPDATE " 
TABLE_PREFIX "forum 
        SET options = options + 3  
        WHERE forumid = 
$subfid 
    "
); 

And this to turn off the forum:
PHP Code:
if ($subfid>0)
{
    echo 
"NOT ACTIVE!!";
    
$vbulletin->db->query_write(
        UPDATE " 
TABLE_PREFIX "forum 
        SET options = options - 3
        WHERE forumid = 
$subfid 
    "
); 

Second, once you've done that you need to rebuild $vbulletin->usergroupcache and $vbulletin->forumcache.

Fortunately, there is a handy function for this already in includes/adminfunctions.php. So just call it. The php code put all together might look like this:

PHP Code:
require_once('./global.php');
require_once(
DIR '/includes/adminfunctions.php');

if (
$subfid>0)
{
    echo 
"ACTIVE!!";
    
$vbulletin->db->query_write(
        UPDATE " 
TABLE_PREFIX "forum 
        SET options = options + 3  
        WHERE forumid = 
$subfid 
    "
); 


build_forum_permissions(); 
Hope this helps
Reply With Quote
  #3  
Old 06-02-2006, 07:52 PM
jwocky jwocky is offline
 
Join Date: Mar 2005
Posts: 138
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

.... You

are a god to me

THank you for that perfect response. It works flawlessly now. !!!! I'm so happy my little script works now.

Thanks again my friend

:banana:
Reply With Quote
  #4  
Old 06-02-2006, 08:20 PM
hambil's Avatar
hambil hambil is offline
 
Join Date: Jun 2004
Location: Seattle
Posts: 1,719
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

LOL

Glad I could help
Reply With Quote
  #5  
Old 03-03-2007, 02:40 PM
bigfoot's Avatar
bigfoot bigfoot is offline
 
Join Date: Jun 2005
Posts: 24
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

How do you rebuild $vbulletin->forumcache automatically ???
Reply With Quote
  #6  
Old 03-05-2007, 03:56 PM
gamma912 gamma912 is offline
 
Join Date: Feb 2007
Posts: 9
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Yes How do you?
Reply With Quote
Reply

Thread Tools
Display Modes

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 01:14 AM.


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.03907 seconds
  • Memory Usage 2,218KB
  • 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
  • (4)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (6)post_thanks_box
  • (6)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (6)post_thanks_postbit_info
  • (6)postbit
  • (6)postbit_onlinestatus
  • (6)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