我正在尝试获取当前页面的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'];
2条答案
按热度按时间oxf4rvwz1#
如果您正在为皮肤编写QuickTemplate子类,则可以使用
$this->getSkin()->getTitle()
获取当前页面的Title对象。一旦有了Title对象,就可以调用
getLinkURL()
来获取页面的URL(你可能不想像Ilya建议的那样使用getPrefixedURL()
,因为它只会给你一个URL编码版本的页面名称)。或者,如果你想生成一个标准的维基链接样式的链接,而不想自己处理URL,你可以将Title对象传递给Linker::link()
。实际上,
$this-getSkin()
是从皮肤模板获取对“全局请求”MediaWiki对象(如当前Title、WebRequest、User、Language、OutputPage等)的访问权限的常用方法。具体来说,Skin类实现了IContextSource接口,该接口提供对所有这些对象的访问权限。ui7jx7zq2#
既然你知道当前的页面名称($name),你可以使用MediaWiki Title(参见http://www.mediawiki.org/wiki/Manual:Title.php)。据我所知,它应该是这样的: