【发布时间】:2014-08-26 23:09:34
【问题描述】:
我正在为 MediaWiki(版本 1.15)设计皮肤。我需要在皮肤中包含被调用页面的标题。我的问题是,如何使用 php 务实地获取标题?我尝试查看 MediaWiki 的文档,但找不到我正在开发的 MediaWiki 版本的任何内容。
【问题讨论】:
我正在为 MediaWiki(版本 1.15)设计皮肤。我需要在皮肤中包含被调用页面的标题。我的问题是,如何使用 php 务实地获取标题?我尝试查看 MediaWiki 的文档,但找不到我正在开发的 MediaWiki 版本的任何内容。
【问题讨论】:
获取当前页面标题的标准方法是获取RequestContext或任何IContextSource类,在其上调用getTitle()获取Title对象,然后调用其getter方法之一,例如@ 987654327@.
Skin 类本身是皮肤的正常上下文源,所以在皮肤代码中,这看起来像:
$title = $this->getTitle();
echo htmlspecialchars( $title->getPrefixedText() );
(事实上,Skin 类还提供了另一个名为 getRelevantTitle() 的方法,您可能希望使用它来代替 getTitle()。主要/唯一的区别在于,在某些特殊页面上,例如 Special:MovePage,它作用于特定的 wiki 页面,“相关”标题将是被操作页面的标题,而不是特殊页面本身的标题。)
请注意,许多皮肤为当前页面标题等内容定义了自己的快捷方式。例如,在Vector skin template code 中,打印当前页面标题是通过调用$this->html( 'title' ) 完成的。如果您的新皮肤基于这些现有皮肤之一,您可能更喜欢使用相同的快捷方式。
【讨论】: