Вот вам рабочие настройки и работающий демо сайт. На текущий момент, регистрация на форуме отключена и доступна только авторизация.
Dual-login работает во всех направлениях без каких либо проблем и загвоздочек.
-Что касаемо вопроса установки на поддомен. Я пока утверждать не бурусь, но решение есть. Протестирую на локалке, выложу отдельно настройки. И скорее всего данное решение будет доступно не для всех хостингов.
Но на этом мы не заканчиваем нашу конфигурацию. Чуть позже выложу еще несколько дополнительных надстроек дабы довести до ума весь функционал.
На текущий момент замечен один недостаток в данной системе. Логин пользователя из Joomla используется на форуме в качестве имени пользователя. Надо будет подумать как решить данный вопрос.
Интеграция форума phpBB 3.1.2 с Joomla 3.3.6 через компонент JFusion 2.1.0
На борту мы имеем
-phpBB 3.1.2
-Joomla 3.3.6
-JFusion 2.1.0
-PHP Version 5.3.29
Конфигурация нашей настройки
Joomla - master
phpBB - slave
Dual Login - двух сторонняя аутентификация
В нашем конкретном случае мы имеем форум установленный в папку phpbb корневого домена http://world-on-line.ru/
Joomla - http://world-on-line.ru/
phpBB - http://world-on-line.ru/phpbb/
Настройка плагинов и компонентов в JOOMLA
Установка компонента (моста) JFusion в Joomla
Потому скачиваем и устанавливаем последнюю версию с сайта разработчика
Далее:
-Расширения > менеджер расширений
-Расширения > менеджер расширений->Загрузить файл пакета (если установлен JAD)
И выбираем скачанный нами архив jfusion_package
Находим в списке ru-RU Russian (Russia) и нажимаем install (установить)
Находим автоматическую установку
-Установить От JFusion Сервер
И в выпадающем списке выбираем Жмем установить
Далее настраиваем совой плагин как указано на скриншотах
Настройка плагина phpbb3 для работы
Далее настраиваем совой плагин как указано на скриншотах со своими данными для подключения к БД и путями к форуму
Далее как на скриншотах:Для того чтобы узнать полный(абсолютный) путь к папке создаем файл path.php
вставляем в него следующее содержаниезагружаем в корень установленного форума и переходим по ссылкеКод: Выделить всё
<?php echo 'Document root: '.$_SERVER['DOCUMENT_ROOT'].'<br>'; echo 'Полный путь к скрипту и его имя: '.$_SERVER['SCRIPT_FILENAME'].'<br>'; echo 'Имя скрипта: '.$_SERVER['SCRIPT_NAME']; ?>
http://ваш_сайт/папка_форума/path.php где скрипт и отобразит наш полный (абсолютный) путь до приложения
Если у вас в БД уже имеются определенное количество пользователей рекомендую для начала сделать бекап базы данных и только после этого приступать к синхронизации. Хотя создавать бекапы всех и вся перед изменением должно жить у вас в крови.
Настройка групп по умолчанию
Все же рекомендую именно таким образом выставить настройки групп. При данном варианте все администраторы сайта останутся таковыми и на форуме, все остальные пользователи попадут в группу зарегистрированные. Ну и если вы создали учетную запись при установке форума = вашей на сайте то не прийдется лишний раз лезть в БД и менять ручками группу с простого юзверя на админа
Задаем основной(master) и подчиненный(slave) плагины в настройках. CMS выбранная основной берет на себя функционал по регистрации пользователя, в подчиненной же регистрацию мы будем отключать. Теперь переходим в сPanel JFusion и включаем Плагин JFusion
ВключаемПлагин JFusion
И нажимаем включить плагин
Настройка phpBB
Все теперь смело переходим на форум , залогиниваемся, в панели выбираем пункт Администрировать
Авторизуемся в админ панели далее идем
1) Общие->настройки cookies
Как видите Jfusion тут отсутствует
Для решения этого вопроса нам необходимо перейти к нашей базе данных форума для последнего штриха в завершении интеграции Joomla и phpBB когда сайт является у нас основой.
Ну что же идем в phpMyAdmin и выбираем базу данных нашего форума.
Настройки в phpMyAdmin
Выбираем вкладку структура, прокручиваем в самый низ и добавляем три поля в нашу с вами таблицу 1) имя - user_pass_convert тип - VARCHAR длина значения 255 сравнение utf8_bin
2) имя - user_occ тип - VARCHAR длина значения 255 сравнение utf8_bin
3) имя - user_interests тип - TEXT сравнение utf8_general_ci
И нажимаем сохранить.
Для этого переходим в админку Joomla.
Компонеты->JFusion->Новая Синхронизация
В направлении синхронизации выбираем: Импорт пользователей во вспомогательную систему.
В настройке phpbb3 выбираем: Включить этот плагин в синхронизацию
И жмем кнопочку начать.
Все господа. Я вас поздравляю. На этом интеграция полностью закончена. Двухсторонняя аутентификация выполняется в обоих направлениях (авторизация, разлогин)
Теперь что касается поле имени в Joomla которое не передается Jfusion в БД phpBB.
Небольшой хак который не решает данный вопрос если говорить непосредственно установке форума на уже имеющуюся базу данных, но является отличным решением для регистрации новых пользователей через Joomla.
Решение подсмотрено на данном ресурсе.
Для начала переопределяем в нашем шаблоне вывод вида registration для компонента com_users (Как переопределять шаблоны можете прочесть в этой статье).
Простым языком нашей задачей является создать условие когда система будет использовать не системные файлы компонента а непосредственно брать их из папки шаблона. Для чего это нужно? Все просто.
а) Меньше шансов что либо сломать, особенно если вы не придерживаетесь политики создания бекапов.
б) Ваши изменения останутся даже после системного обновления компонента. Так что после очередного обновления джумлы не прийдется хватаясь за голову вспоминать чего же вы там натворили то за этот период))
Для этого переходим в каталог
Код: Выделить всё
каталог joomla/templates/ваш стиль/html/
Если папка com_users существует переходим в нее, если нет то создаем.
Код: Выделить всё
каталог joomla/templates/ваш стиль/html/
Код: Выделить всё
каталог joomla/components/com_users/views
Код: Выделить всё
каталог joomla/templates/ваш стиль/html/com_users
Открываем редактором файл default.php
И в самый конец после
Код: Выделить всё
<?php echo JHtml::_('form.token');?>
Код: Выделить всё
<?php
$doc = & JFactory::getDocument();
$doc->addStyleDeclaration( '#jform_name, #jform_name-lbl{display: none;}' );
$doc->addScriptDeclaration('
window.addEvent("domready", function () {
$("jform_username").addEvent("keyup", function (event) {
$("jform_name").value = $("jform_username").value;
});
});
');
?>
ВАЖНО!!: Данный хак будет работать если вы используете стандартную форму регистрации