Status: | effective |
Progress: | 100% |
Version: | 3.0.0+ |
Help:Using templates
Table of Contents | |
---|---|
This help page describes the template
parameter that is available in many result formats most notably result format "Plainlist"Outputs results in a comma separated list, with additional outputs shown in parentheses. The output does not provide class attributes to HTML elements (default for queries without printout statements).. The parameter is used to specify a template used to display the output of a query.
In general templates are used when printouts require more complex handling for an output than just displaying them with result format "Table"Outputs the results in a table (default for queries with printout statements). and it's more basic display options. Moreover it is much easier to reuse the templates for different queries.
Result formats[edit]
Some result formats support the use of templates to control the display of the output of a query.
Provided by Semantic MediaWiki[edit]
- list – Outputs results in a comma separated list, with additional outputs shown in parentheses. The output introduces class attributes to HTML elements to facilitate easy individual styling.
- ol – Outputs results as a numbered list, with additional outputs shown in parentheses.
- plainlist – Outputs results in a comma separated list, with additional outputs shown in parentheses. The output does not provide class attributes to HTML elements (default for queries without printout statements).
- templatefile – Outputs results in arbitrary file formats defined via templates.
- ul – Outputs results as a bulleted list, with additional outputs shown in parentheses.
Provided by extensions to Semantic MediaWiki[edit]
- eventline – Displays query results in interactive eventlines
- listwidget – Outputs results with a navigation or pagination widget for lists (ordered and unordered)
- moderntimeline – Displays query results in modern interactive timelines
- oltree – Displays query results as a tree (nested HTML ordered lists)
- outline – Lists pages in a hierarchical outline, based on property values
- slideshow – Displays query results as a slideshow
- tagcloud – Displays queried data in a tagcloud
- timeline – Displays query results in interactive timelines
- tree – Displays query results as a tree (nested HTML bulleted lists)
- valuerank – Lists values based on their occurrence
Usage[edit]
Parameters[edit]
The result formats provide a list of parameters that interact with the usage of templates to display the output of a query. The most important parameters for template usage are listed in the following table:
Parameter | Type | Comment |
---|---|---|
template
|
text | defines to which template the results will be passed on (no need to use Template: before the name) |
introtemplate
|
text | (optional) name of a template that is called once before the output of the results (e. g. to define a table header) |
outrotemplate
|
text | (optional) name of a template that is called once after the output of the results (e. g. to define wiki markup for closing a table) |
named args
|
boolean | If not set or no, will pass on the arguments to the template without names. If set to yes, will pass on the arguments with names. |
userparam
|
text | A value passed into each template call. |
Introduction[edit]
If a template is specified, all result «rows» are formatted using this template. The name of the template (without the initial «Template:») is specified with the template
parameter. Thus the query has the following general form:
{{#ask:
<query-condition>
|format=<format-name>
|template=<template-name>
}}
For each result in an inline query, Semantic MediaWiki then calls the specified template, where the result and printout values are used as numbered template parameters. So a query that would display three columns when formatted as a table, will set three template parameters. These values can then be used in the template in the normal way writing {{{1}}}
, {{{2}}}
, etc. Each parameter refers to one "field" or column in the results that would be displayed by the inline query for each selected page. Normally the first field a query displays is the page title (see here on how to change this), so parameter {{{1}}}
is the page title, and {{{2}}}
, {{{3}}}
, ... are the other properties displayed by the query.
The template feature allows greater flexibility in the reuse and display of the query, including:
- Changing the order in which output is displayed, or omitting or duplicating output;
- Displaying images depending on query results;
- Creating links for property values;
- Using CSS styles to vary font-size, alignment, background-color, etc. by column in tables.
If you do use a template to adjust the appearance of links, you will probably need to set the link
parameter to "none" ( |link=none
) to disable Semantic MediaWiki's automatic linking of article names. A similar effect can also be achieved by selecting the plain output format for some or all of the printouts, as described in Displaying information. Your template will then have to add [[ ]]
around anything you want to be a link.
Examples[edit]
Basic example[edit]
- Syntax
{{#ask: [[Category:City]] [[Located in::Germany]] [[Area::+]] [[Population::+]] |?Population |?Area |format=plainlist |template=TableBasicExample }}
- Result
- Berlin − 3,520,061 on 891.85 km²344.34 sqmi <br />
- Cologne − 1,080,394 on 405.02 km²156.38 sqmi <br />
- Frankfurt − 679,664 on 248.31 km²95.87 sqmi <br />
- Munich − 1,353,186 on 310.43 km²119.86 sqmi <br />
- Stuttgart − 606,588 on 207.35 km²80.06 sqmi <br />
- Würzburg − 126,635 on 87.63 km²33.83 sqmi <br />
The template used to create this example: TableBasicExample.
Advanced example[edit]
- Syntax
{{#ask: [[Category:City]] [[Located in::Germany]] [[Area::+]] [[Population::+]] |?=city |?Population=population |?Area=area |format=plainlist |introtemplate=TableAdvancedExampleHeader |template=TableAdvancedExampleBody |outrotemplate=TableAdvancedExampleFooter |limit=4 |offset=1 |searchlabel= |named args=yes }}
- Result
City | Population | Area |
---|---|---|
Cologne | 1,080,394 | 405.02 km²156.38 sqmi <br /> |
Frankfurt | 679,664 | 248.31 km²95.87 sqmi <br /> |
Munich | 1,353,186 | 310.43 km²119.86 sqmi <br /> |
Stuttgart | 606,588 | 207.35 km²80.06 sqmi <br /> |
Average | 929,958 | 292.78 km² |
Total | 3,719,832 | 1,171.11 km² |
The templates used to create this example: TableAdvancedExampleHeader, TableAdvancedExampleBody and TableAdvancedExampleFooter.
More examples[edit]
Tips[edit]
Limitations[edit]
The template may execute another ask query. By default the number of nested calls with parameter template
is, however, limited to 2 (see the help page on configuration parameter $maxRecursionDepth
Sets the recursion depth for a template output). Example: page A contains an inline query that uses template B, which itself contains an inline query that uses template C. Template C may contain yet another ask query, but not one using a template i.e. "|template=".
See also[edit]
- Help page on inline queries
- Help page on selecting pages
- Help page on Displaying information
References
- ^ Semantic MediaWiki: GitHub issue gh:smw:2488