I did this on one of my sites that I'll probably never get around to finishing. It's pretty simple to setup, but you will need to have the user table installed on the same database name on both of your pligg installs. I set it up so that it would share the user names/passwords, private messages and friends list between several Pligg installs that all get their information from the same database. I will write up a detailed post about what I did on the Pligg blog sometime soon.
For now I will give you a brief example, by demonstrating what you can do.
Open config.php and edit lines 134-147. If you just want to only share user names and passwords between your sites you will need to edit line 141.
Step 1 Create a new database table global_users.
Log in to phpmyadmin and insert this sql into your database:
These settings do not apply to all language variations or Pligg versions,
a more accurate way to do this is to just rename your pligg_users table to global_users. If you rename pligg_users to global_users you can skip this step.
Code:
CREATE TABLE `global_users` (
`user_id` int(20) NOT NULL auto_increment,
`user_login` varchar(32) NOT NULL default '',
`user_level` enum('normal','special','blogger','admin','god') NOT NULL default 'normal',
`user_modification` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`user_date` timestamp NOT NULL default '0000-00-00 00:00:00',
`user_pass` varchar(64) NOT NULL default '',
`user_email` varchar(128) NOT NULL default '',
`user_names` varchar(128) NOT NULL default '',
`user_lang` int(11) NOT NULL default '1',
`user_karma` decimal(10,2) default '10.00',
`user_url` varchar(128) NOT NULL default '',
`user_lastlogin` timestamp NOT NULL default '0000-00-00 00:00:00',
`user_aim` varchar(64) NOT NULL default '',
`user_msn` varchar(64) NOT NULL default '',
`user_yahoo` varchar(64) NOT NULL default '',
`user_gtalk` varchar(64) NOT NULL default '',
`user_skype` varchar(64) NOT NULL default '',
`user_irc` varchar(64) NOT NULL default '',
`public_email` varchar(64) NOT NULL default '',
`user_avatar_source` varchar(255) NOT NULL default '',
`user_ip` varchar(20) default '0',
`user_lastip` varchar(20) default '0',
`last_reset_request` timestamp NOT NULL default '0000-00-00 00:00:00',
`user_location` varchar(255) default NULL,
`user_occupation` varchar(255) default NULL,
`google_adsense_id` varchar(64) NOT NULL,
`google_adsense_channel` varchar(64) NOT NULL,
`google_adsense_percent` tinyint(3) unsigned NOT NULL default '50',
PRIMARY KEY (`user_id`),
UNIQUE KEY `user_login` (`user_login`),
KEY `user_email` (`user_email`)
) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;
INSERT INTO `pligg_users` (`user_id`, `user_login`, `user_level`, `user_modification`, `user_date`, `user_pass`, `user_email`, `user_names`, `user_lang`, `user_karma`, `user_url`, `user_lastlogin`, `user_aim`, `user_msn`, `user_yahoo`, `user_gtalk`, `user_skype`, `user_irc`, `public_email`, `user_avatar_source`, `user_ip`, `user_lastip`, `last_reset_request`, `user_location`, `user_occupation`) VALUES (1, 'god', 'god', '2007-02-08 20:40:43', '2007-02-04 00:01:44', '1e41c3f5a260b83dd316809b221f581cdbba8c1489e6d5896', 'blank@pligg.com', '', 1, 10.00, 'www.pligg.com', '2007-02-08 20:40:43', '', '', '', '', '', '', '', '', '0', '68.51.132.108', '0000-00-00 00:00:00', '', ''); Step 2
Find:
PHP Code:
if(!defined('table_users')){ define('table_users', table_prefix . "users" ); }
Replace with:
PHP Code:
if(!defined('table_users')){ define('table_users', "global_users" ); }
As you can see I replaced
PHP Code:
table_prefix . "users"
with:
Repeat these steps for each table that you wish to share across multiple Pligg installs.
If many people express interest in having a global pligg user database please let us know so we can look into it.