Vanilla 1 is no longer supported or maintained. If you need a copy, you can get it here.
HackerOne users: Testing against this community violates our program's Terms of Service and will result in your bounty being denied.

Two vanilla forums using the same user table for both

edited October 2008 in Vanilla 1.0 Help
I have installed 2 vanilla forums one in root and second one in subdirectory of root. I have followed the instructions exactly shown in the FAQ below. ------------------------------------------------------------------------------------ http://lussumo.com/docs/doku.php?id=vanilla:faq_17 Can I run 2 vanilla forums using the same user table for both? Yes, assuming you’re installing both Vanillas from scratch: You’d need to set up the first database and then change the table prefix on all tables to something else. Delete LUM_User. Then install the other forum and leave all db tables as they are. Open up your conf/settings.php file for the first Vanilla and add/change the DATABASE_TABLE_PREFIX variable to reflect the new prefix you used: $Configuration['DATABASE_TABLE_PREFIX'] = 'Forum1_';Both Vanillas should then be using their own tables for everything but user accounts. Up next you need to make sure that both forums apply styles properly. Since Vanilla stores styles in the LUM_Style table but there is only one User table, you need to make sure that the StyleID in the user table has a corresponding entry in the LUM_Style and the Forum1_Style table. --------------------------------------------------------------------------------------------------------------- After installation I able to access the forum installed in the root but not the one in subdirectory and getting the following error A fatal, non-recoverable error has occurred Technical information (for support personel): Error Message An error occurred while attempting to retrieve the requested user. Affected Elements UserManager.GetSessionDataById(); The error occurred on or near: Table 'forum.LUM_User' doesn't exist As per the instruction i deleted the LUM_User table. Looks like the instructions are not correct. Please help me to fix this issue. Thanks in advance,

Comments

  • edited October 2008
    You to set $DatabaseTables['User'] to ' Forum1_User'; in conf/database.php However the documentation probably need to be updated; It will need more tweaking after: - Users can't use the same role column in the user table (or the forums should use the same role table - but vanilla can't do that). - etc... it is true for every foreign keys in the user table.
  • edited October 2008
    The patch the make you forums share some table is to hard-code the list of table that don't use a prefix in the GetTableName function:
    function GetTableName($Key, $TableCollection, $Prefix) { if (in_array($Key, array("User", "Role", ...))) { return $TableCollection[$Key]; } else { return $Prefix.$TableCollection[$Key]; } }
  • edited October 2008
    On other solution is the set the Prefix to an empty string and add the prefix to all table names, so that you can set Role table names to the same one on both forum. Here a solution that make the two forum share the same role and user tables but not the same style:
    // forum1/conf/database.php $Configuration['DATABASE_HOST'] = 'localhost'; $Configuration['DATABASE_NAME'] = 'Vanilla'; $Configuration['DATABASE_USER'] = 'user'; $Configuration['DATABASE_PASSWORD'] = 'password'; $Configuration['DATABASE_TABLE_PREFIX'] = ''; $Configuration['DATABASE_CHARACTER_ENCODING'] = 'utf8'; $DatabaseTables['Category'] = 'FORUM1_Category'; $DatabaseTables['CategoryBlock'] = 'FORUM1_CategoryBlock'; $DatabaseTables['CategoryRoleBlock'] = 'FORUM1_CategoryRoleBlock'; $DatabaseTables['Comment'] = 'FORUM1_Comment'; $DatabaseTables['Discussion'] = 'FORUM1_Discussion'; $DatabaseTables['DiscussionUserWhisperFrom'] = 'FORUM1_DiscussionUserWhisperFrom'; $DatabaseTables['DiscussionUserWhisperTo'] = 'FORUM1_DiscussionUserWhisperTo'; $DatabaseTables['IpHistory'] = 'FORUM1_IpHistory'; $DatabaseTables['Role'] = 'FORUM1_Role'; $DatabaseTables['Style'] = 'FORUM1_Style'; $DatabaseTables['User'] = 'FORUM1_User'; $DatabaseTables['UserBookmark'] = 'FORUM1_UserBookmark'; $DatabaseTables['UserDiscussionWatch'] = 'FORUM1_UserDiscussionWatch'; $DatabaseTables['UserRoleHistory'] = 'FORUM1_UserRoleHistory'; $DatabaseColumns['User']['StyleID'] = 'FORUM1_StyleID'; $DatabaseColumns['User']['CustomStyle'] = 'FORUM1_CustomStyle'; $DatabaseColumns['User']['UserBlocksCategories'] = 'FORUM1_UserBlocksCategories'; // forum2/conf/database.php $Configuration['DATABASE_HOST'] = 'localhost'; $Configuration['DATABASE_NAME'] = 'Vanilla'; $Configuration['DATABASE_USER'] = 'user'; $Configuration['DATABASE_PASSWORD'] = 'password'; $Configuration['DATABASE_TABLE_PREFIX'] = ''; $Configuration['DATABASE_CHARACTER_ENCODING'] = 'utf8'; $DatabaseTables['Category'] = 'FORUM2_Category'; $DatabaseTables['CategoryBlock'] = 'FORUM2_CategoryBlock'; $DatabaseTables['CategoryRoleBlock'] = 'FORUM2_CategoryRoleBlock'; $DatabaseTables['Comment'] = 'FORUM2_Comment'; $DatabaseTables['Discussion'] = 'FORUM2_Discussion'; $DatabaseTables['DiscussionUserWhisperFrom'] = 'FORUM2_DiscussionUserWhisperFrom'; $DatabaseTables['DiscussionUserWhisperTo'] = 'FORUM2_DiscussionUserWhisperTo'; $DatabaseTables['IpHistory'] = 'FORUM2_IpHistory'; $DatabaseTables['Role'] = 'FORUM1_Role'; $DatabaseTables['Style'] = 'FORUM2_Style'; $DatabaseTables['User'] = 'FORUM1_User'; $DatabaseTables['UserBookmark'] = 'FORUM2_UserBookmark'; $DatabaseTables['UserDiscussionWatch'] = 'FORUM2_UserDiscussionWatch'; $DatabaseTables['UserRoleHistory'] = 'FORUM2_UserRoleHistory'; $DatabaseColumns['User']['StyleID'] = 'FORUM2_StyleID'; $DatabaseColumns['User']['CustomStyle'] = 'FORUM2_CustomStyle'; $DatabaseColumns['User']['UserBlocksCategories'] = 'FORUM2_UserBlocksCategories';

    And in conf/settings.php, you have to set the cookie settings so that both forum can share them (You also need to delete all cookie set before the change.
This discussion has been closed.