Difference between revisions of "Template:Honor infobox"

From Pathfinder Wiki
Line 30: Line 30:
 
|insignia=Camping_Skills_IV.png
 
|insignia=Camping_Skills_IV.png
 
|insignia_source=foo
 
|insignia_source=foo
 +
}}
 +
{{{{FULLPAGENAME}}
 +
|honorname=Camping Skills IV
 
}}
 
}}
 
{{{{FULLPAGENAME}}
 
{{{{FULLPAGENAME}}
Line 42: Line 45:
 
{{{{FULLPAGENAME}}
 
{{{{FULLPAGENAME}}
 
|honorname=Rock Climbing
 
|honorname=Rock Climbing
|skill=2
 
|year=1970
 
|category=Recreation
 
|authority=North American Division
 
|insignia=
 
 
}}
 
}}
 
[[Category:UsesLoops]]</noinclude>
 
[[Category:UsesLoops]]</noinclude>
<includeonly><!-- Get the List of Master Honors -->{{#vardefine:master|{{GetMasterCategoryList|category={{{category}}}|master1={{{master1|}}}|master1_group={{{master1_group}}}|master2={{{master2|}}}|master_group2={{{master_group2}}} }} }}<!-- create the string-variables holding the content for the see more section -->{{#vardefine: i | 0 }}{{#vardefine: locSeeAlsoLess |}}{{#vardefine: locSeeAlsoMore |}}<!-- get all interesting links for see also into one variable seperated by | -->{{#vardefine:locSeeAlsoAll|{{#var:master}}{{See Also|honorname={{#titleparts:{{PAGENAME}}|1|2}}}}}}{{#if:{{#explode: {{#var:locSeeAlsoAll}}|%{{!}}%|{{#var:i}} }} | {{#vardefine:locSeeAlsoLess|{{#explode: {{#var:locSeeAlsoAll}}|%{{!}}%|{{#var:i}} }} }}{{#vardefine: i | {{#expr: {{#var: i }} + 1 }} }}{{#while: | {{#explode: {{#var:locSeeAlsoAll}}|%{{!}}%|{{#var:i}} }} | {{#ifexpr: {{#var:i}}<3|<!--yes-->{{#vardefine:locSeeAlsoLess|{{#var:locSeeAlsoLess}}<br>{{#explode: {{#var:locSeeAlsoAll}}|%{{!}}%|{{#var:i}} }} }}|<!--no-->{{#vardefine:locSeeAlsoMore|{{#var:locSeeAlsoMore}}{{#ifexpr:{{#var:i}}>3|<br>}}{{#explode: {{#var:locSeeAlsoAll}}|%{{!}}%|{{#var:i}} }} }} }}{{#vardefine: i | {{#expr: {{#var: i }} + 1 }} }} }} }}<!-- get the patch -->{{#vardefine:patch|{{#if:{{{insignia|}}}|{{#switch:{{{insignia}}}
+
<includeonly><!-- Get the List of Master Honors -->{{#vardefine:localCategory|{{{category|{{GetHonorMetaData|honor={{{honorname|}}}|language=/en}}}}}}}{{#vardefine:master|{{GetMasterCategoryList|category={{#var:localCategory}}|master1={{{master1|{{GetHonorMetaData|honor={{{honorname|}}}|language=/en|parameter=master1}}}}}|master2={{{master2|{{GetHonorMetaData|honor={{{honorname|}}}|language=/en|parameter=master2}}}}}}}}}<!-- create the string-variables holding the content for the see more section -->{{#vardefine:i|0}}{{#vardefine:locSeeAlsoLess|}}{{#vardefine:locSeeAlsoMore|}}<!-- get all interesting links for see also into one variable seperated by | -->{{#vardefine:locSeeAlsoAll|{{#var:master}}{{GetHonorSeeAlso|honorname={{{honorname|}}}}}}}{{#if:{{#explode: {{#var:locSeeAlsoAll}}|%{{!}}%|{{#var:i}} }} | {{#vardefine:locSeeAlsoLess|{{#explode: {{#var:locSeeAlsoAll}}|%{{!}}%|{{#var:i}} }} }}{{#vardefine: i | {{#expr: {{#var: i }} + 1 }} }}{{#while: | {{#explode: {{#var:locSeeAlsoAll}}|%{{!}}%|{{#var:i}} }} | {{#ifexpr: {{#var:i}}<3|<!--yes-->{{#vardefine:locSeeAlsoLess|{{#var:locSeeAlsoLess}}<br>{{#explode: {{#var:locSeeAlsoAll}}|%{{!}}%|{{#var:i}} }} }}|<!--no-->{{#vardefine:locSeeAlsoMore|{{#var:locSeeAlsoMore}}{{#ifexpr:{{#var:i}}>3|<br>}}{{#explode: {{#var:locSeeAlsoAll}}|%{{!}}%|{{#var:i}} }} }} }}{{#vardefine: i | {{#expr: {{#var: i }} + 1 }} }} }} }}<!-- get the patch -->{{#vardefine:localInsignia|{{{insignia|{{GetHonorMetaData|honor={{{honorname|}}}|language=/en|parameter=insignia}}}}}}}{{#vardefine:patch|{{#if:{{#var:localInsignia}}|{{#switch:{{#var:localInsignia}}
 
|No Patch.png
 
|No Patch.png
 
|No_Patch.png={{#lst:Localization:All{{GetLangSuffix}}|No Patch}}
 
|No_Patch.png={{#lst:Localization:All{{GetLangSuffix}}|No Patch}}
|{{{insignia}}}
+
|{{#var:localInsignia}}
 
}}|{{#lst:Localization:All{{GetLangSuffix}}|No Patch}}}}}}
 
}}|{{#lst:Localization:All{{GetLangSuffix}}|No Patch}}}}}}
 
<templatestyles src="Honor infobox/style.css" /><div class="mw-parser-output">
 
<templatestyles src="Honor infobox/style.css" /><div class="mw-parser-output">
 
{| class="honor-infobox"
 
{| class="honor-infobox"
 
|-
 
|-
|colspan="2"  id="infobox-title"|{{{honorname}}}
+
|colspan="2"  id="infobox-title"|{{{honorname|{{#titleparts:{{GetHonorLandingPage}}||-1}}}}}
 
|-
 
|-
| colspan="2" |[[AY Honors/{{{category}}}{{GetLangSuffix}}|{{Localize|{{{category}}}}}]]
+
| colspan="2" |[[AY Honors/{{#var:localCategory}}{{GetLangSuffix}}|{{Localize|{{#var:localCategory}}}}]]
 
|-
 
|-
 
|colspan="2" style="padding: .5rem 2rem;"|
 
|colspan="2" style="padding: .5rem 2rem;"|
{{#if:{{{insignia_source|}}}
+
{{#if:{{{insignia_source|{{GetHonorMetaData|honor={{{honorname|}}}|language=/en|parameter=insignia_source}}}}}
 
   |{{Superimpose
 
   |{{Superimpose
 
       | base = {{#var:patch}}
 
       | base = {{#var:patch}}
Line 79: Line 77:
 
}}
 
}}
 
|-
 
|-
| colspan="2" class="infobox-value text-light bg-secondary" |<span class="infobox-value-emphasize">{{Localize|Skill Level}}</span><br>{{Honor infobox/echoSkillLevel | skill={{{skill}}}}}
+
| colspan="2" class="infobox-value text-light bg-secondary" |<span class="infobox-value-emphasize">{{Localize|Skill Level}}</span><br>{{Honor infobox/echoSkillLevel | skill={{{skill|{{GetHonorMetaData|honor={{{honorname|}}}|parameter=skill}}}}}}}
 
|-
 
|-
| class="infobox-value text-light bg-secondary" | <span class="infobox-value-emphasize">{{Localize|Approval authority}}</span><br>{{Localize|{{{authority}}}}}
+
| class="infobox-value text-light bg-secondary" | <span class="infobox-value-emphasize">{{Localize|Approval authority}}</span><br>{{#if:{{{authority|}}}|{{Localize|{{{authority}}}}}|{{GetHonorMetaData|honor={{{honorname|}}}|parameter=authority}}}}
 
| class="infobox-value text-light bg-secondary" | <span class="infobox-value-emphasize">{{Localize|Year of Introduction}}</span><br>
 
| class="infobox-value text-light bg-secondary" | <span class="infobox-value-emphasize">{{Localize|Year of Introduction}}</span><br>
{{#iferror:{{#expr:1+{{{year|X}}} }}|{{Localize|Unknown}}|{{{year}}} }}
+
{{#vardefine:localYear|{{{year|{{GetHonorMetaData|honor={{{honorname|}}}|language=/en|parameter=year}}}}}}}{{#iferror:{{#expr:1+{{#var:localYear|X}} }}|{{Localize|Unknown}}|{{#var:localYear}} }}
 
{{#if:{{#var:locSeeAlsoLess}}|{{!}}-
 
{{#if:{{#var:locSeeAlsoLess}}|{{!}}-
 
{{!}}colspan="2" id="infobox-part-of" class="infobox-value text-light bg-secondary"  {{!}}<span class="infobox-value-emphasize">{{Localize|See also}}</span><br>
 
{{!}}colspan="2" id="infobox-part-of" class="infobox-value text-light bg-secondary"  {{!}}<span class="infobox-value-emphasize">{{Localize|See also}}</span><br>

Revision as of 00:06, 24 March 2021

This template creates an infobox for an honor.

Mechanics

We had to be careful when invoking See_Also - it uses the honorname parameter to construct the name of a category under which related honors can be found. But the honorname parameter is translated and the categories are not. So even though See_Also wants an honorname, it always wants it in English, and then it tacks a language suffix to the end of the category. To fix this, we needed to extract See_Also's honorname parameter from the invoking page's title using titleparts to grab the second element.

The remaining mechanics are just opaque magic (sorry).

Example

{{Template:Honor infobox
|honorname=Camping Skills IV
|skill=2
|year=2001
|category=Recreation
|authority=General Conference
|insignia=Camping_Skills_IV.png
|insignia_source=foo
|master1=Wilderness
}}


Camping Skills IV
Recreation
[[File:|170px|link=|alt=|]]
Skill Level
123
Approval authority
Year of Introduction

2001

See also
Wilderness Master Award
Camp Safety - Advanced
Outdoor Leadership


Camping Skills IV
Recreation
Skill Level
123
Approval authority
General Conference
Year of Introduction

1986

See also
Wilderness Master Award
Camp Safety - Advanced
Outdoor Leadership


Rock Climbing
Recreation
[[File:|170px|link=|alt=|]]
Skill Level
123
Approval authority
Year of Introduction

1970

See also

Recreation Master Award
Rock Climbing - Advanced


Rock Climbing
Recreation
Skill Level
123
Approval authority
North American Division
Year of Introduction

1970

See also

Recreation Master Award
Rock Climbing - Advanced