在 MediaWiki 插件中创建 Talk/Discuss link
Create a Talk/Discuss link in a MediaWiki Plug-in
我正在创建一个列出许多文件的 MediaWiki 插件。对于每个文件,我想打印一个 [Talk] 或 [Discuss] link。 (好像原名是talk,后来改成了discuss。)这些link如果页面不存在应该是红色的,存在的话应该是蓝色的。
应该有办法在OutputPage.php中添加这样的link,但我想不通。
我知道这些函数"foo":
$page = WikiPage::factory ( $title )
$talk = $title->getTalkPage()
但我不确定如何从 foo
获取 $title
。
我也不确定如何将 $talk
更改为合适的 HTML。我不想将它添加到输出流中,因为我正在单独构建很多 HTML,但我想我可以重构,而不是传递我的字符串,而是传递一个句柄到输出.
为什么不使用 OutputPage::addWikiText()
添加适当的 link 而不必担心技术细节:例如 [[{{ns:11}}:Foo|Text]]
。
或者,您可以从 OutputPage::getTitle()
获取当前页面的 $title
,或从 Title::newFromText()
获取您要使用的任何标题。您可以通过指定正确的命名空间常量直接获取 $talk
,这可能比通过 WikiPage object.
旅行更容易
link 的正确样式可以使用辅助方法 Title::exists()
和用于生成页面 url 的适当辅助方法之一来完成。
另见 https://doc.wikimedia.org/mediawiki-core/master/php/classTitle.html
我正在创建一个列出许多文件的 MediaWiki 插件。对于每个文件,我想打印一个 [Talk] 或 [Discuss] link。 (好像原名是talk,后来改成了discuss。)这些link如果页面不存在应该是红色的,存在的话应该是蓝色的。
应该有办法在OutputPage.php中添加这样的link,但我想不通。
我知道这些函数"foo":
$page = WikiPage::factory ( $title )
$talk = $title->getTalkPage()
但我不确定如何从 foo
获取 $title
。
我也不确定如何将 $talk
更改为合适的 HTML。我不想将它添加到输出流中,因为我正在单独构建很多 HTML,但我想我可以重构,而不是传递我的字符串,而是传递一个句柄到输出.
为什么不使用 OutputPage::addWikiText()
添加适当的 link 而不必担心技术细节:例如 [[{{ns:11}}:Foo|Text]]
。
或者,您可以从 OutputPage::getTitle()
获取当前页面的 $title
,或从 Title::newFromText()
获取您要使用的任何标题。您可以通过指定正确的命名空间常量直接获取 $talk
,这可能比通过 WikiPage object.
link 的正确样式可以使用辅助方法 Title::exists()
和用于生成页面 url 的适当辅助方法之一来完成。
另见 https://doc.wikimedia.org/mediawiki-core/master/php/classTitle.html