Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.7 > vBulletin 3.7 Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Share users database among many forums Details »»
Share users database among many forums
Version: 0.10, by mangel.ajo mangel.ajo is offline
Developer Last Online: May 2012 Show Printable Version Email this Page

Category: Major Additions - Version: 3.7.2 Rating:
Released: 07-10-2008 Last Update: 07-12-2008 Installs: 61
Re-useable Code Code Changes Translations Is in Beta Stage  
No support by the author.

This is a feature requested many times, and we are still waiting, so I released a patch to be able to run many forums with the same user database.

This is an EXPERIMENTAL PATCH I'm running on my forums.

Code:
--- ../../../private/upload/includes/class_core.php     2008-07-10 11:17:32.000000000 +0200
+++ class_core.php      2008-07-11 17:44:20.000000000 +0200
@@ -405,6 +405,33 @@
                $this->connection_recent =& $link;
                $this->querycount++;

+               $shared_tables = Array("user","useractivation","userban","usertitle","userchangelog","usertextfield","userfield","usergroup","userlist","usernote","profilevisitor","reputation","reputationlevel","spamlog","strikes","pm","pmreceipt","pmtext","avatar","profilefield");
+
+               $main_prefix = "FP_";
+               foreach ($shared_tables as $shared_table)
+               {
+                       $orig = TABLE_PREFIX.$shared_table;
+                       $dst  = $main_prefix.$shared_table;
+
+                       $this->sql = str_replace($orig." ",$dst." "  ,$this->sql);
+                       $this->sql = str_replace($orig.".",$dst."."  ,$this->sql);
+                       $this->sql = str_replace($orig."\r",$dst."\r",$this->sql);
+                       $this->sql = str_replace($orig."\n",$dst."\n",$this->sql);
+                       $this->sql = str_replace($orig."\t",$dst."\t",$this->sql);
+
+               }
+

                if ($queryresult = $this->functions[$buffered ? 'query' : 'query_unbuffered']($this->sql, $link))
                {
You can add "session" to $shared_tables if you want to share your sessions among forums under the same domain (Thanks Lionel)

This is only useful for new forums joining anothers one user database.

Requirements:
  • An old forum where all users are.
  • Sharing the same database, using diferent prefixes for tables (TABLE_PREFIX)
For example: Imagine we have FORUM_A , FORUM_B, and FORUM_C each one with their respective licenses.

FORUM A has table prefix FA_ in database, FORUM_B has FB_ and FORUM_C has FC_

FORUM A is the main, and older forum, where we have all our users.

then we would install FORUM_B and FORUM_C normally, using the same database that FORUM_A uses, but setting up their own table prefixes.


once FB_ and FC_ are installed then we go patching class_core.php from FORUM_B and FORUM_C setting up $main_prefix = "FA_"; so they use FORUM_A for shared tables.

Possible problems:
  • memcached issues?, not sure
  • avatar/signature pics/etc issues when storage is set to disk.
  • more to come...


Author: Optimizacion Web

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #102  
Old 06-15-2009, 07:27 PM
Lionel Lionel is offline
 
Join Date: Dec 2001
Location: Delray Beach, Florida
Posts: 3,277
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

none whatsoever. I only added sessions since the 2 forums are on same site so there was no need to re-login
Reply With Quote
  #103  
Old 06-16-2009, 10:17 PM
webgroup webgroup is offline
 
Join Date: May 2006
Posts: 169
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Im using 3.8.2, installed and worked like a charm the first time!
Thanks!!
Reply With Quote
  #104  
Old 06-16-2009, 10:18 PM
webgroup webgroup is offline
 
Join Date: May 2006
Posts: 169
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by ROTPAR View Post
Ok I got it working BUT I have 2 questions.

1.) Forum B does not show the registerd members in the forums statistics (bottom of the forums homepage)

2.) How can I show all online members on both forums. I want to show all current online members who are online on both forums.

MIne show registered users fine!
What I dont see is the current only users, I would like to be able to show it.
Reply With Quote
  #105  
Old 06-17-2009, 08:12 AM
StonePilot StonePilot is offline
 
Join Date: Jan 2007
Location: Texas
Posts: 137
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I would love to use this but I would have to be very caution when upgrading. Once I go down this road I would build the functioanlity of the site around the idea of a single login ability ... sign-up for one site and you're a member to all sites. Not sure what to think about that actually.
Reply With Quote
  #106  
Old 06-17-2009, 11:33 PM
webgroup webgroup is offline
 
Join Date: May 2006
Posts: 169
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Datenpapst View Post
Hi,
is it possible that maybe some forums like off topic or so can also be used by more than 1 forum?
I need to know this too

Quote:
Originally Posted by Chunky Monkey View Post
Can I somehow allow guests to view forums on installation B that guests are prevented from viewing on installation A? If so, how? Also, can I prevent other forums that exist at installation A from showing up at installation B?

Installation B's purpose will be to allow guests at domain B access to forums that are restricted on installation A at domain A. They should have the same users, same posts, etc. How can I accomplish this?

Thank you!
I need to know this too
Reply With Quote
  #107  
Old 06-18-2009, 12:02 AM
webgroup webgroup is offline
 
Join Date: May 2006
Posts: 169
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by ROTPAR View Post
Ok I got it working BUT I have 2 questions.

1.) Forum B does not show the registerd members in the forums statistics (bottom of the forums homepage)

2.) How can I show all online members on both forums. I want to show all current online members who are online on both forums.


Just add the "session" table to the list of shared tables.
Reply With Quote
  #108  
Old 06-18-2009, 12:07 AM
webgroup webgroup is offline
 
Join Date: May 2006
Posts: 169
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Datenpapst View Post
Hi,
is it possible that maybe some forums like off topic or so can also be used by more than 1 forum?
I need to know this too

Quote:
Originally Posted by Chunky Monkey View Post
Can I somehow allow guests to view forums on installation B that guests are prevented from viewing on installation A? If so, how? Also, can I prevent other forums that exist at installation A from showing up at installation B?

Installation B's purpose will be to allow guests at domain B access to forums that are restricted on installation A at domain A. They should have the same users, same posts, etc. How can I accomplish this?

Thank you!
I need to know this too


ALSO, I do not want to share the avatars or profile pictures.
I removed both the "avatar","profilefield" from the list of shared tables, still avatars and profile pictures are getting affected.

Both websites have custom avatars set to use DISK, not DB, but when you change the avatr in one website, it affects the avatar in the other website.

Can somebody explain me how to fix this?

AND the users signatures too, I dont want to share the signatures, is there any way to avoid it?

Thanks!

UPDATE: A "fix" for the avatar/picture profile issue, is to have the avatars in the "forumB" set to use DB storage.
Even when it do not makes sense to me why the problem was happening if I removed the "avatars" table from the shared table list.
Reply With Quote
  #109  
Old 06-18-2009, 07:17 AM
Lionel Lionel is offline
 
Join Date: Dec 2001
Location: Delray Beach, Florida
Posts: 3,277
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by ROTPAR View Post

1.) Forum B does not show the registerd members in the forums statistics (bottom of the forums homepage)
Showing the stats will not be possible, unless you do an Admicp => Maintenance=> Update counter => Username.

This is because that info is coming from the datastore which is not shared by the 2 installs, and is not recommended to share.

When you update the counter, you just rebuild the datastore for the appropriate forum. But that could be a pain to do once in a while ....
Reply With Quote
  #110  
Old 06-18-2009, 07:29 AM
Lionel Lionel is offline
 
Join Date: Dec 2001
Location: Delray Beach, Florida
Posts: 3,277
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

you could also try to create a plugin at forumhome_start and put this in it (will add a query)

PHP Code:
require_once(DIR '/includes/functions_databuild.php');
build_user_statistics(); 
That will update the datastore and you'll be able to display stats
Reply With Quote
  #111  
Old 06-18-2009, 05:17 PM
webgroup webgroup is offline
 
Join Date: May 2006
Posts: 169
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Could anybody help with my questions?

Thanks
Reply With Quote
Reply


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 03:44 PM.


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.04586 seconds
  • Memory Usage 2,320KB
  • Queries Executed 25 (?)
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)bbcode_code
  • (1)bbcode_php
  • (7)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)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_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
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete