Я уже немного писал о Simple phpBB3 SEO mod Rewrite в посте про установку кода Sape в phpBB. И недавно я сталкнулся с проблемой интеграции форума на phpBB3 в Drupal. Для интеграции использовался модуль phpBBforum. Этот модуль предоставлять все необходимые функции: полное дублирование профилей пользователей вместе с аватарами и подписями, автоматическая авторизация пользователей основного сайта на форуме, отображение активных пользователей, последних топиков в блоке друпала.

Так вот последняя функция из перечисленных отказывалась работать при установленном на форуме SEO моде, вызывая ошибку Fatal error: Call to a member function set_user_url () on a non-object in /includes/functions_content.php on line XXXX.

В файле functions_content.php ошибка вызывается операцией над объектом $phpbb_seo, который почему-то не инициализируется предварительно. Вот как я выкрутился из этой ситуации:

  • скопировал папку includes из немодифицированного дистрибутива форума в папку _includes туда, где на хостинге установлен форум с модом
  • в файле phpbb_api.php поменял пути следующим образом:
    // Include files
    require_once($phpbb_root_path . '_includes/acm/acm_' . $acm_type . '.' . $phpEx);
    require_once($phpbb_root_path . '_includes/cache.' . $phpEx);
    require_once($phpbb_root_path . '_includes/template.' . $phpEx);
    require_once($phpbb_root_path . '_includes/session.' . $phpEx);
    require_once($phpbb_root_path . '_includes/auth.' . $phpEx);
    require_once($phpbb_root_path . '_includes/functions.' . $phpEx);
    require_once($phpbb_root_path . '_includes/functions_content.' . $phpEx);
    require_once($phpbb_root_path . '_includes/constants.' . $phpEx);
    require_once($phpbb_root_path . '_includes/db/' . $dbms . '.' . $phpEx);
    require_once($phpbb_root_path . '_includes/utf/utf_tools.' . $phpEx);
    require_once($phpbb_root_path . '_includes/hooks/index.' . $phpEx);
    require_once($phpbb_root_path . '_includes/functions_user.' . $phpEx);
  • заменил _includes/functions_user.php на тот, что идет с друпаловским модулем phpBBforum

Теперь все блоки отображаются, но ссылки в них сформированы так, как будто SEO мод не установлен. Чтобы избежать дублирования контента их придется закрыть от индексации. Я поднял вопрос о данной проблеме на drupal.ru, но пока лучшего решения никто не предложил.