Jump to content
Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Template:Tournament data: Difference between revisions

Template page
m Build reusable tournament data and rendering system
m Build reusable tournament data and rendering system
Line 2: Line 2:
|article={{Infobox tournament
|article={{Infobox tournament
|name={{{name|{{PAGENAME}}}}}
|name={{{name|{{PAGENAME}}}}}
|date={{{date|}}}
|image={{{image|}}}
|image={{{image|}}}
|type={{{type|Player Run Festival}}}
|type={{{type|Player Run Festival}}}
|format={{{format|}}}
|mode={{{mode|}}}
|host={{{host|}}}
|host={{{host|}}}
|continent={{{continent|}}}
|continent={{{continent|}}}
Line 16: Line 13:
|runner6={{{runner6|}}}
|runner6={{{runner6|}}}
|post={{{post|}}}
|post={{{post|}}}
|challonge={{{challonge|}}}
|youtube={{{youtube|}}}
|youtube={{{youtube|}}}
|youtubelabel={{{youtubelabel|}}}
|youtubelabel={{{youtubelabel|}}}
Line 26: Line 22:
|youtube3label={{{youtube3label|}}}
|youtube3label={{{youtube3label|}}}
|youtube3explicit={{{youtube3explicit|}}}
|youtube3explicit={{{youtube3explicit|}}}
|previous={{{previous|}}}
|next={{{next|}}}
|townprevious={{{townprevious|}}}
|townnext={{{townnext|}}}
|date={{{date|}}}
|format={{{format|}}}
|mode={{{mode|}}}
|challonge={{{challonge|}}}
|winner={{{winner|}}}
|winner={{{winner|}}}
|second={{{second|}}}
|second={{{second|}}}
|third={{{third|}}}
|third={{{third|}}}
|jointthird={{{jointthird|}}}
|champion={{{champion|}}}
|champion={{{champion|}}}
|reigningchampion={{{reigningchampion|}}}
|reigningchampion={{{reigningchampion|}}}
Line 35: Line 40:
|secondteam={{{secondteam|}}}
|secondteam={{{secondteam|}}}
|thirdteam={{{thirdteam|}}}
|thirdteam={{{thirdteam|}}}
|jointthirdteam={{{jointthirdteam|}}}
|winner1={{{winner1|}}}
|winner1={{{winner1|}}}
|winner2={{{winner2|}}}
|winner2={{{winner2|}}}
Line 44: Line 50:
|third2={{{third2|}}}
|third2={{{third2|}}}
|third3={{{third3|}}}
|third3={{{third3|}}}
|previous={{{previous|}}}
|jointthird1={{{jointthird1|}}}
|next={{{next|}}}
|jointthird2={{{jointthird2|}}}
|townprevious={{{townprevious|}}}
|jointthird3={{{jointthird3|}}}
|townnext={{{townnext|}}}
|event2date={{{event2date|}}}
|event2format={{{event2format|}}}
|event2mode={{{event2mode|}}}
|event2challonge={{{event2challonge|}}}
|event2winner={{{event2winner|}}}
|event2second={{{event2second|}}}
|event2third={{{event2third|}}}
|event2jointthird={{{event2jointthird|}}}
|event2champion={{{event2champion|}}}
|event2reigningchampion={{{event2reigningchampion|}}}
|event2championoutcome={{{event2championoutcome|}}}
|event2winnerteam={{{event2winnerteam|}}}
|event2secondteam={{{event2secondteam|}}}
|event2thirdteam={{{event2thirdteam|}}}
|event2jointthirdteam={{{event2jointthirdteam|}}}
|event2winner1={{{event2winner1|}}}
|event2winner2={{{event2winner2|}}}
|event2winner3={{{event2winner3|}}}
|event2second1={{{event2second1|}}}
|event2second2={{{event2second2|}}}
|event2second3={{{event2second3|}}}
|event2third1={{{event2third1|}}}
|event2third2={{{event2third2|}}}
|event2third3={{{event2third3|}}}
|event2jointthird1={{{event2jointthird1|}}}
|event2jointthird2={{{event2jointthird2|}}}
|event2jointthird3={{{event2jointthird3|}}}
}}
}}
|card={{Tournament card
|card={{Tournament card
|name={{{name|{{PAGENAME}}}}}
|name={{{name|{{PAGENAME}}}}}
|date={{{date|}}}
|image={{{image|}}}
|image={{{image|}}}
|type={{{type|Player Run Festival}}}
|type={{{type|Player Run Festival}}}
|format={{{format|}}}
|mode={{{mode|}}}
|host={{{host|}}}
|host={{{host|}}}
|continent={{{continent|}}}
|continent={{{continent|}}}
Line 65: Line 94:
|runner6={{{runner6|}}}
|runner6={{{runner6|}}}
|post={{{post|}}}
|post={{{post|}}}
|challonge={{{challonge|}}}
|youtube={{{youtube|}}}
|youtube={{{youtube|}}}
|youtubelabel={{{youtubelabel|}}}
|youtubelabel={{{youtubelabel|}}}
Line 75: Line 103:
|youtube3label={{{youtube3label|}}}
|youtube3label={{{youtube3label|}}}
|youtube3explicit={{{youtube3explicit|}}}
|youtube3explicit={{{youtube3explicit|}}}
|previous={{{previous|}}}
|next={{{next|}}}
|townprevious={{{townprevious|}}}
|townnext={{{townnext|}}}
|date={{{date|}}}
|format={{{format|}}}
|mode={{{mode|}}}
|challonge={{{challonge|}}}
|winner={{{winner|}}}
|winner={{{winner|}}}
|second={{{second|}}}
|second={{{second|}}}
|third={{{third|}}}
|third={{{third|}}}
|jointthird={{{jointthird|}}}
|champion={{{champion|}}}
|champion={{{champion|}}}
|reigningchampion={{{reigningchampion|}}}
|reigningchampion={{{reigningchampion|}}}
Line 84: Line 121:
|secondteam={{{secondteam|}}}
|secondteam={{{secondteam|}}}
|thirdteam={{{thirdteam|}}}
|thirdteam={{{thirdteam|}}}
|jointthirdteam={{{jointthirdteam|}}}
|winner1={{{winner1|}}}
|winner1={{{winner1|}}}
|winner2={{{winner2|}}}
|winner2={{{winner2|}}}
Line 93: Line 131:
|third2={{{third2|}}}
|third2={{{third2|}}}
|third3={{{third3|}}}
|third3={{{third3|}}}
|previous={{{previous|}}}
|jointthird1={{{jointthird1|}}}
|next={{{next|}}}
|jointthird2={{{jointthird2|}}}
|townprevious={{{townprevious|}}}
|jointthird3={{{jointthird3|}}}
|townnext={{{townnext|}}}
|event2date={{{event2date|}}}
|event2format={{{event2format|}}}
|event2mode={{{event2mode|}}}
|event2challonge={{{event2challonge|}}}
|event2winner={{{event2winner|}}}
|event2second={{{event2second|}}}
|event2third={{{event2third|}}}
|event2jointthird={{{event2jointthird|}}}
|event2champion={{{event2champion|}}}
|event2reigningchampion={{{event2reigningchampion|}}}
|event2championoutcome={{{event2championoutcome|}}}
|event2winnerteam={{{event2winnerteam|}}}
|event2secondteam={{{event2secondteam|}}}
|event2thirdteam={{{event2thirdteam|}}}
|event2jointthirdteam={{{event2jointthirdteam|}}}
|event2winner1={{{event2winner1|}}}
|event2winner2={{{event2winner2|}}}
|event2winner3={{{event2winner3|}}}
|event2second1={{{event2second1|}}}
|event2second2={{{event2second2|}}}
|event2second3={{{event2second3|}}}
|event2third1={{{event2third1|}}}
|event2third2={{{event2third2|}}}
|event2third3={{{event2third3|}}}
|event2jointthird1={{{event2jointthird1|}}}
|event2jointthird2={{{event2jointthird2|}}}
|event2jointthird3={{{event2jointthird3|}}}
}}
}}
|row={{Tournament row
|row={{Tournament row
|name={{{name|{{PAGENAME}}}}}
|name={{{name|{{PAGENAME}}}}}
|date={{{date|}}}
|image={{{image|}}}
|image={{{image|}}}
|type={{{type|Player Run Festival}}}
|type={{{type|Player Run Festival}}}
|format={{{format|}}}
|mode={{{mode|}}}
|host={{{host|}}}
|host={{{host|}}}
|continent={{{continent|}}}
|continent={{{continent|}}}
Line 114: Line 175:
|runner6={{{runner6|}}}
|runner6={{{runner6|}}}
|post={{{post|}}}
|post={{{post|}}}
|challonge={{{challonge|}}}
|youtube={{{youtube|}}}
|youtube={{{youtube|}}}
|youtubelabel={{{youtubelabel|}}}
|youtubelabel={{{youtubelabel|}}}
Line 124: Line 184:
|youtube3label={{{youtube3label|}}}
|youtube3label={{{youtube3label|}}}
|youtube3explicit={{{youtube3explicit|}}}
|youtube3explicit={{{youtube3explicit|}}}
|previous={{{previous|}}}
|next={{{next|}}}
|townprevious={{{townprevious|}}}
|townnext={{{townnext|}}}
|date={{{date|}}}
|format={{{format|}}}
|mode={{{mode|}}}
|challonge={{{challonge|}}}
|winner={{{winner|}}}
|winner={{{winner|}}}
|second={{{second|}}}
|second={{{second|}}}
|third={{{third|}}}
|third={{{third|}}}
|jointthird={{{jointthird|}}}
|champion={{{champion|}}}
|champion={{{champion|}}}
|reigningchampion={{{reigningchampion|}}}
|reigningchampion={{{reigningchampion|}}}
Line 133: Line 202:
|secondteam={{{secondteam|}}}
|secondteam={{{secondteam|}}}
|thirdteam={{{thirdteam|}}}
|thirdteam={{{thirdteam|}}}
|jointthirdteam={{{jointthirdteam|}}}
|winner1={{{winner1|}}}
|winner1={{{winner1|}}}
|winner2={{{winner2|}}}
|winner2={{{winner2|}}}
Line 142: Line 212:
|third2={{{third2|}}}
|third2={{{third2|}}}
|third3={{{third3|}}}
|third3={{{third3|}}}
|previous={{{previous|}}}
|jointthird1={{{jointthird1|}}}
|next={{{next|}}}
|jointthird2={{{jointthird2|}}}
|townprevious={{{townprevious|}}}
|jointthird3={{{jointthird3|}}}
|townnext={{{townnext|}}}
|event2date={{{event2date|}}}
|event2format={{{event2format|}}}
|event2mode={{{event2mode|}}}
|event2challonge={{{event2challonge|}}}
|event2winner={{{event2winner|}}}
|event2second={{{event2second|}}}
|event2third={{{event2third|}}}
|event2jointthird={{{event2jointthird|}}}
|event2champion={{{event2champion|}}}
|event2reigningchampion={{{event2reigningchampion|}}}
|event2championoutcome={{{event2championoutcome|}}}
|event2winnerteam={{{event2winnerteam|}}}
|event2secondteam={{{event2secondteam|}}}
|event2thirdteam={{{event2thirdteam|}}}
|event2jointthirdteam={{{event2jointthirdteam|}}}
|event2winner1={{{event2winner1|}}}
|event2winner2={{{event2winner2|}}}
|event2winner3={{{event2winner3|}}}
|event2second1={{{event2second1|}}}
|event2second2={{{event2second2|}}}
|event2second3={{{event2second3|}}}
|event2third1={{{event2third1|}}}
|event2third2={{{event2third2|}}}
|event2third3={{{event2third3|}}}
|event2jointthird1={{{event2jointthird1|}}}
|event2jointthird2={{{event2jointthird2|}}}
|event2jointthird3={{{event2jointthird3|}}}
}}
}}
|date={{{date|}}}
|date={{{date|}}}
|name={{{name|}}}
|name={{{name|}}}
|winner={{{winner|}}}
|winner={{{winner|}}}
|champion={{#if:{{{champion|}}}|{{{champion|}}}|{{#switch:{{lc:{{{championoutcome|}}}}}|retained={{#if:{{{reigningchampion|}}}|{{{reigningchampion|}}}|{{Tournament championship|name={{{name|}}}}}}}|transferred={{{winner|}}}|no-show={{{winner|}}}|#default={{{winner|}}}}}}}
|champion={{#if:{{{champion|}}}|{{{champion|}}}|{{#switch:{{lc:{{{championoutcome|}}}}}|established={{{winner|}}}|retained={{#if:{{{reigningchampion|}}}|{{{reigningchampion|}}}|{{Tournament championship|name={{{name|}}}}}}}|transferred={{{winner|}}}|no-show={{{winner|}}}|#default={{{winner|}}}}}}}
|#default={{Infobox tournament
|#default={{Infobox tournament
|name={{{name|{{PAGENAME}}}}}
|name={{{name|{{PAGENAME}}}}}
|date={{{date|}}}
|image={{{image|}}}
|image={{{image|}}}
|type={{{type|Player Run Festival}}}
|type={{{type|Player Run Festival}}}
|format={{{format|}}}
|mode={{{mode|}}}
|host={{{host|}}}
|host={{{host|}}}
|continent={{{continent|}}}
|continent={{{continent|}}}
Line 167: Line 260:
|runner6={{{runner6|}}}
|runner6={{{runner6|}}}
|post={{{post|}}}
|post={{{post|}}}
|challonge={{{challonge|}}}
|youtube={{{youtube|}}}
|youtube={{{youtube|}}}
|youtubelabel={{{youtubelabel|}}}
|youtubelabel={{{youtubelabel|}}}
Line 177: Line 269:
|youtube3label={{{youtube3label|}}}
|youtube3label={{{youtube3label|}}}
|youtube3explicit={{{youtube3explicit|}}}
|youtube3explicit={{{youtube3explicit|}}}
|previous={{{previous|}}}
|next={{{next|}}}
|townprevious={{{townprevious|}}}
|townnext={{{townnext|}}}
|date={{{date|}}}
|format={{{format|}}}
|mode={{{mode|}}}
|challonge={{{challonge|}}}
|winner={{{winner|}}}
|winner={{{winner|}}}
|second={{{second|}}}
|second={{{second|}}}
|third={{{third|}}}
|third={{{third|}}}
|jointthird={{{jointthird|}}}
|champion={{{champion|}}}
|champion={{{champion|}}}
|reigningchampion={{{reigningchampion|}}}
|reigningchampion={{{reigningchampion|}}}
Line 186: Line 287:
|secondteam={{{secondteam|}}}
|secondteam={{{secondteam|}}}
|thirdteam={{{thirdteam|}}}
|thirdteam={{{thirdteam|}}}
|jointthirdteam={{{jointthirdteam|}}}
|winner1={{{winner1|}}}
|winner1={{{winner1|}}}
|winner2={{{winner2|}}}
|winner2={{{winner2|}}}
Line 195: Line 297:
|third2={{{third2|}}}
|third2={{{third2|}}}
|third3={{{third3|}}}
|third3={{{third3|}}}
|previous={{{previous|}}}
|jointthird1={{{jointthird1|}}}
|next={{{next|}}}
|jointthird2={{{jointthird2|}}}
|townprevious={{{townprevious|}}}
|jointthird3={{{jointthird3|}}}
|townnext={{{townnext|}}}
|event2date={{{event2date|}}}
|event2format={{{event2format|}}}
|event2mode={{{event2mode|}}}
|event2challonge={{{event2challonge|}}}
|event2winner={{{event2winner|}}}
|event2second={{{event2second|}}}
|event2third={{{event2third|}}}
|event2jointthird={{{event2jointthird|}}}
|event2champion={{{event2champion|}}}
|event2reigningchampion={{{event2reigningchampion|}}}
|event2championoutcome={{{event2championoutcome|}}}
|event2winnerteam={{{event2winnerteam|}}}
|event2secondteam={{{event2secondteam|}}}
|event2thirdteam={{{event2thirdteam|}}}
|event2jointthirdteam={{{event2jointthirdteam|}}}
|event2winner1={{{event2winner1|}}}
|event2winner2={{{event2winner2|}}}
|event2winner3={{{event2winner3|}}}
|event2second1={{{event2second1|}}}
|event2second2={{{event2second2|}}}
|event2second3={{{event2second3|}}}
|event2third1={{{event2third1|}}}
|event2third2={{{event2third2|}}}
|event2third3={{{event2third3|}}}
|event2jointthird1={{{event2jointthird1|}}}
|event2jointthird2={{{event2jointthird2|}}}
|event2jointthird3={{{event2jointthird3|}}}
}}
}}
}}</includeonly><noinclude>
}}</includeonly><noinclude>
== Editing workflow ==
== Purpose ==
 
