我试图获取当前页面的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接口,该接口提供对所有这些对象的访问.