| Status: | effective |
| Progress: | 100% |
| Version: | 2.3.0+ |
Working with the #set "template" parameter
"template" parameter to #set
| |
|---|---|
| This page describes the "template" parameter to the "#set" parser function. | |
| Keywords | |
| Table of Contents | |
Semantic MediaWiki 2.2.0Released on 9 May 2015 and compatible with MW 1.19.0 - 1.24.x. added support of the |template=... parameter to the #set parser function. The parameter also provides the following fixed named arguments allowing for customized links or queries:1
{{{property}}}– holds the name of the property used{{{value}}}– holds the value assigned to the property used{{{#}}}– holds the number of the property value assignments (annotations) made{{{last-element}}}– determines whether the given property value assignment is the last one emitted with the template (Semantic MediaWiki 2.3.0Released on 29 October 2015 and compatible with MW 1.19.0 - 1.25.x. and higher)
The template is applied to the entire #set, i.e. to "property1" and to "property2", etc. Thus the template "TemplateUsedForEntireSetCall" only needs to be added to the line setting the first property e.g. "propery1". A second template added to e.g. "propery2", etc. will be ignored. If one would like to use a second query one will have to add a second #set parser function to the respective page.
Syntax[edit]
{{#set:
|property1=value1;value2;value3|+sep=;|template=TemplateUsedForEntireSetCall
|property2=value1,value2,value3|+sep=,
...
}}
Example - "set query"[edit]
See this page for an example
Example - restricted characters[edit]
Where the in-text annotation using the :: syntax, e.g. [[PropertyName::PropertyValue]] does not work due to interference with the parser (value contains square brackets, wiki-links, extra colons), a template e.g. BySetTemplateSimpleValueOutput added to a #set call can create an annotation and display the value at the same time.23
{{#set:
|Has text=fc00:123:8000::/%6
|template=BySetTemplateSimpleValueOutput
}}
- Result
- fc00:123:8000::/%6
Example - multiple value display[edit]
As of Semantic MediaWiki 2.3.0Released on 29 October 2015 and compatible with MW 1.19.0 - 1.25.x., a {{{last-element}}} parameter is automatically added to the template allowing to determine if the given value is the last element (= last value) returned via the template (list or query) or not e.g. BySetTemplateSimpleValueOutputMultiple. If the property value is the "last element" (= "last value") returned the parameter's value is "1" and if it is not "0" will be returned.4
{{#set:
|Has text=fc00:123:8000::/%6;2001:db8::1428:57ab;2001:db8:0:8d3:0:8a2e:70:7344
|+sep=;
|template=BySetTemplateSimpleValueOutputMultiple
}}
- Result
- fc00:123:8000::/%6, 2001:db8::1428:57ab, 2001:db8:0:8d3:0:8a2e:70:7344
Without the {{{last-element}}} parameter as shown in template BySetTemplateSimpleValueOutputMultipleWithout there would be no way to determine the last element and apply different formatting. Note the trailing comma ",":
- Result
- fc00:123:8000::/%6, 2001:db8::1428:57ab, 2001:db8:0:8d3:0:8a2e:70:7344,
References
- ^ Semantic MediaWiki: GitHub issue gh:smw:756
- ^ Semantic MediaWiki: GitHub issue gh:smw:1048
- ^ Semantic MediaWiki: GitHub pull request gh:smw:1066
- ^ Semantic MediaWiki: GitHub pull request gh:smw:1107