Интеграция WordPress и phpBB с помощью WP_w3all

Интеграция WordPress и phpBB с помощью WP_w3all отличается от интеграции посредством плагина WP-United. Разработчик плагина предоставляет поддержку текущей 4.х.х ветки движка WordPress, а также phpBB версий 3.1.х и 3.2.х в режиме полной интеграции, включая функции объединения и единой системы логирования и регистрации пользователей. Поддержка более старой версии phpBB 3.0.х осуществляется только в режиме «phpBB внутри WordPress» с использованием разнообразных виджетов и шорткодов.
Итак, была произведена чистая установка phpBB 3.2.2 в директорию /forum относительно корня сайта на WordPress. Попробуем по шагам пройтись по настройке плагина интеграции, опираясь на инструкцию автора. Для начала отключим и удалим другие плагины интеграции, если они были, например, WP-United, как написано тут.

Теперь проверим соблюдение нескольких условий успешной интеграции.
1. Имя пользователя-администратора и его e-mail должны быть одинаковыми и в WordPress, и в phpBB. Должны присутствовать все дефолтные поля в профайлах пользователей phpBB.
2. В админ-панеле phpBB необходимо запретить пользователям изменять свои логины и использовать повторные e-mail адреса. В разделе «Ограничения на символы в имени пользователя» выбирайте «Любые буквы, цифры и разделители».
Интеграция WordPress и phpBB с помощью WP_w3all.
3. В админ-панеле phpBB в разделе «Настройки cookies» в поле «Домен cookie» записываем mysite.ru, не зависимо от того находится форум в директории /forum или установлен как субдомен forum.mysite.ru. В поле «Путь cookie» прописываем корень сайта /.
Интеграция WordPress и phpBB с помощью WP_w3all
Не забывайте нажимать кнопку «отправить» для сохранения измененных параметров. Также, если изменились настройки cookie, разлогиньтесь в phpBB, очистите cookie в браузере и залогиньтесь снова.

Пришло время установить плагин WP_w3all. По стандартной схеме в меню WordPress «Плагины» -> «Добавить новый» -> «WP_w3all» -> «Установить» -> «Активировать».
Интеграция WordPress и phpBB с помощью WP_w3all
Заходим в настройки плагина WP_w3all в меню WordPress «Настройки» -> «WP w3all». Тут, первым делом, нас просят указать абсолютный путь до файла конфигурации форума config.php и URL форума без завершающего /. На разных хостингах абсолютные пути, естественно, разные, а нам необходимо для правильной настройки указать именно абсолютный путь до файла (путь от корня сервера). В этом нам поможет небольшой файлик. Создадим его в корне Вашего форума, там, где находится и config.php, назовем его path.php и вставим в него следующий код.

Теперь откроем в браузере адрес www.mysite.ru/forum/path.php. На экране будет примерно следующая строчка /home/user/data/www/mysite.ru/forum/path.php — это и есть абсолютный путь. Обратите внимание, что путь заполняется без конечного файла config.php, а только до него!
Интеграция WordPress и phpBB с помощью WP_w3all
Заполняем указанные выше поля без завершающего /. и жмём кнопку «Save WP_w3all configuration«. Переходим к разделу «WP_w3all phpBB embedded on WordPress Template», заполняем поле одним из приведенных значений: board, boards, community, forum, forums. Жмем кнопку «Create/Rebuild WP_w3all phpBB Page Template«. Создаем пустую страницу через меню WordPress «Страницы» -> «Добавить новую» с названием введенного значения, например forums и публикуем её.
Интеграция WordPress и phpBB с помощью WP_w3all
Далее нам нужно отредактировать файл шаблона форума overall_footer.html, который расположен в директории styles/prosilver/template/ относительно корня форума. После строки

или перед закрывающим тегом </body> вставляем следующий код

