标签: mediawiki-extensions

如何为 MediaWiki 设置外部单点登录?

我正在尝试使用 ExtAuthDB 扩展为 MediaWiki 设置单点登录。目的是在用户登录主网站 www.mysite.com 时自动从外部用户系统对用户进行身份验证。Mediawiki 位于子域:www.wiki.mysite.com。

我已经按照指南中的说明安装了扩展程序。所有特权都是正确的。但它不起作用。

ExtAuthDB.php 是:

<?php
/**
* Authentication plugin interface. Instantiate a subclass of AuthPlugin
* and set $wgAuth to it to authenticate against some external tool.
*
* The default behavior is not to do anything, and use the local user
* database for all authentication. A subclass can require that all
* accounts authenticate externally, or use it only as a fallback; also
* you can transparently create internal wiki accounts …
Run Code Online (Sandbox Code Playgroud)

php mediawiki mediawiki-extensions

5
推荐指数
1
解决办法
1602
查看次数

PHP 中的登录集成

在我的主机上,我目前安装了 2 个 wordpress 应用程序、1 个 phpBB 论坛和一个 MediaWiki。

有没有办法合并登录名,以便所有应用程序共享相同的凭据?

例如,我只想在我的 phpBB 中注册,然后我想使用给定的用户名和密码访问所有其他应用程序。

即使你不知道一个统一的方式,你知道还有哪些登录集成?各有利弊?

php authentication integration mediawiki-extensions

4
推荐指数
1
解决办法
2845
查看次数

从MediaWiki中的pagelinks中排除页面的某些部分

我正在使用MediaWiki.wiki中的某些页面包含一个或多个大型导航块,如本页底部的那些:

https://www.eftepedia.nl/

像这样的块包含在许多页面中.现在,当保存页面时,也会更新指向其他页面的链接列表(pagelinks表格).这些引用由"这里有什么链接"特殊页面以及可能的其他类似页面使用.

但实际上我不希望这些块中的链接计算在内.有没有办法可以影响MediaWiki在这个更新链接到其他页面的过程中排除页面的某些部分?

我已经编写了一些扩展,覆盖了特定的类并使用了一些钩子,所以我知道这些东西是如何工作的基础知识,但我找不到合适的钩子来影响这部分过程.

至于任何尝试,我发现ParserOutput::addLink,它用于将解析的链接存储到数组中.然后,在保存时,此数组将合并到数据库中.addLink是从几个地方调用的,最值得注意的是来自Parser::replaceInternalLinks2调用的地方Parser::internalParse.

如果我理解正确,internalParse则分别为每段文字调用.这包括单独的包含,但也包括嵌套标签.也许我可以使用所谓的钩子internalParse,但我还没有找到圣杯.我可以使用正确的方向来解决它,最好不要修改Parser类本身.

mediawiki mediawiki-extensions

4
推荐指数
1
解决办法
112
查看次数

curl给出403错误?

我正在尝试从MediaWiki登录页面为我的phpBB论坛设置一个cookie.登录wiki成功后使用钩子,我想运行一个设置cookie的php脚本.

当我独立运行或使用GET时,脚本可以运行,但出于安全考虑,我想要POST到脚本.为此,我认为curl这是最好的选择.

不幸的是,即使是这样的基本脚本:

curl_setopt($ch, CURLOPT_URL, "http://www.example.com/ForumLogin.php");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)

给我一个403 Forbidden错误.robots.txt中没有应该干扰的规则.我还能尝试使脚本工作,还是有其他方法可以从MediaWiki中运行脚本?

php curl phpbb mediawiki-extensions

3
推荐指数
2
解决办法
2万
查看次数

如何在MediaWiki Main或其他页面中显示所有类别?

我想在MediaWiki的主页面或任何其他页面中显示所有类别,就像它在Special:Categories页面中显示的那样.

任何帮助表示赞赏.

mediawiki mediawiki-extensions

3
推荐指数
1
解决办法
1409
查看次数

MediaWiki自定义皮肤:检查当前页面是否为主页面

我在一个代码库上设置了一堆不同的语言mediawiki.到目前为止大部分都在工作,但我想使用一个看起来与其他页面不同的主页面.为此,我最初添加了一些仅适用于main_page类的css规则:

body .page-Main_Page { <rules> }
Run Code Online (Sandbox Code Playgroud)

问题在于,在其他语言中,主页面被不同地调用(并且类会相应地更改),因此我要么必须为所有可能的主页标题添加css规则(不会发生),要么在皮肤内部进行检查以添加如果当前页面是主页面,则为主体类.

不幸的是,没有办法检查.我用Google搜索的大多数解决方案都基于"主页"或设置自己的标题.我希望皮肤自动检测标题.

到目前为止我唯一想到的解决方案是将mediawiki的变量用于主页面url并将其与当前页面标题进行比较:

$mainurl = $this->data['nav_urls']['mainpage']['href'];
$ismain = $this->data['thispage'] == substr($mainurl,'6');
Run Code Online (Sandbox Code Playgroud)

(['href']以/ wiki /开头,因此偏移为6)

然后

<body class="<?php echo ($ismain ? 'mainpage' : ''); ?>">    
Run Code Online (Sandbox Code Playgroud)

(当然还有一些课程,但你明白了)

但这给了我另一个问题.在西班牙语中,该页面称为PáginaPrincipal.数据['thispage']没有问题,但['href']保存为/ wiki/P%C3%A1gina_Principal

所以...任何人都可以告诉我如何1.以当前使用的语言查找"主页"的翻译或2.将P%C3%A1gina_Principal转换为PáginaPrincipal(以及其他语言的类似)或3告诉我另一种方法来检查我是否在主页上?

php mediawiki mediawiki-templates mediawiki-extensions

2
推荐指数
1
解决办法
802
查看次数