This is the dispatcher for the tournament single-source system. Each festival has one named record, for example [[Template:Tournament data/Riverside I]], and its article contains only:


Each tournament has one data record, such as [[Template:Tournament data/Riverside I]]. Its article, overview row, chronology, prose and categories all read from that record
<pre>{{Tournament data/Riverside I}}</pre>


# Create <code>Template:Tournament data/Tournament Name</code> from the skeleton
Editing that record updates the article, infobox, prose, chronology, categories and [[Tournaments]] together
# Put <code><nowiki>{{Tournament data/Tournament Name}}</nowiki></code> on the article
# Register the record once in [[Template:Tournament list]]


== Record skeleton ==
== Record skeleton ==
Line 223: Line 351:
|post=
|post=
|challonge=
|challonge=
|youtube=
|youtubeexplicit=
|reigningchampion=
|championoutcome=
|winnerteam=
|winnerteam=
|winner1=
|winner1=
Line 243: Line 367:
</pre>
</pre>


For 1v1, use <code>winner</code>, <code>second</code> and <code>third</code> instead of team fields. Set <code>championoutcome</code> to <code>retained</code>, <code>transferred</code> or <code>no-show</code>. Prior champions and chronology are read automatically; overrides are only for incomplete historical data
For 1v1 results use <code>winner</code>, <code>second</code> and <code>third</code>. For team events, team names are optional but member fields are required. To record two joint third-place finishers, put the second player or team in <code>jointthird</code>, <code>jointthirdteam</code> and the matching member fields
 
