Difference between revisions of "Template:Infobox"

From FEX-Emu Wiki
Jump to navigation Jump to search
 
(84 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<includeonly><!--
+
<div class="infobox">
 +
<div class="infobox-title">{{{title|{{PAGENAME}}}}}</div>
 +
{{#if:{{{image|}}}|<div class="infobox-image">[[File:{{{image}}}|300px]]</div>}}
 +
{{#if:{{{steamheader|}}}|<div class="portrait300px">https://cdn.cloudflare.steamstatic.com/steam/apps/{{{steamheader}}}/header.jpg</div>|{{#if:{{{steamappid|}}}|<div class="portrait300px">https://cdn.cloudflare.steamstatic.com/steam/apps/{{{steamappid}}}/library_600x900.jpg</div>}}|}}
 +
{|
  
Restore the "three special pagename characters".
+
{{#if:{{{steamappid|}}}{{{gogurl|}}}|
 
+
    <!-- First element -->
{{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}}.
+
    {{!}}'''Storefronts'''
 
+
{{!!}}
-->{{#vardefine:tl_infobox_searchfix|{{#regex:{{#regex:{{#regex:{{#var:tl_lowercase_title|{{PAGENAME}}}}|/&#34;/|"}}|/&#38;/|&}}|/&#39;/|'}}}}<!--
+
{{#if:{{{steamappid|}}}|
 
+
{{#regex:{{{steamurl}}}|/([^,]+)(,? ?)/rs|
Strip console from title
+
[[Image:Steam_logo.svg|24px|link=https://store.steampowered.com/app/{{{steamappid}}}]]}}[[Category:On Steam]]
 
 
-->{{#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)\)/|}}}}<!--
 
 
 
Store GameIDs in a variable so we can check that GameIDs exist for the page
 
 
 
-->{{#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|}}||
+
{{#if:{{{gogurl|}}}|
<!--List-->{{#regex:{{{publisher|}}}|/([^,]+)(,? ?)/rs|[[:Category:$1 (Publisher)|$1]][[Category:$1 (Publisher)]]$2}}|
+
{{#regex:{{{gogurl}}}|/([^,]+)(,? ?)/rs|
<!--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)]]}}}}
+
[[Image:Gog_logo.svg|24px|link=$1]]}}[[Category:On GOG]]
 
}}
 
}}
|{{#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]]}}}}
+
{{!}}</tr>|
|{{#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]]}}
 
 
}}
 
}}
 +
{{#if:{{{os|}}}|{{!}}'''Operating Systems'''{{!!}}{{#ifeq:{{#regex:{{{os|}}}|/>/rs|}}||
 +
<!--List-->{{#regex:{{{os|}}}|/([^,]+)(,? ?)/rs|[[:Category:$1 Games|$1]][[Category:$1 Games]]$2}}</tr>|
 +
}}}}
 +
{{#if:{{{engine|}}}|{{!}}'''Engine'''{{!!}}{{#ifeq:{{#regex:{{{engine|}}}|/>/rs|}}||
 +
<!--List-->{{#regex:{{{engine|}}}|/([^,]+)(,? ?)/rs|[[:Category:$1 Engine|$1]][[Category:$1 Engine]]$2}}</tr>|
 +
}}}}
 +
{{#if:{{{arch|}}}|{{!}}'''Architecture'''{{!!}}{{#ifeq:{{#regex:{{{arch|}}}|/>/rs|}}||
 +
<!--List-->{{#regex:{{{arch|}}}|/([^,]+)(,? ?)/rs|[[:Category:$1|$1]][[Category:$1]]$2}}</tr>|
 +
}}}}
 +
{{#if:{{{cpufeats|}}}|{{!}}'''CPU Features Used'''{{!!}}{{#ifeq:{{#regex:{{{cpufeats|}}}|/>/rs|}}||
 +
<!--List-->{{#regex:{{{cpufeats|}}}|/([^,]+)(,? ?)/rs|[[:Category:$1 CPU Feature|$1]][[Category:$1 CPU Feature]]$2}}</tr>|
 +
}}}}
 +
{{#if:{{{compat|}}}|{{!}}'''Compatibility'''{{!!}}{{#ifeq:{{#regex:{{{compat|}}}|/>/rs|}}||
 +
<!--List-->{{#regex:{{{compat|}}}|/([^,]+)(,? ?)/rs|[[:Category:$1 Compatibility|$1]][[Category:$1 Compatibility]]$2}}</tr>|
 +
}}}}
 +
{{#if:{{{apptype|}}}|{{!}}'''Type'''{{!!}}{{#ifeq:{{#regex:{{{apptype|}}}|/>/rs|}}||
 +
<!--List-->{{#regex:{{{apptype|}}}|/([^,]+)(,? ?)/rs|[[:Category:$1 Type Application|$1]][[Category:$1 Type Application]]$2}}</tr>|
 +
}}}}
 +
{{#if:{{{renderapi|}}}|{{!}}'''Render API'''{{!!}}{{#ifeq:{{#regex:{{{renderapi|}}}|/>/rs|}}||
 +
<!--List-->{{#regex:{{{renderapi|}}}|/([^,]+)(,? ?)/rs|[[:Category:$1 Render API|$1]][[Category:$1 Render API]]$2}}</tr>|
 +
}}}}
 +
{{#if:{{{workingthunks|}}}|{{!}}'''Supported Thunks'''{{!!}}{{#ifeq:{{#regex:{{{workingthunks|}}}|/>/rs|}}||
 +
<!--List-->{{#regex:{{{workingthunks|}}}|/([^,]+)(,? ?)/rs|[[:Category:$1 Thunk Capable|$1]][[Category:$1 Thunk Capable]]$2}}</tr>|
 +
}}}}
 +
{{#if:{{{nonworkingthunks|}}}|{{!}}'''Unsupported Thunks'''{{!!}}{{#ifeq:{{#regex:{{{nonworkingthunks|}}}|/>/rs|}}||
 +
<!--List-->{{#regex:{{{nonworkingthunks|}}}|/([^,]+)(,? ?)/rs|[[:Category:$1 Thunk Incapable|$1]][[Category:$1 Thunk Incapable]]$2}}</tr>|
 +
}}}}
 +
{{#if:{{{drm|}}}|{{!}}'''DRM'''{{!!}}{{#ifeq:{{#regex:{{{drm|}}}|/>/rs|}}||
 +
<!--List-->{{#regex:{{{drm|}}}|/([^,]+)(,? ?)/rs|[[:Category:$1 DRM|$1]][[Category:$1 DRM]]$2}}</tr>|
 +
}}}}
 
|}
 
|}
</includeonly><noinclude>
+
</div>
{{documentation}}
 
</noinclude>
 

Latest revision as of 01:21, 24 November 2022

Infobox