所以我一直在尝试将#if解析器实现到信息框中,但我似乎运气不好。我之前使用的代码似乎已经过时了,我找不到一种方法来再次对它进行编码。 :/
基本上,在这个信息框中,如果没有键入字段(或者输入的字段为空),它应该变为“不可见”或甚至不呈现。
此代码在以前版本的MediaWiki中运行良好(不知道哪一个),但不再是:http://pastebin.com/uQ49mPbQ。我一直在尝试使用它作为教程,甚至直接复制并粘贴它,但它根本不起作用。无论我对他们做了什么,所有领域都将变得无形......
这是我正在使用的新代码,并希望成为#if'ed:http://pastebin.com/3j0AbN5v
欢迎任何帮助。
答案 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上的解析器函数。