From GamingWiki
Jump to: navigation, search
 
(11 intermediate revisions by the same user not shown)
Line 2: Line 2:
 
Display an infobox linking to the various topics related to this year.
 
Display an infobox linking to the various topics related to this year.
 
</noinclude><!--
 
</noinclude><!--
 +
 +
VARIABLES
  
 
   Create a variable to hold the year number.
 
   Create a variable to hold the year number.
 
-->{{#vardefine: theyear|<!--
 
-->{{#vardefine: theyear|<!--
-->{{#ifeq:{{{1}}}|BC|{{PAGENAME}}|{{{year|<noinclude>{{CURRENTYEAR}}</noinclude><includeonly>{{PAGENAME}}</includeonly>}}}}}<!--
+
  -->{{#ifeq:{{{1}}}|BC<!--
 +
      -->|{{PAGENAME}}<!--
 +
      -->|{{{year|<!-- Conditional default value:
 +
        -->{{#rmatch:{{PAGENAME}}|^\d+$<!--
 +
            -->|{{PAGENAME}}<!--
 +
            -->|{{Campaign year|campaign={{{campaign|}}}}}<!--
 +
        -->}}<!--
 +
      -->}}}<!--
 +
  -->}}<!-- end ifeq
 
-->}}<!--
 
-->}}<!--
 +
 +
--><noinclude>
 +
:<!--
 +
--> We create a variable containing the name of the subtemplate containing <!--
 +
--> data for our infobox. This data will be parsed into a HashTable. The  <!--
 +
--> keys of the hash are the sections of the "year in" topics, and each    <!--
 +
--> value is a link to the relevant page. The format of the data is:     
 +
;; key1 :: value1-1 :: value1-2
 +
;; key2 :: value2-1
 +
;; key3 :: value3-1 :: value3-2 :: value3-3
 +
:<!--
 +
--> Et cetera. Each key starts with a double semicolon and may be followed <!--
 +
--> by any number of values, separated from the key and from each other by <!--
 +
--> double colons.                                                        <!--
 +
--></noinclude><!--
 +
-->{{#vardefine: datatemplate|Year in topic/<!--
 +
  If we've specified a campaign, look for that campaign's subtemplate.
 +
  -->{{#ifexist: Template:Year in topic/{{{campaign|MAGIC_DNE}}}<!--
 +
      -->|{{{campaign}}}<!--
 +
      -->|default<!--
 +
  -->}}<!-- end ifexist
 +
-->}}<!-- end vardefine
  
 
Define a big data array.  
 
Define a big data array.  
  
-->{{#vardefine: ytdata |<!--
+
-->{{#vardefine: ytdata|{{ {{#var: datatemplate}}|year={{#var:theyear}}}}}}<!--
  If we've specified a campaign, look for that campaign's subtemplate.
+
 
  -->{{#ifexist: Template:Year in topic/{{{campaign|MAGIC_NO_SUCH}}}<!--
+
-->{{#hashdefine: datahash | {{#var:ytdata}} | ;; | :: }}<!--
  -->|{{Year in topic/{{{campaign}}}|year={{#var:theyear}}}}<!--
 
  -->|{{Year in topic/default|year={{#var:theyear}}}}<!--
 
  -->}}<!-- end ifexist
 
-->}}<!-- end data definition
 
  
-->{{#hashdefine: datahash | {{#var:ytdata}} | ;; | // }}<!--
+
  If an empty key exists, any value it contains will be evaluated as wikitext.
-->{{#hashdefine: datahash | ;; foo // bar ;; baz // quz | ;; | // }}<!--
+
  This allows us to insert things like category specifications that don't
-->{{#tag: pre | ytdata: {{#var:ytdata}} }}<!--
+
  become part of the data variable. Once evaluated, the empty key is
-->{{#tag: pre | {{#hashprint: datahash }} }}<!--
+
  removed from the hash.
 +
-->{{#hashvalue: datahash | }}<!--
 +
-->{{#hashexclude: datahash | }}<!--
  
 
-->
 
-->
{| class="infobox" width=300 <!-- wider than 300 would chop or eclipse article text after [[:Template:Year_nav]]. -->
+
{| class="infobox floatright"
 +
| align="center" class="above" | <!--
 +
--><div class="floatleft">&laquo; [[{{#expr:{{#var:theyear}}-1}}]]</div><!--
 +
-->{{#var:theyear}} by topic<!--
 +
--><div class="floatright">[[{{#expr:{{#var:theyear}}+1}}]] &raquo;</div><!--
 +
-->{{#hashprint: datahash ||%%%% |@@@@ |<nowiki />
 +
{{!}}-
 +
{{!}} class="subhead" {{!}} %%%%
 +
{{!}}-
 +
{{!}}{{!}} {{Array Map | array=@@@@ | separator = :: | beforefirst = | before = &nbsp;&ndash;&nbsp; }}<!--
 +
-->}}<!-- --><nowiki />
 
|-
 
|-
| align="center" | '''{{#if: {{{campaign|}}}|[[{{{campaign}}}]]: }}[[:Category:{{#var:theyear}}|{{#var:theyear}} by topic]]:'''
+
| class="below" | <!--
|- style="background-color:#f3f3f3"
+
--> {{navbar|Year in topic|mini=1|nodiv=1|brackets=1|label=Box:}} <!--
| align="center" | <small>''Subject''</small>
+
--> {{navbar|{{#var:datatemplate}}|mini=1|nodiv=1|brackets=1|label=Data:}}
|-
+
|}<!--
| align="center" | {{Array Map | array=
+
 
;;[[{{#var:theyear}} in archaeology|Archaeology]]
+
  TODO: implement "other calendars"
| beforefirst = | before = &nbsp;&ndash;&nbsp; }}
+
 
|-
+
--><noinclude>
| {{navbar|Year in topic|mini=1}}
+
:<!--
|}
+
--> We also support multiple calendars, if they exist. The mechanism for  <!--
<!-- {{Year in other calendars|year={{#var:theyear<noinclude>|1950</noinclude>}}}} --><!--
+
--> choosing a template to transclude is similar to the data template: if  <!--
 +
--> the 'campaign' parameter has been specified, and if the page          <!--
 +
--> <tt>Template:Year in other calendars/{{{campaign}}}</tt> exists, then  <!--
 +
--> we transclude it. If {{{campaign}}} is unset or, or the template does  <!--
 +
--> not exist, we use <tt>Template:Year in other calendars/default</tt>.  <!--
 +
--></noinclude><!--
 +
-->{{#vardefine: calendars| Year in other calendars/<!--
 +
  If we've specified a campaign, look for that campaign's subtemplate.
 +
  -->{{#ifexist: Template:Year in other calendars/{{{campaign|MAGIC_DNE}}}<!--
 +
      -->|{{{campaign}}}<!--
 +
      -->|default<!--
 +
  -->}}<!-- end ifexist
 +
-->}}<!-- end vardefine
 +
--><!-- {{ {{#var:calendars}}|year={{#var:theyear}}}} --><!--
 +
-->{{Year in other calendars  
 +
| year = {{#var:theyear}}
 +
| campaign = {{{campaign|}}} }}<!--
  
 
--><noinclude>
 
--><noinclude>
 
[[Category:Time, date and calendar templates|{{#var:theyear}}]]</noinclude>
 
[[Category:Time, date and calendar templates|{{#var:theyear}}]]</noinclude>

Latest revision as of 16:26, 22 February 2011

Display an infobox linking to the various topics related to this year.

We create a variable containing the name of the subtemplate containing data for our infobox. This data will be parsed into a HashTable. The keys of the hash are the sections of the "year in" topics, and each value is a link to the relevant page. The format of the data is:
;; key1 :: value1-1 :: value1-2
;; key2 :: value2-1
;; key3 :: value3-1 :: value3-2 :: value3-3
Et cetera. Each key starts with a double semicolon and may be followed by any number of values, separated from the key and from each other by double colons.
« 2023
2024 by topic
2025 »
Subject
Archaeology – Architecture – Art – Aviation – Awards – Comics – Film – Home video – Literature (Poetry) – Meteorology – Music (Country, Metal) – Rail transport – Radio – Science – Sports – Television – Video gaming
By country
Australia – Canada – People's Republic of China – Ecuador – France – Germany – Greece – India – Ireland – Israel – Italy – Japan – Luxembourg – Malaysia – Mexico – New Zealand – Norway – Pakistan – Philippines – Russia – Singapore – South Africa – UK – USA – Zimbabwe
Leaders
Sovereign states – State leaders – Religious leaders – Law
Birth and death
Births – Deaths
Establishments and disestablishments
Establishments – Disestablishments
Works and introductions
Works – Introductions
 Box: [v  e]   Data: [v  e] 
We also support multiple calendars, if they exist. The mechanism for choosing a template to transclude is similar to the data template: if the 'campaign' parameter has been specified, and if the page Template:Year in other calendars/{{{campaign}}} exists, then we transclude it. If {{{campaign}}} is unset or, or the template does not exist, we use Template:Year in other calendars/default.
2024 in other calendars
Gregorian calendar 2024
MMXXIV
Ab urbe condita 2777
Bahá'í calendar 180 – 181
Bengali calendar 1431
Berber calendar 2974
Buddhist calendar 2568
Burmese calendar 1386
Byzantine calendar 7532 – 7533
Coptic calendar 1740 – 1741
Ethiopian calendar 2016 – 2017
Hebrew calendar 5784 – 5785
Holocene calendar 12024
Iranian calendar 1402 – 1403
Islamic calendar 1445 – 1446
Korean calendar 4357
Thai solar calendar 2567
Unix time 1704067200 – 1735689599
 Box: [v  e]   Data: [v  e]