加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 17:57:45 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试设置一个私有的Mediawiki实例,希望用户登录以查看任何内容.我尝试在Localsettings.php文件中调整$wgWhitelistRead变量,但它仍然会将我带到一个页面,上面写着“需要登录”.如果用户没有登录,我希望wiki重定向到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,虽然自己生成匹配的登录表单实际上并不困难,但这意味着以后对表单的任何更改都可能会破坏兼容性.)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读