Nested templates and partial forms
Semantic extension(s): | Page Forms |
Further extension(s): | -/- |
Keyword(s): | -/- |
Description:
Nested templates are widely used. For example:
{{Infobox album | Name = Yellow Submarine | Type = studio | … | Misc = {{Extra chronology | Artist = [[The Beatles]] | Type = studio | Last album = ''[[The Beatles (album)|The Beatles]]''<br>(1968) | This album = '''''Yellow Submarine'''''<br>(1969) | Next album = ''[[Abbey Road]]''<br>(1969) }} }}
(Example taken from Yellow Submarine article of Wikipedia.)
Note usage of Extra chronology template.
Unfortunately, Semantic Forms does not support nested templates now, so filling such a template with form is not possible. This limitation can be worked around by flattening the template (making the template flat).
Infobox album form allows editing "main" fields — Name and Type:
{{{for template|Infobox album}}} {{{field|Name|…}}} {{{field|Type|…}}} {{{end template}}}
Additional Infobox album extra chronology partial form allows editing "additional fields" — Extra chronology Artist, Extra chronology Type, etc:
{{{info|partial form}}} {{{for template|Infobox album}}} <!-- Note the name of the "main" template. --> {{{field|Extra chronology Artist|…}}} {{{field|Extra chronology Type|…}}} … {{{end template}}}
Infobox album template uses all the fields, passing Extra chronology … fields to Extra chronology template:
{| class="Infobox album" |- | Name || {{{Name|}}} |- | Type || {{{Type|}}} |- | {{Extra chronology | Artist = {{{Extra chronology Artist|}}} | Type = {{{Extra chronology Type|}}} | … }} |}
Extra chronology template utilizes its arguments and provides a link for editing them:
<p><span class="editsection">[{{#formlink: form = Infobox album extra chronology | link text = edit | target = {{FULLPAGENAME}} }}]</span></p> {| |- | Artist || {{{Artist|}}} |- | Type || {{{Type|}}} | … |}