If one festival contains a second bracket, keep one record and repeat event fields with the <code>event2</code> prefix, such as <code>event2date</code>, <code>event2format</code>, <code>event2winnerteam</code> and <code>event2winner1</code>. Shared festival details such as host, runners, image and forums post stay unprefixed


Upcoming status, chronology dates and format/continent categories are derived automatically
For the 1v1 champion title use <code>championoutcome</code> as <code>established</code>, <code>retained</code>, <code>transferred</code> or <code>no-show</code>, and put the resulting title holder in <code>champion</code>. Incoming champions and prior tournaments are resolved automatically


== Parameters ==
== Parameters ==


{| class="wikitable"
{| class="wikitable"
! Group !! Parameters !! Use
! Group !! Parameters
|-
| Basic || <code>name</code>, <code>date</code>, <code>image</code>, <code>type</code> || Identity; <code>type</code> defaults to Player Run Festival
|-
| Details || <code>format</code>, <code>mode</code>, <code>host</code>, <code>continent</code> || Format uses 1v1, 2v2, or 3v3; mode uses Potion or Barebones
|-
| Links || <code>post</code>, <code>challonge</code> || Forums thread number and Challonge ID
|-
|-
| Videos || <code>youtube</code>, <code>youtube2</code>, <code>youtube3</code> || YouTube video IDs
| Festival || <code>name</code>, <code>image</code>, <code>type</code>, <code>host</code>, <code>continent</code>
|-
|-
| Video options || <code>youtubelabel</code>, <code>youtubeexplicit</code> and numbered equivalents || Custom labels; set an <code>explicit</code> field to <code>yes</code> for the strong-language notice
| Event || <code>date</code>, <code>format</code>, <code>mode</code>, <code>challonge</code>
|-
|-
| Runners || <code>runner1</code>-<code>runner6</code> || Up to six organizers
| Links || <code>post</code>, <code>youtube</code>, <code>youtube2</code>, <code>youtube3</code> and matching label/explicit fields
|-
|-
| 1v1 results || <code>winner</code>, <code>second</code>, <code>third</code> || Placed players
| Runners || <code>runner1</code>-<code>runner6</code>
|-
|-
| 1v1 championship || <code>championoutcome</code>, <code>champion</code>, <code>reigningchampion</code> || Outcome uses <code>retained</code>, <code>transferred</code>, or <code>no-show</code>; the other fields are temporary historical overrides
| Podium || <code>winner</code>/<code>winnerteam</code>, <code>second</code>/<code>secondteam</code>, <code>third</code>/<code>thirdteam</code>, <code>jointthird</code>/<code>jointthirdteam</code> and member fields 1-3
|-
|-
| Team results || <code>winnerteam</code>, <code>secondteam</code>, <code>thirdteam</code> || Team names for 2v2 or 3v3
| Champion || <code>champion</code>, <code>championoutcome</code>; <code>reigningchampion</code> is an exceptional override
|-
|-
| Team members || <code>winner1</code>-<code>3</code>, <code>second1</code>-<code>3</code>, <code>third1</code>-<code>3</code> || Players in each placed team
| Second event || Any event or result field above prefixed with <code>event2</code>
|-
|-
| Overrides || <code>previous</code>, <code>next</code>, <code>townprevious</code>, <code>townnext</code> || Use only when known history is not yet in the registry
| Chronology overrides || <code>previous</code>, <code>next</code>, <code>townprevious</code>, <code>townnext</code>
|}
|}
== Render modes ==
* <code>article</code> — article view (default)
* <code>card</code> — compact card
* <code>row</code> — overview row
* <code>date</code> — stored date
* <code>champion</code> — resulting 1v1 champion


