Это расширение привязывает MediaWiki к таблице пользователей PhpBB для аутентификации и запрещает создание новых учетных записей в MediaWiki. Пользователи должны будут входить в Wiki с учетной записью PhpBB.
Расширение требует PHP5, MySQL 4 или 5, MediaWiki 1,11 + и phpBB3.
Исходные условия
Установленный рабочий форум phpBB (допустим в папке /phpbb3/)
Установленный движок MediaWiki (папка /wiki/)
Установка
Загружаем расширение с сайта автора либо с зеркала MediaWiki PHPBB Auth v3.0.3.
Копируем содержимое архива в папку /wiki/extentions/
Если вы хотите дать доступ только отдельным пользователям форума, создайте новую группу в форуме под названием Wiki. Если вы установите в нижепреведенном коде переменную $wgPHPBB_UseWikiGroup в значение true, то только пользователи из группы Wiki смогут редактировать MediaWiki.
Если же вы присвоите переменной $wgAuth_Config[‘WikiGroupName’] имя уже существующей группы форума, то все пользователи этой группы будут иметь право редактировать MediaWiki.
Добавляем код в конец файла /wiki/LocalSettings.php, заменяя значения из блока PHPBB User Config на правильные. Если MediaWiki и PhpBB используют разные базы, раскомментируйте и заполните правильными данными блок SQL Сonnection.
// PHPBB User Database Plugin. (Requires MySQL Database)
require_once './extensions/Auth_phpBB.php';
$wgAuth_Config = array(); // Clean.
$wgAuth_Config['WikiGroupName'] = 'Wiki'; // Name of your PHPBB group
// users need to be a member
// of to use the wiki. (i.e. wiki)
// This can also be set to an array
// of group names to use more then
// one. (ie.
// $wgAuth_Config['WikiGroupName'][] = 'Wiki';
// $wgAuth_Config['WikiGroupName'][] = 'Wiki2';
// or
// $wgAuth_Config['WikiGroupName'] = array('Wiki', 'Wiki2');
// )
$wgAuth_Config['UseWikiGroup'] = true; // This tells the Plugin to require
// a user to be a member of the above
// phpBB group. (ie. wiki) Setting
// this to false will let any phpBB
// user edit the wiki.
$wgAuth_Config['UseExtDatabase'] = false; // This tells the plugin that the phpBB tables
// are in a different database then the wiki.
// The default settings is false.
//SQL Connection
//$wgAuth_Config['MySQL_Host'] = 'localhost'; // phpBB MySQL Host Name.
//$wgAuth_Config['MySQL_Username'] = 'username'; // phpBB MySQL Username.
//$wgAuth_Config['MySQL_Password'] = 'password'; // phpBB MySQL Password.
//$wgAuth_Config['MySQL_Database'] = 'database'; // phpBB MySQL Database Name.
//SQL Connection Ends
// PHPBB User Config
$wgAuth_Config['UserTB'] = 'phpbb3_users'; // Name of your PHPBB user table. (i.e. phpbb_users)
$wgAuth_Config['GroupsTB'] = 'phpbb3_groups'; // Name of your PHPBB groups table. (i.e. phpbb_groups)
$wgAuth_Config['User_GroupTB'] = 'phpbb3_user_group'; // Name of your PHPBB user_group table. (i.e. phpbb_user_group)
$wgAuth_Config['PathToPHPBB'] = '../phpbb3/'; // Path from this file to your phpBB install. Must end with '/'.
// PHPBB User Config Ends
// Local
$wgAuth_Config['LoginMessage'] = 'You need a phpBB account to login.
Click here to create an account.'; // Localize this message.
$wgAuth_Config['NoWikiError'] = 'You are not a member of the required phpBB group.'; // Localize this message.
$wgAuth = new Auth_phpBB($wgAuth_Config); // Auth_phpBB Plugin.
Фикс, который позволяет использовать кириллицу в именах
В Auth_phpBB.php функцию public function getCanonicalName( $username ) заменить на:
public function getCanonicalName( $username )
{
// Connect to the database.
$fresMySQLConnection = $this->connect();
$username = $this->utf8($username); // Convert to UTF8
// Check Database for username. We will return the correct casing of the name.
$fstrMySQLQuery = sprintf("SELECT `username`
FROM `%s`
WHERE `username_clean` = '%s'
LIMIT 1",
$this->_UserTB,
mysql_real_escape_string($username, $fresMySQLConnection));
// Query Database.
$fresMySQLResult = mysql_query($fstrMySQLQuery, $fresMySQLConnection)
or die($this->mySQLError('Unable to view external table'));
while($faryMySQLResult = mysql_fetch_assoc($fresMySQLResult))
{
return $faryMySQLResult['username'];
}
// At this point the username is invalid and should return just as it was passed.
return $username;
}
Источники:
wikimedia.org
phpbbguru.net/strong