View Single Post
  #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
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01564 seconds
  • Memory Usage 1,780KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (3)bbcode_php
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.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
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • 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
  • showpost_complete