[[Category:Templates]]
[[Category:Templates]]
</noinclude>
</noinclude>

Revision as of 09:46, 19 August 2026

Purpose

This is the dispatcher for the tournament single-source system. Each festival has one named record, for example Template:Tournament data/Riverside I, and its article contains only:

{{Tournament data/Riverside I}}

Editing that record updates the article, infobox, prose, chronology, categories and Tournaments together

Record skeleton

<includeonly>{{Tournament data
|name=Tournament Name
|date=July 19, 2026
|image=
|format=3v3
|mode=Potion
|host=Town Name
|continent=Ascalon
|runner1=
|post=
|challonge=
|winnerteam=
|winner1=
|winner2=
|winner3=
|secondteam=
|second1=
|second2=
|second3=
|thirdteam=
|third1=
|third2=
|third3=
|render={{{render|article}}}
}}</includeonly>

For 1v1 results use winner, second and third. For team events, team names are optional but member fields are required. To record two joint third-place finishers, put the second player or team in jointthird, jointthirdteam and the matching member fields

If one festival contains a second bracket, keep one record and repeat event fields with the event2 prefix, such as event2date, event2format, event2winnerteam and event2winner1. Shared festival details such as host, runners, image and forums post stay unprefixed

For the 1v1 champion title use championoutcome as established, retained, transferred or no-show, and put the resulting title holder in champion. Incoming champions and prior tournaments are resolved automatically

Parameters

Group Parameters
Festival name, image, type, host, continent
Event date, format, mode, challonge
Links post, youtube, youtube2, youtube3 and matching label/explicit fields
Runners runner1-runner6
Podium winner/winnerteam, second/secondteam, third/thirdteam, jointthird/jointthirdteam and member fields 1-3
Champion champion, championoutcome; reigningchampion is an exceptional override
Second event Any event or result field above prefixed with event2
Chronology overrides previous, next, townprevious, townnext