我正在尝试获取当前页面的 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....
......
.....
}
Run Code Online (Sandbox Code Playgroud)
Mediawiki 是否有一种方法可以识别当前页面的 url 或者是我查找当前页面的唯一选择是使用这种方法?
$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
Run Code Online (Sandbox Code Playgroud)
如果你正在写一个QuickTemplate子类的皮肤,你可以得到一个标题为使用当前页的对象$this->getSkin()->getTitle()。
一旦你有了 Title 对象,你就可以调用getLinkURL()它来获取页面的 URL。(您可能不想像getPrefixedURL()Ilya 建议的那样使用,因为它只会为您提供页面名称的 URL 编码版本。)或者,Linker::link()如果您想生成标准的 wikilink 样式的链接而无需自己弄乱网址。
事实上,这$this-getSkin()是从皮肤模板访问“请求全局”MediaWiki 对象(如当前 Title、WebRequest、User、Language、OutputPage等)的通用方法。具体来说,Skin类实现IContextSource接口,该接口提供对所有这些对象的访问。