簡體   English   中英

如何在MediaWiki中獲取當前頁面URL

[英]How to get Current Page URL in MediaWiki

我試圖獲取當前頁面的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。 (你可能想像Ilya建議的那樣使用getPrefixedURL() ,因為它只是給你一個URL編碼版本的頁面名稱。)或者你可以將Title對象傳遞給Linker::link()如果你想生成標准的wikilink風格鏈接,而不必自己弄亂URL。

實際上, $this-getSkin()是從皮膚模板訪問“請求全局”MediaWiki對象(如當前Title, WebRequestUserLanguageOutputPage$this-getSkin()的一般方法。 具體來說, Skin類實現了IContextSource接口,該接口提供對所有這些對象的訪問。

由於您知道當前頁面名稱($ name),因此可以使用MediaWiki Title(請參閱http://www.mediawiki.org/wiki/Manual:Title.php )。 據我了解,它必須如下所示:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM