php – 如何更改Mediawiki 1.19.1的登录页面以直接转到Special:UserLogin

前端之家收集整理的这篇文章主要介绍了php – 如何更改Mediawiki 1.19.1的登录页面以直接转到Special:UserLogin前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试设置一个私有的Mediawiki实例,希望用户登录以查看任何内容.我尝试在Localsettings.PHP文件中调整$wgWhitelistRead变量,但它仍然会将我带到一个页面,上面写着“需要登录”.如果用户没有登录,我希望wiki重定向到Special:userLogin.我该怎么做?

我找到了一个similar question on the mwforums,但似乎是旧版本的mediawiki.有任何想法吗?

看似自然的地方是 OutputPage::showPermissionsErrorPage().具体来说,实际的错误信息显示在以下两行:
$this->prepareErrorPage( $this->msg( 'loginreqtitle' ) );
$this->addHTML( $this->msg( $msg )->rawParams( $loginLink )->parse() );

要直接重定向到Special:UserLogin,您可以用这样的(未经测试的!)代码替换它们:

$this->redirect( SpecialPage::getTitleFor( 'Userlogin' )->getFullURL( $query ) );

唉,似乎没有任何方便的hook可以让您从扩展程序中执行此操作,因此看起来您将不得不求助于修补代码.这看起来像一个钩子的自然位置,所以file a feature request要求添加这样的钩子可能不是一个坏主意.

(或者,您确实可以输出一个登录表单,但实现起来可能比仅重定向到Special:UserLogin有点棘手.乍一看,我找不到任何方便的“outputLoginForm()”方法调用Special:UserLogin code,虽然自己生成匹配的登录表单实际上并不困难,但这意味着以后对表单的任何更改都可能会破坏兼容性.)

猜你在找的PHP相关文章