PhpBB Wiki Integration

From PHPBB用户手册

Jump to: navigation, search

整合mediawiki与phpbb2

需要文件:
Auth_phpbb.php
User.php

需要修改文件:
LocalSettings.php
includes/User.php


添加
Auth_phpbb.php
User.php
至extensiosn目录

打开LocalSettings.php
添加

// This requires a user be logged into the wiki to make changes.
$wgGroupPermissions['*']['edit'] = false; // MediaWiki 1.5 Settings

// Specify who may create new accounts: 0 means no, 1 means yes
$wgGroupPermissions['*']['createaccount'] = false; // MediaWiki 1.5 Settings

// PHPBB User Database Plugin. (Requires MySQL Database)
require_once './extensions/Auth_phpbb.php';
require_once './extensions/User.php';

$wgPHPBB_WikiGroupName = 'wiki'; // Name of your PHPBB group
$wgPHPBB_UseWikiGroup = true; // This tells the Plugin to require
$wgPHPBB_UseExtDatabase = false; // This tells the plugin that the phpBB tables
$wgPHPBB_Config = 'phpbb_config'; // Name of your PHPBB config table. (i.e. phpbb_config)
$wgPHPBB_Session = 'phpbb_sessions'; // Name of your PHPBB session table. (i.e. phpbb_sessions)
$wgPHPBB_UserTB = 'phpbb_users'; // Name of your PHPBB user table. (i.e. phpbb_users)
$wgPHPBB_GroupsTB = 'phpbb_groups'; // Name of your PHPBB groups table. (i.e. phpbb_groups)
$wgPHPBB_User_GroupTB = 'phpbb_user_group'; // Name of your PHPBB user_group table. (i.e. phpbb_user_group)
$wgAuth = new Auth_PHPBB(); // Auth_PHPBB Plugin.

修改User.php文件名为BasicUser.php

打开BasicUser.php
替换所有 User() 为 BasicUser()
新建一空白文件 includes/User.php

打开includes/OutputPage.php
找到function returnToMain(
改成

function returnToMain( $auto = true, $returnto = NULL ) {
		global $wgUser, $wgOut, $wgRequest;

		if ( $returnto == NULL ) {
			$returnto = $wgRequest->getText( 'returnto' );
		}
		$returnto = htmlspecialchars( $returnto );

		$sk = $wgUser->getSkin();
		if ( '' == $returnto ) {
			$returnto = wfMsgForContent( 'mainpage' );
		}
		$link = $sk->makeLinkObj( Title::newFromText( $returnto ), '' );
		
		if (preg_match('#^\.\.\/forum#si', $returnto)) {
			$possible_start = substr($returnto, strpos($returnto, 'redirect=') +9);
			$possible_start = str_replace('php_', 'php?', $possible_start);
			$possible_start = str_replace('_', '&', $possible_start);
			if ( $auto ) {
				$titleObj = Title::newFromText( "" );
				$wgOut->addMeta( 'http:Refresh', '1;url=' . $GLOBALS['wgPHPBB_path'].$possible_start);
			}
			$wgOut->addHTML( "\n<p>".$GLOBALS['wgPHPBB_path'].$possible_start ."</p>\n" );
		} else {
			$r = wfMsg( 'returnto', $link );
			if ( $auto ) {
				$titleObj = Title::newFromText( $returnto );
				$wgOut->addMeta( 'http:Refresh', '10;url=' . $titleObj->escapeFullURL() );
			}
			$wgOut->addHTML( "\n<p>$r</p>\n" );
		}
	}