Multiple Forums using a single user table
This modification is in the archives.
This was originaly done in 3.0.9 by westpointer you can view that thread here
This Modification is for VB3.5.4 This is not supported but I will give as much help as I possible can. I have this working now on 2 sites The main site is http://forums.everything2stroke.com Slave sites are http://forums.everythingmx.com and http://forums.everythingduners.com After a successfull install of this modification your sites will share User, PM, and sesson data. This thread will detail how to have a single login for multiple forums. It makes the following assumptions:
Follow these steps 1.) Download your new copy of VB that contains a seperate license key 2.) Go to /includes/config.php.new rename the file to config.php and make necessary changes to the file. See VB Directions. Make sure this code has a different setting than the master site for table prefix. PHP Code:
// ****** TABLE PREFIX ******
4.) During the install, be sure NOT to empty the tables. If you have any doubt about what this means, stop NOW! If you empty the tables, you will lose all of your existing data from a prior install! 5.) Download all files and directories to your PC from the new install location. 6.) You will need a tool to do a mass Search and replace on all files. I use WildEdit. Here is what you will do using a tool like Wild Edit.
Now to modify some of the code. In /include/class_dm.php Search for: PHP Code:
function fetch_insert_sql($tableprefix, $table)
PHP Code:
if ($table == "vb3_pmtext")
Go to /include/class_dm_pm.php Search for: PHP Code:
var $table = 'pmtext';
PHP Code:
var $table = 'vb3_pmtext';
Search for: PHP Code:
$pmtextid = ($this->existing['pmtextid'] ? $this->existing['pmtextid'] : $this->pmtext['pmtextid']);
PHP Code:
$pmtextid = ($this->existing['pmtextid'] ? $this->existing['pmtextid'] : $this->vb3_pmtext['pmtextid']);
PHP Code:
$this->dbobject->query_write("INSERT INTO " . TABLE_PREFIX . "pm (pmtextid, userid) VALUES ($pmtextid, $user[userid])");
PHP Code:
$this->dbobject->query_write("INSERT INTO " . "vb3_pm (pmtextid, userid) VALUES ($pmtextid, $user[userid])");
PHP Code:
" . $this->dbobject->escape_string($user['username']) . "', '" . $this->dbobject->escape_string($this->pmtext['title']) .
PHP Code:
" . $this->dbobject->escape_string($user['username']) . "', '" . $this->dbobject->escape_string($this->vb3_pmtext['title']) .
Go to /include/class_dm_user.php Search for: PHP Code:
$return = $this->db_update(TABLE_PREFIX, 'user', $this->condition, $doquery, $delayed);
PHP Code:
$return = $this->db_update('vb3_', 'user', $this->condition, $doquery, $delayed);
PHP Code:
$this->db_update(TABLE_PREFIX, 'userfield', $this->condition, $doquery, $delayed);
PHP Code:
$this->db_update('vb3_', 'userfield', $this->condition, $doquery, $delayed);
PHP Code:
$this->db_update(TABLE_PREFIX, 'usertextfield', $this->condition, $doquery, $delayed);
PHP Code:
$this->db_update('vb3_', 'usertextfield', $this->condition, $doquery, $delayed);
PHP Code:
if ($return = $this->db_insert(TABLE_PREFIX, 'user', $doquery))
PHP Code:
if ($return = $this->db_insert('vb3_', 'user', $doquery))
PHP Code:
$this->db_insert(TABLE_PREFIX, 'userfield', $doquery);
PHP Code:
$this->db_insert('vb3_', 'userfield', $doquery);
PHP Code:
$this->db_insert(TABLE_PREFIX, 'usertextfield', $doquery);
PHP Code:
$this->db_insert('vb3_', 'usertextfield', $doquery);
PHP Code:
DELETE FROM " . TABLE_PREFIX . "session
PHP Code:
DELETE FROM .vb3_session
PHP Code:
INSERT INTO " . TABLE_PREFIX . "passwordhistory (userid, password, passworddate)
PHP Code:
INSERT INTO " . "vb3_passwordhistory (userid, password, passworddate)
PHP Code:
UPDATE " . TABLE_PREFIX . "session SET
PHP Code:
UPDATE .vb3_session SET
That is all the code modification. The only other item I did is remove a couple cron jobs. Go into Scheduled tasks then to Scheduled Task Manager Delete the following CRON jobs from the Slave Site User Promotions* Birthdays Activation Reminder Email This will eliminate members getting emails from the primary and secondary sites *not sure if this will duplicate efforts between primary and secondary sites I have it running on both sites still waiting to see if it causes any issues. Please post here if you have any problems and questions I will try my best to keep up with everyone to help you through this. Once you get the code done the first time you can just do a mass search and replace on your license code and you can be up and running in minutes with a new site. This is my first major modification so I hope I posted this all correct, again Thanks to Westpointer for his original work without his post this would not have been possible. Thanks UPDATE: Please make this changes it will allow you to make changes to usergroups in the subscription section and when editing a user. admincp/adminfunctions.php Search for PHP Code:
$result = $vbulletin->db->query_read("SELECT title, $tableid FROM " . TABLE_PREFIX . "$tablename $wherecondition ORDER BY title");
PHP Code:
if ($tablename == "usergroup")
Download No files for download. |