Descripción: Utiliza varios foros que compartan la misma tabla de usuarios. También se comparten avatares, mensajes privados, grupos y temas
Autor: smigit
Fecha: Sat Feb 01, 2003
Traducción: t0m|ta - http://www.tomatoma.ws
Tipo de Documento: HowTo
Palabras clave: multiple, usuarios, base de datos, instalar, compartir,
Categoría: MOD-ificaciones
Hay varias formas de compartir la base de datos de usuarios entre varios foros. Tened en cuenta que esto es sólo uno de los métodos posibles y que se puede alterar fácilmente dependiendo de lo que quieras compartir. Con este método compartiras la lista de banes (exclusión), disallow, grupos, mensajes privados, rangos, sesiones, emoticones, y "skins" (temas, themes). Asumimos que estás haciendo una instalación nueva, pero si no es el caso, utiliza el foro que tengas actualmente como base para todas las furutras tablas. También debes asegurarte de disponer de phpMyAdmin.
PASO 1
Instala un phpbb de la forma habitual eligiendo el prefijo que quieras para las tablas.
PASO 2
Abre phpMyAdmin y quitalé el prefijo a las siguientes tablas
- Banlist,
- disallow
- groups
- privmsgs
- privmsgs_text
- ranks
- sessions
- smilies
- themes
- themes_name
- user_group
- users
- words
Instala otro phpbb en otro directorio, pero utilizando la misma base de datos simplemente utiliza un prefijo distinto que el que utilizaste para el primer foro.
PASO 4
Abre el archivo includes/constants.php file del primer foro que tengas instalado y sustituye el código original:
Código: Seleccionar todo
// Table names
define('AUTH_ACCESS_TABLE', $table_prefix.'auth_access');
define('BANLIST_TABLE', $table_prefix.'banlist');
define('CATEGORIES_TABLE', $table_prefix.'categories');
define('CONFIG_TABLE', $table_prefix.'config');
define('DISALLOW_TABLE', $table_prefix.'disallow');
define('FORUMS_TABLE', $table_prefix.'forums');
define('GROUPS_TABLE', $table_prefix.'groups');
define('POSTS_TABLE', $table_prefix.'posts');
define('POSTS_TEXT_TABLE', $table_prefix.'posts_text');
define('PRIVMSGS_TABLE', $table_prefix.'privmsgs');
define('PRIVMSGS_TEXT_TABLE', $table_prefix.'privmsgs_text');
define('PRIVMSGS_IGNORE_TABLE', $table_prefix.'privmsgs_ignore');
define('PRUNE_TABLE', $table_prefix.'forum_prune');
define('RANKS_TABLE', $table_prefix.'ranks');
define('SEARCH_TABLE', $table_prefix.'search_results');
define('SEARCH_WORD_TABLE', $table_prefix.'search_wordlist');
define('SEARCH_MATCH_TABLE', $table_prefix.'search_wordmatch');
define('SESSIONS_TABLE', $table_prefix.'sessions');
define('SMILIES_TABLE', $table_prefix.'smilies');
define('THEMES_TABLE', $table_prefix.'themes');
define('THEMES_NAME_TABLE', $table_prefix.'themes_name');
define('TOPICS_TABLE', $table_prefix.'topics');
define('TOPICS_WATCH_TABLE', $table_prefix.'topics_watch');
define('USER_GROUP_TABLE', $table_prefix.'user_group');
define('USERS_TABLE', $table_prefix.'users');
define('WORDS_TABLE', $table_prefix.'words');
define('VOTE_DESC_TABLE', $table_prefix.'vote_desc');
define('VOTE_RESULTS_TABLE', $table_prefix.'vote_results');
define('VOTE_USERS_TABLE', $table_prefix.'vote_voters');
Código: Seleccionar todo
// Table names
define('AUTH_ACCESS_TABLE', $table_prefix.'auth_access');
define('BANLIST_TABLE', 'banlist');
define('CATEGORIES_TABLE', $table_prefix.'categories');
define('CONFIG_TABLE', $table_prefix.'config');
define('DISALLOW_TABLE', 'disallow');
define('FORUMS_TABLE', $table_prefix.'forums');
define('GROUPS_TABLE', 'groups');
define('POSTS_TABLE', $table_prefix.'posts');
define('POSTS_TEXT_TABLE', $table_prefix.'posts_text');
define('PRIVMSGS_TABLE', 'privmsgs');
define('PRIVMSGS_TEXT_TABLE', 'privmsgs_text');
define('PRIVMSGS_IGNORE_TABLE', $table_prefix.'privmsgs_ignore');
define('PRUNE_TABLE', $table_prefix.'forum_prune');
define('RANKS_TABLE', 'ranks');
define('SEARCH_TABLE', $table_prefix.'search_results');
define('SEARCH_WORD_TABLE', $table_prefix.'search_wordlist');
define('SEARCH_MATCH_TABLE', $table_prefix.'search_wordmatch');
define('SESSIONS_TABLE', 'sessions');
define('SMILIES_TABLE', 'smilies');
define('THEMES_TABLE', 'themes');
define('THEMES_NAME_TABLE', 'themes_name');
define('TOPICS_TABLE', $table_prefix.'topics');
define('TOPICS_WATCH_TABLE', $table_prefix.'topics_watch');
define('USER_GROUP_TABLE', 'user_group');
define('USERS_TABLE', 'users');
define('WORDS_TABLE', 'words');
define('VOTE_DESC_TABLE', $table_prefix.'vote_desc');
define('VOTE_RESULTS_TABLE', $table_prefix.'vote_results');
define('VOTE_USERS_TABLE', $table_prefix.'vote_voters');
Repite este paso con el segundo foro
PASO 6
Configura los foros a través de sus respectivos paneles de control, asegurándote de que ambos tienen la misma configuración para las cookies. Cómo no comparten la configuración, ésta puede ser distinta en cada foro, puedes establecer un skin por defecto distinto para cada uno y saltarte la preferencia de los usuarios. Sólo necesitarás un directorio de avatares en lugar de dos ahorrandote así un espacio significativo.
PASO 7
Ya debería funcionar, registra una nueva cuenta en uno de los foros y ve al otro a ver si la cuenta está allí también, si está, es que todo funciona.
PASO OPCIONAL
Si quieres puedes eliminar las tablas redundantes, serán las que figuran en el paso 2 (en el segundo foro), aunque es más fácil dejarlas ahí. Asegúrate de no cargarte ninguna de las tablas sin prefijo que son absolutamente necesarias