Вы здесь

phpBBforum Integration module

Интеграция форума phpBB и Друпала.

Модуль phpBBforum Integration module позволяет интегрировать форум phpBB с Друпалом. Модуль требует применения патча, а посмотреть версию phpBB, с которой проведена интеграция текущей версии модуля, можно обратившись к файлу INSTALL.txt (в содержании файла содержится упоминание версии форума).

Возможности

  • phpBB может быть полностью внедрён в Drupal
  • phpBB может работать в отдельном окне, в фрейме внутри Друпала на странице Друпала (за исключением ACP)
  • Темы phpBB могут создаваться из документов Drupal
  • Комментарии phpBB могут использоваться вместо комментариев Drupal
  • Модуль можно установить на рабочем сайте с существующими пользователями
  • Идентификация и синхронизация происходит в обоих направлениях
  • Происходит синхронизация с логинами, паролями, почтовыми адресами, подписями, аватарами (для пользователя №1 в Drupal и пользователя №2 в phpBB синхронизация не делается по соображениям безопасности)
  • Синхронизация информации профилей при включенном модуле Profile
  • Синхронизация CCK-полей профиля при включенном модуле Content profile
  • Синхронизация ролей и групп
  • Поддержка модулей Birthdays, Avatar Selection, Signatures for Forums

Генерируемые модулем блоки

  1. phpBBforum: hidden authentication — позволяет пользователям форума входить в аккаунт на Друпал-сайте, обеспечивая при этом идентификацию и синхронизацию с форумом
  2. phpBBforum: new forum topics — список последних тем на форуме
  3. phpBBforum: new forum posts — список последних комментариев на форуме
  4. phpBBforum: online forum users — список пользователей, которые находятся в текущее время на форуме
  5. phpBBforum: forum statistics — статистика форума (количество пользователей, веток, сообщений, новые пользователи и т.д.)
  6. phpBBforum: personal messages — сообщения залогиненного пользователя
  7. phpBBforum: top posters — список ведущих комментаторов

Установка и настройка

Содержание файла INSTALL.txt в переводе givchik:

Установка

Ваш "PHPBB" форум должен быть установлен в подкаталог каталога установки "Drupal" для того, чтобы запустить его как страницу.
Например, /phpBB3. Но вы можете использовать свое имя, но не /phpbbforum.

I. Загрузить "phpBBforum" модуля http://drupal.org/project/phpbbforum
  
   Распакуйте архив.
   Распакованный архив содержит каталоги и файлы, как показано в левой части в таблице ниже.

   Модуль -------------------------> Путь в Вашем сайте

                                     (Drupal основной (base) путь: /home/vb/www/example.com/public_html)
+/phpbbforum ----------------------> +/sites/all/modules/phpbbforum
                                     (phpBB основной (root) путь: /home/vb/www/example.com/public_html/phpBB3/)
  +/includes                         (Путь к PHPBB API файлам: sites/all/modules/phpbbforum/includes/) 
    +/phpbbvbridge
    phpbb_api.php                    phpBB api название файла: phpbb_api.php

  +/contrib
    +/phpbbdrupal                    (Drupal основной (base) путь: /home/vb/www/example.com/public_html)
      +/images --------------------> +/images
      +/root ----------------------> +(phpBB основной (root) путь: /home/vb/www/example.com/public_html/phpBB3/)
        phpBB-embed-3.0.6.patch ---> +/phpBB3/phpBB-embed-3.0.6.patch
        +/includes ----------------> +/includes
          functions_user.php ------> functions_user.php (заменить или патч)
        +/styles ------------------> +/styles
          +/prosilver-embed -------> +/prosilver-embed
          +/subsilver2-embed ------> +/subsilver2-embed

II. Копирование "phpbbforum" и "PHPBB", каталогов и файлов
         
  1) Скопируйте "phpbbforum" в ваш каталог модулей.
 
     sites/all/modules/phpbbforum
 
     Вам не нужно копировать подкаталог .../phpbbforum/Contrib

  2) Скопируйте содержание подкаталога .../phpbbforum/contrib/phpbbdrupal/styles в подкаталог /phpBB3/styles

  3) Копируем каталог .../phpbbforum/contrib/phpbbdrupal/images сразу в корень Drupal.
     Вместо этого можно скопировать файл /images/spacer.gif в любое другое место, но указать потом путь к нему в файле
     phpBB3\styles\prosilver-embed\template\editor.js в функции colorPalette(dir, width, height) (строка 335).
    
     Относительный путь img src="/images/spacer.gif" обеспечивает доступ к spacer.gif также в автономном режиме в "Drupal"
     только если вы копируете каталог /images в корневой каталог "Drupal".
    
     Не забудьте добавить строку
    
     Disallow: /images/
    
     в файле robots.txt.

III. Применить патч для "PHPBB"

    Патч сделан из чистого "phpBB3-3.0.6".
   
    Если вы не хотите использовать встроенный (базовый) режим, вы можете просто
    скопировать .../phpbbforum/contrib/phpbbdrupal/includes/functions_user.php в /phpBB3/includes/functions_user.php
   
    Если вы не хотите использовать встроенный режим и обновляетесь с предыдущей версии модуля 1.0, восстановите исходный functions_user.php.
    Новый патч содержит новые изменения.
   
    Все изменения, внесенные патчингом не влияют на поведение автономного "phpBB3".

    Перейти в директорию "PHPBB".

      cd ./phpBB3

    При обновлении с предыдущей версии модуля, вы можете восстановить исходные файлы
    "PHPBB" с предыдущего патча.

      patch -p0 -R < phpBB-embed-3.0.5.patch
     
    Патчинг PHPBB. Выберите подходящий файл для вашей версии PHPBB.

      patch -p0 < phpBB-embed-3.0.6.patch
     
    См. http://drupal.org/patch/apply для выяснения подробностей или если что-то неправильно.

IV. Установка и настройка модуля "phpbbforum"

  1) Чтобы проверить, как вы будете аутентифицированы, войдите на  "PHPBB" форум в качестве администратора.

  2) Установите "phpbbforum" модуль, как обычно.
     Открыть в новом окне браузера страницу с вашим сайтом, зайдите как администратор,
     перейдите на вкладку Администрирование>>Модули и включите модуль "phpBBforum" и модуль "профиль (profile)".
 
  3) Запустите update.php при обновлении с предыдущей версии модуля.
     См. http://drupal.org/upgrade/running-update-php для деталей.

  4) Перейдите на вкладку Администрирование >> Конфигурация сайта >> Настройки модуля phpBBforum.
 
     Перейдите phpBBforum настройки и укажите путь к
     PHPBB основной (root) (путь к файлу config.php форума).
     (PHPBB основной (root) путь: /home/vb/www/example.com/public_html/phpBB3/)
    
     Сохранить настройки и проверте, что модуль "phpBBforum" успешно подключился к БД форума и вы правильно аутентифицированы.

     Ваш путь настройки должны выглядеть следующим образом
    
     "PHPBB" основной (root) путь:
     /home/vb/www/example.com/public_html/phpBB3/
     Путь в каталог форума. Введите полный путь к каталогу, где установлен "PHPBB".

     Путь к phpBB api файлу:
     sites/all/modules/phpbbforum/includes/
     Введите полный путь к каталогу, где phpBB api находится.

     phpBB api название файла:
     phpbb_api.php
     Введите имя phpBB api файла.

  5) Для того чтобы запустить PhpBB внутри страницы "Drupal" выберите подходящий режим:
     (Для корректной работы, чистые ссылки должны быть включены.)
  
     способы отображения PHPBB:
     В окне
     Во фрейме на странице Drupal
   X как страница Drupal
 
     Установите другие параметры и сохранить настройки.
           
  6) Убедитесь, что соответствующие поля profile.module существуют. Если необходимо создайте profile.module поля, которые совпадают с полями PHPBB профиля.

  7) Перейдите к блокам.
     Включить phpBBforum: спрятать блок аутентификации.
     Настройте эту опцию видимости

     Показать блок на определенных страницах:
     * Показывать на всех страницах кроме перечисленных.
     Страницы:
     user/reset/*
     user/password

     Не выключайте его в будущем, если вы хотите расширенной синхронизации.
     Включить блоки "phpBBforum" которые вы хотите использовать (опционально).
  
  8) Установка ссылки на страницу "phpbbforum".

    1. Попробуйте ссылка http://example.com/phpbbforum

    2. Если страница phpbbforum не найдена, перейдите Администрирование >> Конфигурация сайта >> Быстродействие
 
    Отчистите кэшированные данные
   
    3. Перейдите в Администрирование >> Создание сайта > Меню > Навигация
    См. пункт меню с пустым названием, в режиме (отключенный (Disabled))
    Вы можете включить ее, если вы не хотите видеть phpbbforum в  Основные ссылки "Primary links"

    Если вы включите это, страница вашего форума будет с заголовком. Сброс поможет удалить заголовок страницы, если вы отключили его.

    4. Перейдите в Администрирование>> Создание сайта >> меню >> Основные ссылки "Primary links"
    Войдите в меню пункт phpbbforum.

    Главная страница и ссылку на PHPBB на странице это

    phpbbforum

    Чтобы изменить это имя вы можете добавить псевдоним URL.
   
    Добавить другой псевдоним URL (Система путь -> URL Alias)
   
    По пути "forums"
   
    phpbbforum -> forums
    phpbbforum/index.php -> forums/index.php
    phpbbforum/viewtopic.php -> forums/viewtopic.php
    phpbbforum/viewforum.php -> forums/viewforum.php
    phpbbforum/viewonline.php -> forums/viewonline.php
    phpbbforum/memberlist.php -> forums/memberlist.php 
    phpbbforum/posting.php -> forums/posting.php
    phpbbforum/search.php -> forums/search.php
    phpbbforum/ucp.php -> forums/ucp.php
    phpbbforum/mcp.php -> forums/mcp.php
    phpbbforum/faq.php -> forums/faq.php
    phpbbforum/report.php -> forums/report.php
    phpbbforum/adm/index.php -> forums/adm/index.php
   
    Администрирование >> Создание сайта >> псевдонимы URL >> Добавить псевдоним
   
    Существующая система путь: http://example.com/phpbbforum
   
    Укажите существующий путь которому вы хотите добавить псевдоним. Например: node/28, forum/1, taxonomy/term/1+2.
   
    http://example.com/forums

    Укажите альтернативные пути, по которому эти данные могут быть доступны.
    Например, введите "about" при написании о странице.
    Использование относительный путь и не добавляйте "/", или URL псевдоним не будет работать.
   
    Все ссылки из блоков будут иметь путь "forums", а не системный phpbbforum.
   
    Он работает с или без включенных Чистых ссылок.
 
  9) Что бы настроить представление контента для форума"phpBB"

    1. Перейдите к Типы контента > Изменить тип содержимого
     
      Установите в разделе Настройки представления phpBBforum
     
      представление Drupal в PhpBB:
      ( ) Отключено
      (*) Включено
     
      Drupal представления PhpBB:
      ( ) Отключено
      (*) Включено
       
    2. Для того чтобы PHPBB комментарии в статье (node), установить отображать в настройках под сообщением:
     
      Расположение комментарии PHPBB теме:
      ( ) Отображаются только на страницах phpBBforum
      (*) отображать ниже сообщение
       
      Если вы хотите отображать как и Drupal так и PHPBB комментарии, вы должны изменить настройки:
     
      Отображать комментарии Drupal:
      (*) Показывать только PHPBB комментарии
      ( ) Показать как и Drupal так и PHPBB комментарии

    3. Для отображения темы комментария PHPBB в статье,
      Вы должны вставить в вашей теме в node-your_content_type.tpl.php эти строки
   
      <?php if ($phpbbforum_comments): ?>
        <div id="phpbbforum-node-comments"><?php print $phpbbforum_comments; ?></div>
      <?php endif; ?>
     
      В рамках темы Garland вы можете использовать к примеру файл garland.node-story.tpl.php.
      Переименовать его в node-story.tpl.php и скопируйте themes/garland directory.
 
В. Настройка PhpBB форум
 
  Обратите внимание на настройки PHPBB:
 
  1) Перейдите на Панель администрирования форума > Общие> настройки URL-адреса сервера

    настройки URL-адреса сервера
    Доменное имя:
    Доменное имя этого форума происходит от (например, www.example.com).
    
    В Drupal settings.ph и переменная $base_url и доменное имя должны быть и с и без WWW.
   
    Доменное имя: www.example.com
    $base_url = 'http://www.example.com';
    или
    Доменное имя: example.com
    $base_url = 'http://example.com';
   
    Сценарий пути: /phpBB3
    The path where phpBB is located relative to the domain
    Путь, где PHPBB расположен относительно домена
    name, e.g. /phpBB3.
    Если у вас есть Drupal и phpBB3 установлен в суб-дерикторию вы должны ввести

    Сценарий пути: /subdirectory/phpBB3

    Force server URL settings.
   
    Force server URL settings: (*) Да () нет
  
  2) Cookie настройки.

    Cookie домен:. Example.com
    Cookie имя: [random name]
    Cookie путь: /

    Примечание: имя домена .example.com (начинать с точки).
  
  3) Настройки регистрации пользователей.

    Активация учетной записи: () Отключить (*) отсутствует () Пользователем () Admin-ом
   
    Выбрать () отсутствует или () Пользователем
    Если установить Пользователем, пользователь должен в первый раз Войти в PHPBB и после этого вы увидите, что он зарегистрирован.
    Установите отсутствует в испытательных целях.

    Имя пользователя длина:
    Минимальное и максимальное количество символов в именах пользователей. [1] [30]

    Длина пароля:
    Минимальное и максимальное количество символов в паролях. [5] [30]

  4) Параметры безопасности.

    Проверить IP на DNS Blackhole список: () Да (*) Нет

    Вы можете отключить
    Проверить домен электронной почты для правильных МХ записей: () Да (*) Нет
    Если включено, домен электронной почты предоставленный на регистрации и при изменении профиля проверяется на правильность MX записей.

  5) Перейдите на Панель администрирования форума > Общие настройки > Загрузить

    Сессия, длина: 86400
    Сессии истекает после этого времени в секундах.
    Установите это значение в соответствии с вашими потребностями.

  6) Перейдите на Панель администрирования форума > Стили и установить необходимые вставки стилей

    prosilver-embed
    Copyright: (C) phpBB Group, 2007 Install
    or/and
    subsilver2-embed
    Copyright: (C) 2005 phpBB Group Install

    В установленном стиле убедитесь, что стиль является активным. Не ставьте его по умолчанию. Сохранить.

  Вы должны проверить все настройки, которые могут повлиять на поведение модуля.

VI. Темы оформления
 
  Вы должны понимать, что на страницах phpbbforum будут CSS конфликты
  между Drupal и файлы PHPBB CSS.
  Модуль не несет ответственности за это. Вам придется решать их самостоятельно.
 
  Для тематизации на страницах phpbbforum  модуль обеспечивает:

  1) 2 стартовых стиля PhpBB:
 
    prosilver-embed
    subsilver2-embed
   
  2) файл phpbbforum.css
 
  3) стартовые CSS файлы, для вашей темы "Drupal" для стиля "phpBВ":
 
    garland-phpbbforum-prosilver.css
    garland-phpbbforum-subsilver2.css
   
    phpbbforum-prosilver.css
    phpbbforum-subsilver2.css
   
    Вы можете скопировать эти файлы в каждом каталоге используемой вами Drupal темы и настроить их по отдельности для этой темы.
    В таком случае стартовые CSS не используется.
   
  4) файл phpbbforum.theme.custom-sample.inc и две функции в нем
 
    phpbbforum_set_style_example_embed
    phpbbforum_style_example_embed
   
    Если вы используете свой собственный стиль PHPBB то:
   
    а) переименовать phpbbforum.theme.custom-sample.inc к phpbbforum.theme.custom.inc

    б) Заменить 'example' названием вашей темы PhpBB
   
    с) раскомментировать предложенные строчки согласно происхождению вашей темы (prosilver или subsilver2)
    или напишите свой код.
 
    Если вы не предоставите эти функции для модуля, он анализирует имя стиля.
    Если PhpBB стиль создается из prosilver и его название содержит строку "prosilver"
    и начинается с "pro" модуль обрабатывает этот стиль, как prosilver.
    В других случаях модуль обрабатывает этот стиль, как subsilver2.
    В этих случаях вам не нужно создавать и редактировать эти функции.
   
  Стили prosilver-embed и subsilver2-embed используются только при работе PHPBB в нутри Drupal страницы.
  PhpBB администратор или PHPBB пользователи должны выбирать только оригинальные prosilver или subsilver2 стили.
  Если у вас есть свой собственный пример стиля, вы должны предоставить example-embed (или example_embed)и оно должно быть активным, чтобы запустить в Drupal.
 

VII. Разное
 
Необходимо установить вручную define('PHPBB_SEO_TOOLKIT', 1); в phpbb_api.php при использовании этой модификации phpBB3.
Вы можете установить с  ДБ постоянное соединение в phpbb_api.php define('PHPBB_DB_PCONNECT', false); по умолчанию это правда.

VIII. Подсказки
 
Не думаю, что встроенный в Drupal PHPBB будет работать на Вашей теме прямо из коробки.
Установите сначала на локальном компьютере и убедитесь в том, что с вашими установками модуль работает так, как вы ожидаете.
для настройки модуля в первый раз используйте Garland в Drupal, и prosilver либо subsilver2 в PHPBB темы вместо пользовательских тем.
Не используйте экзотических макетов, вы никогда не будете использовать на производственных площадях, только для проверки модуля.
Не использовать доменное имя с локального http://localhost.example.com.
Начните обучение и тестирование модуля с позициями, похожими на ваше расположение.

Комментарии

Изображение пользователя givchik

16.06.2010

огромное спасибо автор-у(-ам) сайта "Азбука WEB" за предоставленную статью о патчинге в окнах http://azbukaweb.ru/run-patch-for-windows
для особо ленивых есть пропатченые файлы по адресу http://forum.bb3x.ru/topic-1199

Добавлено от 27.07.2010

С установкой проблем не возникло, проблемы появляются при аутентификации пользователя. Пока пробую.)

Примечания по переводу

  • в перечне файлов модуля указаны не все документы
  • патчинг форума под окнами результата не дает (установка проходит но перейти на форум потом нельзя), подробная инструкция взята на Хостер01
  • более детальные советы по действиям, в виде комментариев к инструкции, подготовятся при удачном завершении установки и настройки
Изображение пользователя Владимир

На сайте c Drupal6 настроил форум но не могу добиться отображения страницы форума в окружении друпала (меню, блоки)...

делал - способы отображения PHPBB:
В окне
Во фрейме на странице Drupal
X как страница Drupal

VI. Темы оформления - делал.

Изображение пользователя givchik

Владимир, для того чтоб у вас сработало отображение форума в теле странички нужно выбрать пункт "как страница Drupal".
Что касается тем оформления, то они отвечают за вид (результат интеграции) страницы.

Изображение пользователя Владимир

phpBB display way: выбрано - In the Drupal page. (Except for ACP)

phpBB ACP display way: тут пробовал оба
сейчас стоит - In frame inside Drupal page

Форум отображается, но только он, нет остальной информации от друпала (блоки, меню)

Изображение пользователя givchik

странно у меня все, что касается вывода данных работало, проблемы были с регистрацией....
Сейчас вам точно подсказать не смогу, так как им не пользуюсь. Но в ближайшее время буду тестировать для нового проекта и в любом случае отпишусь по настройкам и этапам (если вам горит то лучше меня не ждите)....
И еще одно, если поковырять Drupal и его форум, то можно выжать 80% phpBB (если говорить именно как о форуме) если все таки вас интересует сайт то может phpBB вам и не нужен....)))) Такие решения чаще всего нужны когда одним только форумом не обойтись.)

Изображение пользователя Владимир

На некоторых сайтах встречал что может это форум виноват 3.0.8 версия

Изображение пользователя givchik

изначально интеграция разрабатывалась для Drupal 6.13 и phpBB 3.0.5 сам же разработчик говорит о поддержке только phpBB 3.0.6 - так, что установка более свежих версий это экстрим, только на свой страх и риск.)))

Изображение пользователя Антон

Возникла странная проблема. Вроде как всё установилось, но все блоки модуля (новые посты, новые сообщения, статистика) почему то ведут не туда, а именно: сайт находится на localhost/site, форум на localhost/site/phpBB3
Так вот все ссылки в блоках ведут на localhost/phpBB3/..., т.е. пропускается директория /site/
Вроде все настройки правильные, но ошибка всё равно присутствует. Помогите, пожалуйста, разобраться.

Изображение пользователя givchik

Антон, а Вы настраивали свой сервер? По всей видимости это Денвер...
Если настройки проводились то по смотрите, что не так с настройками модулей, возможно нужна правка кода, переадресация....

Изображение пользователя Антон

Нет, не Денвер. Всё по отдельности ставилось. Не подскажете, какие именно настройки и какие именно файлы с кодом смотреть?

Изображение пользователя Антон

Нашёл решение проблемы. Оказывается, в настройках форума phpBB3, в разделе Общие -> Настройки сервера надо было поставить переключатель Принудительные настройки URL сервера: на Да.

Изображение пользователя givchik

Антон, сори, что вчера не отозвался - спать пошел.... Если мне не изменяет память, это единственный простой и рациональный способ решения проблемы.)
Удачи в работе!)
Поделитесь секретом сервера.)