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

我试图获取当前页面的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'];

解决方法:

如果您正在为皮肤编写QuickTemplate子类,则可以使用$this-> getSkin() – > getTitle()获取当前页面的Title对象.

获得Title对象后,可以在其上调用getLinkURL()以获取页面的URL. (您可能不希望使用getPrefixedURL(),因为Ilya建议,因为它只是为您提供页面名称的URL编码版本.)或者如果您想生成标准的wikilink样式链接,您可以将Title对象传递给Linker::link()而不必自己弄乱URL.

实际上,$this-getSkin()是从皮肤模板访问“请求全局”MediaWiki对象(如当前Title,WebRequest,User,Language,OutputPage等)的一般方法.具体来说,Skin类实现了IContextSource接口,该接口提供对所有这些对象的访问.

上一篇:python – 从MediaWiki XML中提取页面标题和贡献者


下一篇:python接口自动化16-multipart/form-data上传图片