[英]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, WebRequest , User , Language , OutputPage等$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.