Théonaute a écrit:» Plusieurs forums, une seule base d'utilisateurs.Il peut être parfois utile d'utiliser plusieurs forums phpbb, mais de vouloir garder une seule et unique base des utilisateurs, évitant ainsi à vos membres de devoir s'inscrire sur chacun des forums.
Nous partons du principe que nous souhaitons deux forums, nommés forum1 et forum2» Contraintes techniquesAfin de réaliser cela, il faut
impérativement que vos forums soient sur le même serveur, et que vous utilisiez la
même base de données pour tous les forums.
Il serait beaucoup plus ardu de lier les tables utilisateurs de deux forums dont les bases de données sont différentes, et impensable pour des forums hébergés sur des serveurs différents.
» PrincipeIl suffit d'installer ses forums sur le même serveur et en utilisant la même base de données, mais avec des préfixes de tables différentes. Une fois fait, il faut repérer les tables communes (utilisateurs, bannis, profils, profils personnalisés, mps...), d'enlever le préfixe de ces tables pour le forum 1, et de supprimer ces tables pour les autres forums.
Il ne reste qu'à éditer les fichiers includes/constants.php pour modifier le nom des tables, et le tour sera joué.
» Installation des forumsIl n'y a rien de bien compliqué dans cette étape.
Installez le forum 1 dans le dossier
forum1/ sur votre serveur, en utilisant
phpbb1_ comme préfixe de tables.
Installez le forum 2 dans le dossier
forum2/ sur votre serveur, en utilisant
phpbb2_ comme préfixe de tables.
Lors des installations, il vous sera demandé les informations sur le compte administrateur (pseudo, mot de passe, adresse). Remplissez bien ces champs lors de l'installation de forum 1. Vous pouvez mettre vos vrais informations ou n'importe quoi pour forum 2, cela n'aura aucune incidence.
» Modifications des tablesLors de cette étape, il va falloir supprimer les tables en trop et modifier le nom des tables communes pour enlever le préfixe.
Voici la liste des tables communes aux forums, avec leur rôle :
- banlist
bannissements - bots
robots des moteurs de recherche - confirm
informations se sessions pour les pages de confirmation - disallow
noms d'utilisateurs interdits - groups
groupes - lang
langues du forum (pour éviter des erreurs si un utilisateur choisit une langue installés sur un forum mais pas les autres) - privmsgs
messages privés - privmsgs_folder
répertoires pour les messages privés - privmsgs_rules
règles de messages pour les messages privés - privmsgs_to
informations sur les mps - profile_fields
champs de profils personnalisés - profile_fields_data
valeurs des champs de profils personnalisés pour les utilisateurs - profile_fields_lang
données des champs de profils personnalisés pour toutes les langues installées sur le forum - profile_lang
noms des champs de profils personnalisés pour toutes les langues installées sur le forum - sessions
sessions des utilisateurs - sessions_keys
clés pour les connexions automatiques - user_group
membres des groupes - users
utilisateurs - warnings
avertissements - zebra
liste d'amis/ignorés
Pour toutes ces tables, il faut donc enlever le préfixe pour le forum 1 (donc enlever phpbb1_) et les supprimer pour les autres forums (donc supprimer les tables phpbb2_TABLES_DANS_LA_LISTE_PRECEDENTE).
Voici la requête SQL à exécuter pour cela. Il vous faudra l'adapter à votre configuration, sachant que phpbb3 est le nom de la base de données (ajustez donc cette valeur en fonction du nom de votre base de données), et en dupliquant les requêtes de suppression pour vos forums supplémentaires.
- Code: Tout sélectionner
RENAME TABLE `phpbb3`.`phpbb1_banlist` TO `phpbb3`.`banlist` ;
RENAME TABLE `phpbb3`.`phpbb1_bots` TO `phpbb3`.`bots` ;
RENAME TABLE `phpbb3`.`phpbb1_bots` TO `phpbb3`.`confirm` ;
RENAME TABLE `phpbb3`.`phpbb1_disallow` TO `phpbb3`.`disallow` ;
RENAME TABLE `phpbb3`.`phpbb1_groups` TO `phpbb3`.`groups` ;
RENAME TABLE `phpbb3`.`phpbb1_lang` TO `phpbb3`.`lang` ;
RENAME TABLE `phpbb3`.`phpbb1_privmsgs` TO `phpbb3`.`privmsgs` ;
RENAME TABLE `phpbb3`.`phpbb1_privmsgs_folder` TO `phpbb3`.`privmsgs_folder` ;
RENAME TABLE `phpbb3`.`phpbb1_privmsgs_rules` TO `phpbb3`.`privmsgs_rules` ;
RENAME TABLE `phpbb3`.`phpbb1_privmsgs_to` TO `phpbb3`.`privmsgs_to` ;
RENAME TABLE `phpbb3`.`phpbb1_profile_fields` TO `phpbb3`.`profile_fields` ;
RENAME TABLE `phpbb3`.`phpbb1_profile_fields_data` TO `phpbb3`.`profile_fields_data` ;
RENAME TABLE `phpbb3`.`phpbb1_profile_fields_lang` TO `phpbb3`.`profile_fields_lang` ;
RENAME TABLE `phpbb3`.`phpbb1_profile_lang` TO `phpbb3`.`profile_lang` ;
RENAME TABLE `phpbb3`.`phpbb1_sessions` TO `phpbb3`.`sessions` ;
RENAME TABLE `phpbb3`.`phpbb1_sessions_keys` TO `phpbb3`.`sessions_keys` ;
RENAME TABLE `phpbb3`.`phpbb1_user_group` TO `phpbb3`.`user_group` ;
RENAME TABLE `phpbb3`.`phpbb1_users` TO `phpbb3`.`users` ;
RENAME TABLE `phpbb3`.`phpbb1_warnings` TO `phpbb3`.`warnings` ;
RENAME TABLE `phpbb3`.`phpbb1_zebra` TO `phpbb3`.`zebra` ;
DROP TABLE `phpbb2_banlist`;
DROP TABLE `phpbb2_bots`;
DROP TABLE `phpbb2_confirm`;
DROP TABLE `phpbb2_disallow`;
DROP TABLE `phpbb2_groups`;
DROP TABLE `phpbb2_lang`;
DROP TABLE `phpbb2_privmsgs`;
DROP TABLE `phpbb2_privmsgs_folder`;
DROP TABLE `phpbb2_privmsgs_rules`;
DROP TABLE `phpbb2_privmsgs_to`;
DROP TABLE `phpbb2_profile_fields`;
DROP TABLE `phpbb2_profile_fields_data`;
DROP TABLE `phpbb2_profile_fields_lang`;
DROP TABLE `phpbb2_profile_lang`;
DROP TABLE `phpbb2_sessions`;
DROP TABLE `phpbb2_sessions_keys`;
DROP TABLE `phpbb2_user_group`;
DROP TABLE `phpbb2_users`;
DROP TABLE `phpbb2_warnings`;
DROP TABLE `phpbb2_zebra`;
» Configuration des forumsPour chacun de vos forums :Ouvrir
includes/constants.phpTrouver
- Code: Tout sélectionner
define('ACL_GROUPS_TABLE', $table_prefix . 'acl_groups');
define('ACL_OPTIONS_TABLE', $table_prefix . 'acl_options');
define('ACL_ROLES_DATA_TABLE', $table_prefix . 'acl_roles_data');
define('ACL_ROLES_TABLE', $table_prefix . 'acl_roles');
define('ACL_USERS_TABLE', $table_prefix . 'acl_users');
define('ATTACHMENTS_TABLE', $table_prefix . 'attachments');
define('BANLIST_TABLE', $table_prefix . 'banlist');
define('BBCODES_TABLE', $table_prefix . 'bbcodes');
define('BOOKMARKS_TABLE', $table_prefix . 'bookmarks');
define('BOTS_TABLE', $table_prefix . 'bots');
define('CONFIG_TABLE', $table_prefix . 'config');
define('CONFIRM_TABLE', $table_prefix . 'confirm');
define('DISALLOW_TABLE', $table_prefix . 'disallow');
define('DRAFTS_TABLE', $table_prefix . 'drafts');
define('EXTENSIONS_TABLE', $table_prefix . 'extensions');
define('EXTENSION_GROUPS_TABLE', $table_prefix . 'extension_groups');
define('FORUMS_TABLE', $table_prefix . 'forums');
define('FORUMS_ACCESS_TABLE', $table_prefix . 'forums_access');
define('FORUMS_TRACK_TABLE', $table_prefix . 'forums_track');
define('FORUMS_WATCH_TABLE', $table_prefix . 'forums_watch');
define('GROUPS_TABLE', $table_prefix . 'groups');
define('ICONS_TABLE', $table_prefix . 'icons');
define('LANG_TABLE', $table_prefix . 'lang');
define('LOG_TABLE', $table_prefix . 'log');
define('MODERATOR_CACHE_TABLE', $table_prefix . 'moderator_cache');
define('MODULES_TABLE', $table_prefix . 'modules');
define('POLL_OPTIONS_TABLE', $table_prefix . 'poll_options');
define('POLL_VOTES_TABLE', $table_prefix . 'poll_votes');
define('POSTS_TABLE', $table_prefix . 'posts');
define('PRIVMSGS_TABLE', $table_prefix . 'privmsgs');
define('PRIVMSGS_FOLDER_TABLE', $table_prefix . 'privmsgs_folder');
define('PRIVMSGS_RULES_TABLE', $table_prefix . 'privmsgs_rules');
define('PRIVMSGS_TO_TABLE', $table_prefix . 'privmsgs_to');
define('PROFILE_FIELDS_TABLE', $table_prefix . 'profile_fields');
define('PROFILE_FIELDS_DATA_TABLE', $table_prefix . 'profile_fields_data');
define('PROFILE_FIELDS_LANG_TABLE', $table_prefix . 'profile_fields_lang');
define('PROFILE_LANG_TABLE', $table_prefix . 'profile_lang');
define('RANKS_TABLE', $table_prefix . 'ranks');
define('REPORTS_TABLE', $table_prefix . 'reports');
define('REPORTS_REASONS_TABLE', $table_prefix . 'reports_reasons');
define('SEARCH_RESULTS_TABLE', $table_prefix . 'search_results');
define('SEARCH_WORDLIST_TABLE', $table_prefix . 'search_wordlist');
define('SEARCH_WORDMATCH_TABLE', $table_prefix . 'search_wordmatch');
define('SESSIONS_TABLE', $table_prefix . 'sessions');
define('SESSIONS_KEYS_TABLE', $table_prefix . 'sessions_keys');
define('SITELIST_TABLE', $table_prefix . 'sitelist');
define('SMILIES_TABLE', $table_prefix . 'smilies');
define('STYLES_TABLE', $table_prefix . 'styles');
define('STYLES_TEMPLATE_TABLE', $table_prefix . 'styles_template');
define('STYLES_TEMPLATE_DATA_TABLE',$table_prefix . 'styles_template_data');
define('STYLES_THEME_TABLE', $table_prefix . 'styles_theme');
define('STYLES_IMAGESET_TABLE', $table_prefix . 'styles_imageset');
define('STYLES_IMAGESET_DATA_TABLE',$table_prefix . 'styles_imageset_data');
define('TOPICS_TABLE', $table_prefix . 'topics');
define('TOPICS_POSTED_TABLE', $table_prefix . 'topics_posted');
define('TOPICS_TRACK_TABLE', $table_prefix . 'topics_track');
define('TOPICS_WATCH_TABLE', $table_prefix . 'topics_watch');
define('USER_GROUP_TABLE', $table_prefix . 'user_group');
define('USERS_TABLE', $table_prefix . 'users');
define('WARNINGS_TABLE', $table_prefix . 'warnings');
define('WORDS_TABLE', $table_prefix . 'words');
define('ZEBRA_TABLE', $table_prefix . 'zebra');
Remplacer par
- Code: Tout sélectionner
define('ACL_GROUPS_TABLE', $table_prefix . 'acl_groups');
define('ACL_OPTIONS_TABLE', $table_prefix . 'acl_options');
define('ACL_ROLES_DATA_TABLE', $table_prefix . 'acl_roles_data');
define('ACL_ROLES_TABLE', $table_prefix . 'acl_roles');
define('ACL_USERS_TABLE', $table_prefix . 'acl_users');
define('ATTACHMENTS_TABLE', $table_prefix . 'attachments');
define('BANLIST_TABLE', 'banlist');
define('BBCODES_TABLE', $table_prefix . 'bbcodes');
define('BOOKMARKS_TABLE', $table_prefix . 'bookmarks');
define('BOTS_TABLE', 'bots');
define('CONFIG_TABLE', $table_prefix . 'config');
define('CONFIRM_TABLE', 'confirm');
define('DISALLOW_TABLE', 'disallow');
define('DRAFTS_TABLE', $table_prefix . 'drafts');
define('EXTENSIONS_TABLE', $table_prefix . 'extensions');
define('EXTENSION_GROUPS_TABLE', $table_prefix . 'extension_groups');
define('FORUMS_TABLE', $table_prefix . 'forums');
define('FORUMS_ACCESS_TABLE', $table_prefix . 'forums_access');
define('FORUMS_TRACK_TABLE', $table_prefix . 'forums_track');
define('FORUMS_WATCH_TABLE', $table_prefix . 'forums_watch');
define('GROUPS_TABLE', 'groups');
define('ICONS_TABLE', $table_prefix . 'icons');
define('LANG_TABLE', 'lang');
define('LOG_TABLE', $table_prefix . 'log');
define('MODERATOR_CACHE_TABLE', $table_prefix . 'moderator_cache');
define('MODULES_TABLE', $table_prefix . 'modules');
define('POLL_OPTIONS_TABLE', $table_prefix . 'poll_options');
define('POLL_VOTES_TABLE', $table_prefix . 'poll_votes');
define('POSTS_TABLE', $table_prefix . 'posts');
define('PRIVMSGS_TABLE', 'privmsgs');
define('PRIVMSGS_FOLDER_TABLE', 'privmsgs_folder');
define('PRIVMSGS_RULES_TABLE', 'privmsgs_rules');
define('PRIVMSGS_TO_TABLE', 'privmsgs_to');
define('PROFILE_FIELDS_TABLE', 'profile_fields');
define('PROFILE_FIELDS_DATA_TABLE', 'profile_fields_data');
define('PROFILE_FIELDS_LANG_TABLE', 'profile_fields_lang');
define('PROFILE_LANG_TABLE', 'profile_lang');
define('RANKS_TABLE', $table_prefix . 'ranks');
define('REPORTS_TABLE', $table_prefix . 'reports');
define('REPORTS_REASONS_TABLE', $table_prefix . 'reports_reasons');
define('SEARCH_RESULTS_TABLE', $table_prefix . 'search_results');
define('SEARCH_WORDLIST_TABLE', $table_prefix . 'search_wordlist');
define('SEARCH_WORDMATCH_TABLE', $table_prefix . 'search_wordmatch');
define('SESSIONS_TABLE', 'sessions');
define('SESSIONS_KEYS_TABLE', 'sessions_keys');
define('SITELIST_TABLE', $table_prefix . 'sitelist');
define('SMILIES_TABLE', $table_prefix . 'smilies');
define('STYLES_TABLE', $table_prefix . 'styles');
define('STYLES_TEMPLATE_TABLE', $table_prefix . 'styles_template');
define('STYLES_TEMPLATE_DATA_TABLE',$table_prefix . 'styles_template_data');
define('STYLES_THEME_TABLE', $table_prefix . 'styles_theme');
define('STYLES_IMAGESET_TABLE', $table_prefix . 'styles_imageset');
define('STYLES_IMAGESET_DATA_TABLE',$table_prefix . 'styles_imageset_data');
define('TOPICS_TABLE', $table_prefix . 'topics');
define('TOPICS_POSTED_TABLE', $table_prefix . 'topics_posted');
define('TOPICS_TRACK_TABLE', $table_prefix . 'topics_track');
define('TOPICS_WATCH_TABLE', $table_prefix . 'topics_watch');
define('USERS_TABLE', 'users');
define('USER_GROUP_TABLE', 'user_group');
define('WARNINGS_TABLE', 'warnings');
define('WORDS_TABLE', $table_prefix . 'words');
define('ZEBRA_TABLE', 'zebra');
Voilà, le tour est joué.
Vos différents forums utilisent maintenant les mêmes utilisateurs.