Help:Parser functions and conditional values

From semantic-mediawiki.org
Semantic extension(s): Semantic MediaWiki · Semantic Scribunto
Further extension(s): ParserFunctions
Keyword(s): parser function · condition

Description:

MediaWiki is a templating system, not a programming environment. The effect is that all parameters to all parser functions are always evaluated. (If you want a real programming environment, see extension "Semantic_Scribunto"Provides service functions to support the Scribunto extension).

This does not work as expected, because it will set both values:

{{#if: Some condition |{{#set: Property=Yay. }} |{{#set: Property=Nope. }} }}

The correct way to do it is

{{#set: Property={{#if: Some condition |Yay. |Nope. }} }}

For the same reason, this does not work:

{{#ask:
 [[Some query condition]]
 |intro=Here are the results: {{#set: ResultProperty=INTRO }}
 |outro=These were the results! {{#set: ResultProperty=OUTRO }}
 |default=There are NO results! {{#set: ResultProperty=DEFAULT }}
}}

Even if the text "There are NO results!" is NOT displayed when there are some results to the query, still the #set parser function gets called.

Further information: