Это расширение привязывает 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

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

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