Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #4  
Old 08-10-2007, 10:17 PM
minorgod's Avatar
minorgod minorgod is offline
 
Join Date: Aug 2006
Posts: 23
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks for the info. I've been scouring this forum all day and have found info that almost answers my question, but not quite. I finally overcame my laziness and print_r'd the $vbulletin object and figured out my problem. Here's the answer:

The $vbulletin->config array contains all the relevant vars you need to make your standard vBulletin connection, which you need if you want to switch back to the vBulletin db after you switch to a different db:

Code:
$vbulletin->config['MasterServer']['servername']
$vbulletin->config['MasterServer']['port']
$vbulletin->config['MasterServer']['username']
$vbulletin->config['MasterServer']['password']
$vbulletin->config['Database']['dbname']
Any plugin options you may have added to any options group via the admin interface can be accessed via $vbulletin->options['my_option_variable_name'].

So to switch databases in my plugin, I basically did this:

Code:
global $vbulletin;

//get the config options for the plugin or use the vBulletin db info as default
$wp_db_host = ($vbulletin->options['wp_db_host']?$vbulletin->options['wp_db_host']:$vbulletin->config['MasterServer']['servername']);
$wp_db_username =  ($vbulletin->options['wp_db_username']?$vbulletin->options['wp_db_username']:$vbulletin->config['MasterServer']['username']);
$wp_db_password =  ($vbulletin->options['wp_db_password']?$vbulletin->options['wp_db_password']:$vbulletin->config['MasterServer']['password']);
$wp_db_name =  ($vbulletin->options['wp_db_name']?$vbulletin->options['wp_db_name']:$vbulletin->config['Database']['dbname']);
$wp_table_prefix =  ($vbulletin->options['wp_table_prefix']?$vbulletin->options['wp_table_prefix']:"");
$wp_db_port = ($vbulletin->options['wp_db_port']?$vbulletin->options['wp_db_port']:$vbulletin->config['MasterServer']['port']);

//here we connect to our secondary database...

	// Connecting to the wordpress db if it's on a different server
	if($wp_db_host != $vbulletin->config['MasterServer']['servername']){
		$this->dbobject->connect($wp_db_name,$wp_db_host,$wp_db_port,$wp_db_username,$wp_db_password,false);
	}
	
	//else just select the wordpress db if it has a different name from the current db.
	elseif($vbulletin->config['Database']['dbname'] != $wp_db_name){
		$this->dbobject->select_db($wp_db_name);
	}
From there you can use the vBulletin db functions to access the secondary db like normal. Then when you're done, you will need to restore the original db connection or at least select the vBulletin DB again, so you would do something like this:

Code:
//reconnect to the vBulletin DB if it's on a different server
	if($wp_db_host != $vbulletin->config['MasterServer']['servername']){
		$this->dbobject->connect(
			$vbulletin->config['Database']['dbname'],
			$vbulletin->config['MasterServer']['servername'],
			$vbulletin->config['MasterServer']['port'],
			$vbulletin->config['MasterServer']['username'],
			$vbulletin->config['MasterServer']['password'],
			$vbulletin->config['MasterServer']['usepconnect'],
			$vbulletin->config['SlaveServer']['servername'],
			$vbulletin->config['SlaveServer']['port'],
			$vbulletin->config['SlaveServer']['username'],
			$vbulletin->config['SlaveServer']['password'],
			$vbulletin->config['SlaveServer']['usepconnect'],
			$vbulletin->config['Mysqli']['ini_file']
		); 
		
		
	}
	
	//else reselect the wordpress db
	elseif($vbulletin->config['Database']['dbname'] != $wp_db_name){
		$this->dbobject->select_db($vbulletin->config['Database']['dbname']);
	}
So, that's basically how I'm doing it in my vBulletin-Wordpress bridge. I'm finishing up the plugin now, so I'll post the finished version in case anyone wants to see the full code or use the plugin.

Thanks again to the previous posters for their suggestions. I didn't end up needing them, but they are appreciated nonetheless.
Reply With Quote
 


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 06:00 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05412 seconds
  • Memory Usage 2,339KB
  • Queries Executed 12 (?)
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
  • (4)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (4)post_thanks_box
  • (4)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (4)post_thanks_postbit_info
  • (4)postbit
  • (4)postbit_onlinestatus
  • (4)postbit_wrapper
  • (1)showthread_list
  • (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_threadedmode.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_threaded
  • showthread_threaded_construct_link
  • 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