php 如何在MediaWiki中获取当前页面的URL

jdgnovmf  于 2023-01-01  发布在  PHP
关注(0)|答案(2)|浏览(351)

我正在尝试获取当前页面的url并将其存储到自定义外观模板中的变量。我正在尝试这样做,以便可以将此url用于其他目的。我正在尝试执行类似以下操作

function currentpageurl() //Some Custom function
{
    $url= [something that can get current page's url in mediawiki and store it to this variable]
    .....use the $url variable for other purposes....
    ......
    .....
}

Mediawiki是否有一种方法可以识别当前页面的url,或者我唯一的选择是通过使用这种方法来查找当前页面?

$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
oxf4rvwz

oxf4rvwz1#

如果您正在为皮肤编写QuickTemplate子类,则可以使用$this->getSkin()->getTitle()获取当前页面的Title对象。
一旦有了Title对象,就可以调用getLinkURL()来获取页面的URL(你可能不想像Ilya建议的那样使用getPrefixedURL(),因为它只会给你一个URL编码版本的页面名称)。或者,如果你想生成一个标准的维基链接样式的链接,而不想自己处理URL,你可以将Title对象传递给Linker::link()
实际上,$this-getSkin()是从皮肤模板获取对“全局请求”MediaWiki对象(如当前Title、WebRequestUserLanguageOutputPage等)的访问权限的常用方法。具体来说,Skin类实现了IContextSource接口,该接口提供对所有这些对象的访问权限。

ui7jx7zq

ui7jx7zq2#

既然你知道当前的页面名称($name),你可以使用MediaWiki Title(参见http://www.mediawiki.org/wiki/Manual:Title.php)。据我所知,它应该是这样的:

$title = Title::newFromText($name);
$url = $title->getPrefixedUrl();

相关问题