如何在MediaWiki中将$ this->文本转换为$ this->数据?

时间:2013-09-24 03:15:36

标签: php mediawiki

我正在尝试将MediaWiki的页面标题与皮肤中的某个值进行比较。页面标题可以使用:

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

这样可以输出页面标题(在本例中为“主页”),但不允许我将值与任何内容进行比较,例如:

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

这将输出“主页”,而不是“你在主页面上!”

对此的修复是使用$ this-&gt;数据而不是$ this-&gt; text,但$ this-&gt; data('title')未在MediaWiki中定义。如何将$ this-&gt; text的输出转换为可以比较的变量,而不会向用户回应任何内容?

3 个答案:

答案 0 :(得分:2)

$ this-&gt; text('title')不会返回页面标题。相反,它将标题回显到皮肤模板中。您可以通过查看text()函数的代码来验证这一点。

您需要的是$ this-&gt; data ['title']。

$ this-&gt;数据是一个数组,因此$ this-&gt; data('title')在语法上是不正确的。

答案 1 :(得分:0)

您可以使用PHP的输出缓冲功能捕获它,例如:

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

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

虽然几乎肯定有办法直接获得它。我对MediaWiki没有任何经验,但在OutputPage课程中看起来有一些有用的方法,例如: getPageTitle()。还有一个Title类。

答案 2 :(得分:0)

您可以使用Output Buffering获取$this->text('title')

的输出

例如:

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