如何在信息框中实现#if功能?

时间:2014-03-31 18:17:28

标签: if-statement mediawiki

所以我一直在尝试将#if解析器实现到信息框中,但我似乎运气不好。我之前使用的代码似乎已经过时了,我找不到一种方法来再次对它进行编码。 :/

基本上,在这个信息框中,如果没有键入字段(或者输入的字段为空),它应该变为“不可见”或甚至不呈现。

此代码在以前版本的MediaWiki中运行良好(不知道哪一个),但不再是:http://pastebin.com/uQ49mPbQ。我一直在尝试使用它作为教程,甚至直接复制并粘贴它,但它根本不起作用。无论我对他们做了什么,所有领域都将变得无形......

这是我正在使用的新代码,并希望成为#if'ed:http://pastebin.com/3j0AbN5v

欢迎任何帮助。

1 个答案:

答案 0 :(得分:1)

您需要启用ParserFunctions extension才能使用{{#if}}解析器功能。在LocalSettings.php

中执行此操作
require_once( "$IP/extensions/ParserFunctions/ParserFunctions.php" );

如果您想使用string functions(例如{{#replace}}{{#explode}}等),请添加:

$wgPFEnableStringFunctions = true;

在MediaWiki的最新版本中,包含ParserFunctions(但未启用),因此您无需下载任何内容。


基本疑难解答:每当您在维基页面中看到{{#zyx:...}}之类的代码时,它(可能)就意味着有人试图使用未安装的parser function。除非安装了名为“zyx”的解析器函数,否则代码{{#zyx:...}}对wiki没有特殊含义,文本将按原样打印。最常见的解析器函数收集在名为ParserFunctions的扩展中,该扩展在WikiMedia wiki上使用。每当从例如ParserFunctions复制模板时,您将需要ParserFunctions的解析器函数。英语维基百科。

要查看已启用的解析器功能,请导航到Wiki上的Special:Version。已安装的扩展列表下方是一个标记列表(例如<gallery />)和可用的解析器函数。正如您所看到的,“if”是old wiki上的解析器函数之一,而不是new上的解析器函数。