在MediaWiki皮膚定義中,獲得擴展的BaseTemplate
有幾個用於創建鏈接到wiki中其他頁面的鏈接的屬性,但是我有一種情況,我需要皮膚目錄的路徑來拉取用於創建UI。默認情況下,默認情況下,這只是/skins/mySkin/images/foo.png
,但如果有人更改了$wgStylePath
變量,或者重命名了皮膚,那將是一個問題。是否有一個現有的變量具有構建該URL的變量,隱藏在BaseTemplate
方法中的某處?如何在Mediawiki中獲取當前皮膚的文件路徑?
2
A
回答
1
是的,SkinTemplate類包含在執行模板之前設置模板變量的代碼,可通過'stylepath'
模板變量提供對$wgStylePath
的訪問。
當您繼承SkinTemplate以定義皮膚的主類時,您還需要覆蓋$stylename
成員變量,該成員變量指定您的皮膚自己的樣式表和圖像所在的子目錄。 (這個通常是與小寫的皮膚名稱相同,但它不具有有;使用來自同一目錄的圖像有兩個相關的皮膚是完全正確的)。也作爲模板變量提供,令人驚訝地命名爲'stylename'
。因此,在您的模板中指定圖像路徑的一種方法可能類似於:
<?php $this->text('stylepath') ?>/<?php $this->text('stylename') ?>/images/foo.png
另一種方式,例如,皮膚,皮膚,將使用Skin類(這是SkinTemplate的超類;由於歷史原因,這是一種凌亂和糾結的類型,但基本上你可以幾乎把它們當作一個類拆分成兩個文件)的getSkinStylePath()
方法。
要使用它,你的文件作爲參數的名稱傳遞和方法自動會預先$wgStylePath
和$stylename
它(並附加$wgStyleVersion
作爲查詢字符串)。請注意,這是不是一個模板方法,所以你要逃跑,並打印自己返回的URL:
<?php echo htmlspecialchars($this->getSkin()->getSkinStylePath('images/foo.png')) ?>
還有一個getCommonStylePath()
方法,做同樣的事情,不同的是它採用了串"common"
代替$stylename
。
相關問題
- 1. 在Magento中獲取皮膚路徑?
- 2. 無響應的MediaWiki皮膚
- 3. 如何在戰爭中獲取當前的jsp文件路徑?
- 4. 獲取當前文件的路徑
- 5. 如何在AngularJS中獲取當前路徑的路徑名?
- 6. 如何在顫動中獲取當前的路徑路徑?
- 7. 如何在win98批處理文件中獲取當前路徑?
- 8. MediaWiki:在皮膚中顯示用戶名
- 9. 獲取當前文件夾路徑
- 10. 如何獲得magento中的當前皮膚網址?
- 11. 如何獲取當前html的路徑?
- 12. 獲取路徑的路徑,當前類文件
- 13. 如何在使用ERB的YAML文件中獲取當前文件路徑?
- 14. 獲取當前項目中文件的文件路徑
- 15. MediaWiki無法獲取路徑
- 16. 如何獲取當前連接的數據庫文件路徑?
- 17. 如何獲取當前javascript文件名的絕對路徑
- 18. 如何獲取當前InnoSetup腳本文件的路徑?
- 19. 如何獲取當前沒有文件名的虛擬路徑?
- 20. 如何從eclipse IDE獲取當前打開文件的路徑?
- 21. 如何獲取%CD的父路徑%如何獲取當前%CD%的父路徑%
- 22. 在Haskell中獲取當前源文件的絕對路徑
- 23. 在Eclipse中獲取當前編輯文件的絕對路徑
- 24. Java獲取當前路徑
- 25. 在ApplicationRoute中獲取當前路徑
- 26. mediawiki的水平滾動皮膚
- 27. PHP FCKeditor皮膚路徑問題?
- 28. 如何在Eclipse插件開發中獲取當前所選文件的路徑
- 29. 如何獲取當前文件中可執行文件的路徑?
- 30. 如何在函數中獲取當前包含的cmake文件的路徑?