Тут дело вовсе не в константе IN_PHPBB. Оно же орёт, что
Fatal error: Cannot redeclare deregister_globals()
- там ниже IN_PHPBB в процитированных ошибках было. Я посмотрел, на phpbb.com пишут, что это бывает, когда common.php подключается по второму разу. Потому и говорю, что работает только в виде:
Код: Выделить всё
<?php
$phpbb_root_path = './';
require($phpbb_root_path . 'portal.php');
?>
Но как при этом заставить читать $config? Никак.
Вся соль в том, чтобы выбрать нужную настройку из конфигурационной таблицы.
Добавлено спустя 2 минуты 31 секунду:
Либо писать какой-то нудный обходной скрипт выборки из бд, чтобы обойтись без внутренних phpBB-шных переменных (аля $config, $db и т.п.). Но не знаю, возможно ли это и поможет ли в этом движке (может, он снова что-нибудь запретит).
Добавлено спустя 19 минут 31 секунду:
Заработало в обход:
Код: Выделить всё
<?php
$phpbb_root_path = './';
$link = mysql_connect('server', 'username', 'password');
mysql_select_db('test');
$sql = mysql_query('SELECT config_value FROM phpbb_config WHERE config_name = \'board_main\'');
if (!$sql)
{
die(mysql_error());
}
$index = mysql_result($sql, 0);
define('WEB_FORUM_INDEX', (!empty($index) ? '/' . $index : '/index.php'));
mysql_close($link);
require($phpbb_root_path . WEB_FORUM_INDEX);
?>
Но, как понимаю, это не лучшее решение.