2013-09-24 43 views
1

我想將一個頁面的標題與MediaWiki的皮膚中的某個值進行比較。頁面標題可以使用輸出:

<?php $this->text('title') ?> 

該工程,並輸出頁面標題(在這種情況下,「主頁」),但它不會讓我的值進行比較,以什麼,例如:

<?php if ($this->text('title') == "Main Page") { echo "You are on the Main Page!"; } ?> 

這將輸出「主頁」,而不是「您正在瀏覽主頁!」

這個問題的解決方法是使用$ this-> data而不是$ this-> text,但是$ this-> data('title')沒有在MediaWiki中定義。如何將$ this-> text的輸出轉換爲可以比較而不向用戶回傳任何內容的變量?

回答

2

$這個 - >文本( '標題')不會返回頁面的標題。相反,它將標題回顯到皮膚模板中。您可以通過查看text()函數的代碼來驗證這一點。

你需要的是$ this-> data ['title']。

$ this-> data是一個數組,因此$ this-> data('title')在語法上不正確。

0

你可以使用PHP的輸出緩衝功能,可拍攝它,例如:

ob_start(); 
$this->text('title'); 
$title = ob_get_clean(); 

if($title == 'Main Page') {...} 

雖然幾乎肯定有辦法直接得到它。我對MediaWiki沒有任何經驗,但在OutputPage課程中似乎有一些有用的方法,例如getPageTitle()。還有一個Title班。

0

您可以使用Output Buffering獲得的$this->text('title')

輸出。例如:

ob_start(); 
$this->text('title'); 
$title = ob_get_clean(); 
相關問題