Difference between revisions of "Template:Infobox"

From FEX-Emu Wiki
Jump to navigation Jump to search
Line 1: Line 1:
<includeonly>{{Infobox
+
<includeonly><!--
  
<!-- Start and styling -->
+
Restore the "three special pagename characters".
| child          = {{{child|}}}
 
| subbox        = {{{subbox|}}}
 
| italic title  = {{{italic title|<noinclude>no</noinclude>}}}
 
| bodystyle      = float: {{{align|right}}}; width: {{#if:{{{width|}}}|{{{width|}}}|22em}}; font-size: 90%; text-align: left; border-spacing: 3px;
 
| bodyclass      = {{#ifeq:{{{collapsible|}}}|yes|collapsible {{#if:{{{state|}}}|{{{state}}}|autocollapse}}}} hproduct
 
| labelstyle    = white-space:nowrap;padding-right:0.65em<!--(to ensure gap between any long/nonwrapped label and subsequent data on same line-->;
 
| datastyle      = line-height:1.3em;
 
| aboveclass    = fn
 
| abovestyle    = font-size:110%;font-style:italic;
 
  
<!-- Title -->
+
{{PAGENAME}} always return the page name with occurrences of the characters ", & and ' replaced with &#34;, &#38; and &#39;, respectively. While this normally doesn't cause any harm, it doesn't play nice with the search links generated by this template (especially for Redmine), so {{PAGENAME}} goes through a series of nested RegExp queries to undo those replacements before actually being processed and stored on {{#var:tl_infobox_autotitle}}.
| above          = <includeonly>{{{title|{{#if:{{#invoke:WikidataIB|label}}|{{#invoke:WikidataIB|label}}|{{PAGENAMEBASE}}}}}}}</includeonly>
 
  
<!-- Image -->
+
-->{{#vardefine:tl_infobox_searchfix|{{#regex:{{#regex:{{#regex:{{#var:tl_lowercase_title|{{PAGENAME}}}}|/&#34;/|"}}|/&#38;/|&}}|/&#39;/|'}}}}<!--
| image          = {{#invoke:InfoboxImage|InfoboxImage|image={{#invoke:WikidataIB |getValue|rank=best|P18 |name=image |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|ALL}}} |onlysourced=no |noicon=yes|{{{image|}}}}}|size={{{image size|{{{image_size|{{{imagesize|}}}}}}}}}|sizedefault=frameless|upright={{{image_upright|1}}}|alt={{{alt|}}}|border={{{border|}}}|suppressplaceholder=yes}}
 
| captionstyle  = font-size: 95%;
 
| caption        = {{#if:{{{image|}}}|{{{caption|}}}|{{{caption|{{#invoke:WikidataIB|getValue|P18|qual=P2096|qualsonly=y|fwd=ALL}}}}}}}
 
  
 +
Strip console from title
  
<!-- Start of content -->
+
-->{{#vardefine:tl_infobox_autotitle|{{#regex:{{#var:tl_infobox_searchfix}}|/\((Arcade{{!}}C64{{!}}Genesis{{!}}MSX{{!}}NES{{!}}SNES{{!}}SMS{{!}}TurboGrafx-16{{!}}Wii{{!}}GC{{!}}WiiWare{{!}}Triforce{{!}}Metroid Prime\: Trilogy)\)/|}}}}<!--
| label2  = [[Video game developer|Developer(s)]]
 
| data2  = {{{developer|{{If first display both|{{#invoke:WikidataIB|getValue|rank=best|P178|qid={{{qid|}}}|name=developer|suppressfields={{{suppressfields|}}}|fetchwikidata={{{fetchwikidata|ALL}}}|onlysourced={{{onlysourced|no}}}|noicon={{{noicon|no}}}|sep="<br />"|sorted=yes|{{{developer|}}} }}|{{#ifeq:{{{refs|no}}}|yes|{{wikidata|references|normal+|{{{qid|}}}|P178}}}}}}}}}
 
  
</includeonly>
+
Store GameIDs in a variable so we can check that GameIDs exist for the page
<noinclude>
+
 
 +
-->{{#vardefine:tl_infobox_ids|{{#dpl:
 +
|mode=inline
 +
|inlinetext=<nowiki>, </nowiki>
 +
|linksto={{FULLPAGENAME}}
 +
|redirects=only
 +
|titlematch=______
 +
|notcategory=Not GameID
 +
}}}}<!--
 +
 
 +
Get GameIDs again, this time in a format usable for searching the issue tracker
 +
 
 +
-->{{#vardefine:tl_infobox_searchids|{{#dpl:
 +
|mode=userformat
 +
|format=,%TITLE%,+,
 +
|linksto={{FULLPAGENAME}}
 +
|redirects=only
 +
|titlematch=______
 +
|notcategory=Not GameID
 +
}}}}<!--
 +
 
 +
Wikitable
 +
 
 +
-->{| class="{{#ifeq:{{{collapsible|}}}|yes|collapsible {{{state|autocollapse}}}}} infobox vevent" style="float:{{{align|right}}}; width:{{{width|300px}}}; font-size:90%; text-align:left;" cellspacing="0" cellpadding="3"
 +
|-
 +
! colspan=2 style="font-size:110%; text-align:center;" class="summary" | ''{{#tag:nowiki|{{#var:tl_infobox_autotitle|{{PAGENAME}}}}}}''<!-- nowiki tag is needed here for Chindōchō!! Pole no Daibōken -->
 +
{{#ifeq:{{{show image|}}}|yes|<table style="width:100%;font-size:90%; background:none;">|{{!}}-}}
 +
{{#if:{{{image|}}}|
 +
{{!}} colspan="2" style="text-align:center;" {{!}} {{{image|}}}<br />{{{caption|}}}
 +
}}
 +
{{#ifeq:{{{show image|}}}|yes|</table>}}
 +
{{Alternating rows table section
 +
|es=background:#f0f0f0;
 +
|{{#if:{{{channeltype|}}}| {{!}} '''Type''' {{!!}} {{{channeltype|}}}}}<!--
 +
 
 +
Make sure to update Template:Vgrelease along with the developer and publisher regexes
 +
 
 +
-->
 +
|{{#if:{{{developer|}}}|{{!}}'''[[:Category:Developers|Developer(s)]]'''{{!!}}{{#ifeq:{{#regex:{{{developer|}}}|/>/rs|}}||
 +
<!--List-->{{#regex:{{{developer|}}}|/([^,]+)(,? ?)/rs|[[:Category:$1 (Developer)|$1]][[Category:$1 (Developer)]]$2}}|
 +
<!--Regional List-->{{#regex:{{{developer|}}}|/({{#regex:{{{developer|}}}|/.*?(?:JP{{!}}NA{{!}}CA{{!}}EU{{!}}FR{{!}}DE{{!}}IT{{!}}NL{{!}}SC{{!}}SP{{!}}AUS{{!}}RU{{!}}KO{{!}}TW{{!}}SA).*?>.*?>\s*([^\[{{!}}<]*).*?>/rs|$1{{!}}}}#NOMATCH#)/rs|[[:Category:$1 (Developer)|$1]][[Category:$1 (Developer)]]}}}}
 +
}}
 +
|{{#if:{{{publisher|}}}|{{!}}'''[[:Category:Publishers|Publisher(s)]]'''{{!!}}{{#ifeq:{{#regex:{{{publisher|}}}|/>/rs|}}||
 +
<!--List-->{{#regex:{{{publisher|}}}|/([^,]+)(,? ?)/rs|[[:Category:$1 (Publisher)|$1]][[Category:$1 (Publisher)]]$2}}|
 +
<!--Regional List-->{{#regex:{{{publisher|}}}|/({{#regex:{{{publisher|}}}|/.*?(?:JP{{!}}NA{{!}}CA{{!}}EU{{!}}FR{{!}}DE{{!}}IT{{!}}NL{{!}}SC{{!}}SP{{!}}AUS{{!}}RU{{!}}KO{{!}}TW{{!}}SA).*?>.*?>\s*([^\[{{!}}<]*).*?>/rs|$1{{!}}}}#NOMATCH#)/rs|[[:Category:$1 (Publisher)|$1]][[Category:$1 (Publisher)]]}}}}
 +
}}
 +
|{{#if:{{{series|}}}|{{!}} '''[[:Category:Series|Series]]''' {{!!}}{{#vardefine:tl_infobox_series|{{#regex:{{{series|}}}|/''/|}}}}{{#vardefine:tl_infobox_seriescheck|{{#regex:{{#var:tl_infobox_series}}|/^\s*([^,]*).*/|$1}}}}{{#while:|{{#var:tl_infobox_seriescheck}}|{{#if:{{#var:tl_infobox_serieshaslooped}}|, <nowiki/>|{{#vardefine:tl_infobox_serieshaslooped|true}}}}''[[:Category:{{#var:tl_infobox_seriescheck}} (Series)|{{#var:tl_infobox_seriescheck}}]]''[[Category:{{#var:tl_infobox_seriescheck}} (Series)]]{{#ifexist:Category:{{#var:tl_infobox_seriescheck}} (Series)||[[Category:Pages with redlink series]]}}{{#vardefine:tl_infobox_series|{{#regex:{{#var:tl_infobox_series}}|/^\s*([^,]*)(,? ?)/|}}}}{{#vardefine:tl_infobox_seriescheck|{{#regex:{{#var:tl_infobox_series}}|/^\s*([^,]*).*/|$1}}}}}}{{#if:{{#var:tl_infobox_serieshaslooped}}||[[Category:Game pages with misformatted series]]}}}}
 +
|{{#ifpageincat:Platforms||{{!}} '''[[:Category:Platforms|Platform(s)]]''' {{!!}}{{#ifpageincat:Virtual Console games|[[Virtual Console]]{{#ifpageincat:NES games|, [[NES]]|{{#ifpageincat:TurboGrafx-16 games|, [[TurboGrafx-16]]|{{#ifpageincat:SNES games|, [[SNES]]|{{#ifpageincat:Sega Genesis games|, [[Sega Genesis]]|{{#ifpageincat:Arcade games|, [[Arcade]]|{{#ifpageincat:Neo Geo games|, [[Neo Geo]]|{{#ifpageincat:Nintendo 64 games|, [[Nintendo 64]]|{{#ifpageincat:Commodore 64 games|, [[Commodore 64]]|{{#ifpageincat:Sega Master System games|, [[Sega Master System]]|{{#ifpageincat:MSX games|, [[MSX]]|[[Category:Pages missing platform category]]}}}}}}}}}}}}}}}}}}}}|{{#ifpageincat:Wii games|[[Wii]]|{{#ifpageincat:GameCube games|[[GameCube]]|{{#ifpageincat:WiiWare games|[[WiiWare]]|{{#ifpageincat:Wii Channels|[[Wii Channels]]|{{#ifpageincat:Triforce games|[[Triforce]]|{{#ifpageincat:Wii U vWii|[[:Category:Wii U vWii|Wii U vWii]]|[[Category:Pages missing platform category]]}}}}}}}}}}}}}}}}
 +
|{{#if:{{{released|{{{release|}}}}}}| {{!}} {{nowrap|'''[[:Category:Initial release year|Release date(s)]]'''}} {{!!}} {{{released|{{{release}}}}}} {{#regex:{{{released|}}}|/.*?(\d\d\d\d).*/rs|[[Category:$1 (Initial release year)]]|1}}|[[Category:Game pages without release date(s)]]}}
 +
|{{#if:{{{genre|}}}|{{!}}'''[[:Category:Genres|Genre(s)]]'''{{!!}}{{#regex:{{#regex:{{{genre|}}}|/''/|}}|/([^,]+)(,? ?)/rs|[[:Category:$1 (Genre)|$1]][[Category:$1 (Genre)]]$2}}|[[Category:Game pages without genre]]}}
 +
|{{#if:{{{mode|{{{modes|}}}}}}|{{!}}'''[[:Category:Game mode|Mode(s)]]'''{{!!}}{{#regex:{{#regex:{{{modes|}}}|/(Single-player{{!}}Multi(-)?player{{!}}Co-op{{!}}LAN{{!}}Online)/rsi|[[:Category:$1 (Game mode)|$1]][[Category:$1 (Game mode)]]$2}}|/\((\d{1,2}{{!}}\*)\)/|([[:Category:$1 (Players supported)|$1]][[Category:$1 (Players supported)]])}}{{#ifeq:{{{modes|}}}|Single-player|[[Category:Single-player only (Game mode)]][[Category:1 (Players supported)]]|}}|{{#if:{{#regex:{{{genre|}}}|/Utility/}}||[[Category:Game pages without modes of play]]}}}}
 +
|{{#if:{{{input|}}}|{{!}}'''[[:Category:Input supported|Input methods]]'''{{!!}}{{#regex:{{{input|}}}|/(Wii Remote{{!}}Nunchu(c)?k{{!}}Dance Pad{{!}}Wii Balance Board{{!}}USB Keyboard{{!}}Skylander Portal{{!}}Active Heart Rate Monitor{{!}}Cyberbike{{!}}Ubisoft Camera{{!}}Nintendo DS{{!}}Game( )?Boy Advance{{!}}uDraw GameTablet{{!}}Drawsome Tablet{{!}}Wii MotionPlus{{!}}TaTaCon{{!}}DK Bongos{{!}}(GameCube{{!}}Classic{{!}}Shinkansen{{!}}Drum{{!}}Guitar{{!}}Keyboard{{!}}Turntable{{!}}Ride{{!}}Arcade) Controller{{!}}Wii Speak{{!}}USB Microphone{{!}}GameCube Microphone{{!}}Microphone)/rsi|[[:Category:$1 (Input supported)|$1]][[Category:$1 (Input supported)]]$2}}|[[Category:Game pages without possible inputs]]}}
 +
|{{#ifpageincat:Disambiguation pages||{{!}} '''[[:Category:Rating|Compatibility]]''' {{!!}}{{ratings|{{PAGENAME}}}}{{#regex:{{ratings|{{PAGENAME}}}}|/.*?Stars(\d)\.png.*/|[[Category:$1 stars (Rating)]]<br /><span style="display:inline-block;width:118px;text-align:center;font-size:8pt;font-weight:bold;color:#666;">{{#switch:{{#regex:{{ratings|{{PAGENAME}}}}|/.*?Stars(\d)\.png.*/|$1}}|=Unknown|0=Unknown|1=Broken|2=Intro/Menu|3=Starts|4=Playable|5=Perfect|$1}}</span>}}}}
 +
|{{!}} '''[[GameIDs]]''' {{!!}} {{#var:tl_infobox_ids}}
 +
|{{!}} '''See also...''' {{!!}}
 +
{{#ifeq:{{#var:tl_infobox_autotitle}}|{{#var:tl_infobox_searchfix}}||{{#ifexist:{{#var:tl_infobox_autotitle}} (Arcade)|{{#ifeq:{{#var:tl_infobox_autotitle}} (Arcade)|{{#var:tl_infobox_searchfix}}||[[{{#var:tl_infobox_autotitle}} (Arcade)|Arcade Version]]<br />
 +
}}}}{{#ifexist:{{#var:tl_infobox_autotitle}} (C64)|{{#ifeq:{{#var:tl_infobox_autotitle}} (C64)|{{#var:tl_infobox_searchfix}}||[[{{#var:tl_infobox_autotitle}} (C64)|C64 Version]]<br />
 +
}}}}{{#ifexist:{{#var:tl_infobox_autotitle}} (Genesis)|{{#ifeq:{{#var:tl_infobox_autotitle}} (Genesis)|{{#var:tl_infobox_searchfix}}||[[{{#var:tl_infobox_autotitle}} (Genesis)|Genesis Version]]<br />
 +
}}}}{{#ifexist:{{#var:tl_infobox_autotitle}} (MSX)|{{#ifeq:{{#var:tl_infobox_autotitle}} (MSX)|{{#var:tl_infobox_searchfix}}||[[{{#var:tl_infobox_autotitle}} (MSX)|MSX Version]]<br />
 +
}}}}{{#ifexist:{{#var:tl_infobox_autotitle}} (NES)|{{#ifeq:{{#var:tl_infobox_autotitle}} (NES)|{{#var:tl_infobox_searchfix}}||[[{{#var:tl_infobox_autotitle}} (NES)|NES Version]]<br />
 +
}}}}{{#ifexist:{{#var:tl_infobox_autotitle}} (SNES)|{{#ifeq:{{#var:tl_infobox_autotitle}} (SNES)|{{#var:tl_infobox_searchfix}}||[[{{#var:tl_infobox_autotitle}} (SNES)|SNES Version]]<br />
 +
}}}}{{#ifexist:{{#var:tl_infobox_autotitle}} (SMS)|{{#ifeq:{{#var:tl_infobox_autotitle}} (SMS)|{{#var:tl_infobox_searchfix}}||[[{{#var:tl_infobox_autotitle}} (SMS)|SMS Version]]<br />
 +
}}}}{{#ifexist:{{#var:tl_infobox_autotitle}} (TurboGrafx-16)|{{#ifeq:{{#var:tl_infobox_autotitle}} (TurboGrafx-16)|{{#var:tl_infobox_searchfix}}||[[{{#var:tl_infobox_autotitle}} (TurboGrafx-16)|TurboGrafx-16 Version]]<br />
 +
}}}}{{#ifexist:{{#var:tl_infobox_autotitle}} (Triforce)|{{#ifeq:{{#var:tl_infobox_autotitle}} (Triforce)|{{#var:tl_infobox_searchfix}}||[[{{#var:tl_infobox_autotitle}} (Triforce)|Triforce Version]]<br />
 +
}}}}{{#ifexist:{{#var:tl_infobox_autotitle}} (GC)|{{#ifeq:{{#var:tl_infobox_autotitle}} (GC)|{{#var:tl_infobox_searchfix}}||[[{{#var:tl_infobox_autotitle}} (GC)|GameCube Version]]<br />
 +
}}}}{{#ifexist:{{#var:tl_infobox_autotitle}} (WiiWare)|{{#ifeq:{{#var:tl_infobox_autotitle}} (WiiWare)|{{#var:tl_infobox_searchfix}}||[[{{#var:tl_infobox_autotitle}} (WiiWare)|WiiWare Version]]<br />
 +
}}}}{{#ifexist:{{#var:tl_infobox_autotitle}} (Wii)|{{#ifeq:{{#var:tl_infobox_autotitle}} (Wii)|{{#var:tl_infobox_searchfix}}||[[{{#var:tl_infobox_autotitle}} (Wii)|Wii Version]]<br />
 +
}}}}{{#ifexist:{{#var:tl_infobox_autotitle}} (Metroid Prime: Trilogy)|{{#ifeq:{{#var:tl_infobox_autotitle}} (Metroid Prime: Trilogy)|{{#var:tl_infobox_searchfix}}||[[{{#var:tl_infobox_autotitle}} (Metroid Prime: Trilogy)|Trilogy Version]]<br />
 +
}}}}}}
 +
{{#if:{{{forumlink|}}}|[{{{forumlink|}}} Dolphin Forum thread]|[https://www.google.com/search?q=site:forums.dolphin-emu.org+{{urlencode:{{#var:tl_infobox_autotitle}}|QUERY}} Search Dolphin Forums][[Category:Game pages without Dolphin forum link]]}}<br />
 +
{{#if:{{#var:tl_infobox_searchids}}|[https://bugs.dolphin-emu.org/projects/emulator/search?q={{urlencode:"{{#var:tl_infobox_autotitle}}"|QUERY}}+{{#var:tl_infobox_searchids}}&all_words=&open_issues=1 Open Issues]|[https://bugs.dolphin-emu.org/projects/emulator/search?q={{urlencode:{{#var:tl_infobox_autotitle}}|QUERY}}&open_issues=1 Open Issues]}}<br />
 +
{{#if:||[https://www.google.com/search?q={{urlencode:{{#var:tl_infobox_autotitle}}|QUERY}} Search Google]<br />}}
 +
{{#if:{{{wikipedia|}}}|[[wikipedia:{{{wikipedia|}}}|Wikipedia page]]|[[wikipedia:{{#var:tl_infobox_autotitle}}|Search Wikipedia]]}}<br />
 +
{{#incat:Ships with debugging symbols|[[Ships with Debugging Symbols|Debug Symbol Files]]}}
 +
}}
 +
|}
 +
</includeonly><noinclude>
 
{{documentation}}
 
{{documentation}}
<!-- Categories go in the /doc subpage, and interwikis go in Wikidata. -->
 
 
</noinclude>
 
</noinclude>

Revision as of 04:20, 10 October 2020

[create] Template documentation