В строке document.domain = 'localhost'; меняем значение localhost на свое, например mysite.ru. Так как плагин часто обновляется, я рекомендую копировать код с сайта автора, куда можно попасть по ссылке, отмеченной на вышеприведенной картинке или напрямую — please read this article. В последней строке вышеприведенного кода <script type="text/javascript" src="iframeResizer.contentWindow.min.js" defer></script> вписываем полный путь к файлу iframeResizer.contentWindow.min.js, например, <script type="text/javascript" src="http://www.mysite.ru/forum/iframeResizer.contentWindow.min.js" defer></script>. Так рекомендует автор плагина для уменьшения подводных камней, которые мы обсудим дальше. Теперь в разделе «Last Topics and Login widgets links for embedded phpBB iframe into WordPress» выберем «Yes» для правильных ссылок на форум с виджетов «Last Topics Posts Widget and Login/out» и нажмем соответствующую кнопку.
Интеграция WordPress и phpBB с помощью WP_w3all
Следующий шаг — копирование файла iframeResizer.contentWindow.min.js из директории wp-content/plugins/wp-w3all-phpbb-integration/addons/resizer/ в корневую директорию форума. Тут начинается «колдовство подводных камней». Пользователь Neuro75 с форума https://www.phpbbguru.net в своем посте под пунктом II) описал интересную ситуацию. Привожу под спойлером, как цитату:

цитата

II)
Нюанс: я не знаю как получилось такое колдунство, но при очередной установке этого плагина с нуля, мне было лень копировать данный файл на компьютер и заливать его в корень WP, поэтому я просто скопировал его из папки в папку средствами админки reg.ru. В результате фрейм не растягивался, пока я не слил файл на машину и не залил в папку. Понимаю, что такого не может быть, однако факт. Может звезды так стали, может админка reg.ru при внутреннем копировании что-то с правами доступа мудрит. Просто обращаю внимание.

[свернуть]

Автор плагина, кстати, описывает загрузку файла по FTP, так что последуем всем советам и загрузим файл iframeResizer.contentWindow.min.js через FTP в корень форума, предварительно скачав его на локальный компьютер. Еще в своем посте Neuro75 приводит описание разнообразных настроек для частных случаев, которые я приводить не буду. Следующий совет от автора — перекомпилировать старые шаблоны phpBB.
Интеграция WordPress и phpBB с помощью WP_w3all
В админ-панеле phphBB «Конфигурация сервера» -> «Нагрузка на сервер» -> «Перекомпилировать старые шаблоны» установить «Да», жмем кнопку «Отправить», потом установим «Нет» и снова «Отправить». И последний шаг в этом колдовстве — очистка кэша форума. «Общие» -> «Конфигурация сервера» -> «Очистить кэш» -> «Выполнить».
Интеграция WordPress и phpBB с помощью WP_w3all
Все выше описанные «танцы» должны устранить эффект сплющивания форума в своем фрейме внутри WordPress. Можно еще почистить куки и кэш в браузере, в котором Вы работаете. В конце концов после набора в адресной строке www.mysite.ru/forums (помните пустую страницу?) у Вас должна получиться примерно следующая картинка.
Интеграция WordPress и phpBB с помощью WP_w3all

Проверим, как работает интеграция пользователей. Для этого зарегистрируемся на форуме.
Интеграция WordPress и phpBB с помощью WP_w3all
Войдем на форум под новым именем Proverka1 и паролем. Обратите внимание, что в верхнем правом углу нас приветствует консоль WordPress как пользователя Proverka1.
Интеграция WordPress и phpBB с помощью WP_w3all
Воспользуемся приветствием и зайдем изменить, например, цветовую схему в профиле пользователя.
Интеграция WordPress и phpBB с помощью WP_w3all

Вариант интеграции со старыми версиями phpBB исключает взаимосвязь пользователей phpBB и WordPress. Хотя может Вам и не нужно объединять пользователей, как и мне. В этом случае можно пропустить настройки куки, одинакового администратора и стандартных полей в профилях пользователей phpBB, как это описано в начале статьи. Но начиная с установки плагина в WordPress, для правильной работы режима «phpBB внутри WordPress» всё необходимо проделать и проверить. Первым шагом по инструкции автора в этом случае следует найти в файле /wp-content/plugins/wp-w3all-phpbb-integration/wp_w3all.php строку //define('WPW3ALL_NOT_ULINKED', true);, раскомментировать её define('WPW3ALL_NOT_ULINKED', true); и сохранить файл.
Всем удачной интеграции!

Интеграция WordPress и phpBB с помощью WP_w3all

Интеграция WordPress и phpBB с помощью WP_w3all: 1 комментарий

  1. Andrey GolubSl

    Хм, пожалуй послушаю умного совета. Т.к. к пути настройки связки WP+phpBB пришел окончательно и бесповоротно сломав в течении крайней недели ранее стоявшую Joomlu пытаясь впилить в нее phpBB. Вот там как раз с взаимной авторизацией беда была. А впилка в дизайн потребовала таких изменений кода, что просто не смог все их вспомнить и откатить. Пришлось прибить, чтоб не мучилась.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *