Как в Joomla использовать одну базу данных пользователей для нескольких сайтов
- Подробности
- Категория: Компьютеры, ПО
- Опубликовано 06.08.2012 23:08
Как же настроить использование одной базы данных пользователей для нескольких CMS Joomla? Для этого выполните все шаги от начала до конца:
1) Открываем файл /components/com_user/controller.php
2) Находим функцию register_save()
ln 249
3) В самом конце перед строкой:
$this->setRedirect('index.php', $message);
Вставляем код:
$new_user_name = $user->get('username');
$new_user_email = $user->get('email');
$new_user_original_password = $password;
и дальше в зависимости от того где находятся таблици пользователей остальных сайтов.
3.1) Если все несколько сайтов в одной БД с разными префиксами тогда вставляем этот код для каждого дополнительного сайта:
$db = & JFactory::getDBO();
$query = "INSERT INTO 'ИМЯ_ТАБЛИЦИ_С_ПРЕФИКСОМ' ( ПОЛЯ ) VALUES ( ЗНАЧЕНИЯ );";
$db->setQuery( $query );
$db->query();
3.2) Если надо копировать пользователя в другую БД тогда для каждого дополнительного сайта вставляем:
$option['driver'] = 'mysql'; // Драйвер
$option['host'] = 'localhost'; // Хост
$option['user'] = 'root'; // Пользователь
$option['password'] = '123456'; // Пароль
$option['database'] = 'other_db'; // Имя базы данных
$option['prefix'] = 'prefix_'; // Префикс таблиц (может быть пустым)
$db = & JDatabase::getInstance( $option );
$query = "INSERT INTO '#__ИМЯ_ТАБЛИЦИ_БЕЗ_ПРЕФИКСА' ( ПОЛЯ ) VALUES ( ЗНАЧЕНИЯ );";
$db->setQuery( $query );
$db->query();