Difference between revisions of "Template:Infobox"

From Stardew Valley Wiki
Jump to navigation Jump to search
(I thought I added this param last edit....)
(new infosection params; new autoimage template)
Line 27: Line 27:
  
 
-->{{#arraydefine:$engl_artisangoods  | Artisan Goods }}<!--
 
-->{{#arraydefine:$engl_artisangoods  | Artisan Goods }}<!--
 
// TODO: finalize how to handle test "does {{{source}}} contain artisan good"?
 
// Primarily need to check whether it's OK that the english test now looks at plural (artisan goods) -- because that's
 
// a term that's already being translated. If necessary, switch some pages to explicitly set is_artisan flag
 
-->{{#arraydefine:$is_artisan|{{#if:{{{is_artisan|}}}
 
      | {{#ifeq:{{{is_artisan|}}}|0|{{{is_artisan}}}}}
 
      | {{#ifexpr: {{#pos:{{lc:{{{source|}}}}}|{{lc:{{#arrayprint:$lang_artisangoods}}}}|1}} or {{#pos:{{lc:{{{source|}}}}}|{{lc:{{#arrayprint:$engl_artisangoods}}}}|1}} |1}}
 
}}}}<!--
 
  
 
// END of translations
 
// END of translations
// Initialize array variables
+
// Initialize variables
-->{{#arraydefine:$image_list|{{{image|}}}, {{{image2|}}}, {{{image3|}}}, {{{image4|}}}|,|unique}}<!--
 
// If no images provided, fill in default names -- but default is different on english wiki than other wikis
 
-->{{#ifexpr:{{#arraysize:$image_list}}<1|{{#arraydefine:$image_list|{{#ifeq:{{CONTENTLANG}}|en|{{PAGENAME}}|{{{eng|}}}}}}}}}<!--
 
 
-->{{#arraydefine:$quality|{{ParseInputQuality|quality={{{quality|}}}|iridium={{{iridium|}}}|hide={{{hide|}}}}}}}<!--
 
-->{{#arraydefine:$quality|{{ParseInputQuality|quality={{{quality|}}}|iridium={{{iridium|}}}|hide={{{hide|}}}}}}}<!--
-->{{#switch: {{NAMESPACE}}
+
-->{{#arraydefine:$is_artisan|{{#if:{{{is_artisan|}}}
 +
      | {{#ifeq:{{{is_artisan|}}}|0||{{{is_artisan}}}}}
 +
      | {{#ifexpr: {{#if:{{#pos:{{lc:{{{source|}}}}}|{{lc:{{#arrayprint:$lang_artisangoods}}}}}}|1|0}}
 +
                or {{#if:{{#pos:{{lc:{{{source|}}}}}|{{lc:{{#arrayprint:$engl_artisangoods}}}}}}|1|0}}
 +
        |1}}
 +
}}}}{{#switch: {{NAMESPACE}}
 
|{{ns:User}}|{{ns:User talk}}=
 
|{{ns:User}}|{{ns:User talk}}=
 
|#default=<div id="infoboxborder">
 
|#default=<div id="infoboxborder">
Line 49: Line 43:
 
{{!}}-
 
{{!}}-
 
{{!}}colspan="2" style="padding-bottom:5px; text-align: center;"{{!}}<!--
 
{{!}}colspan="2" style="padding-bottom:5px; text-align: center;"{{!}}<!--
 
+
// Display images, using default name if necessary
// Print all images by looping through all entries in $image_list array
+
-->{{Autoimage
-->{{#arrayprint:$image_list||@image@|<!--
+
      |{{{image|}}}, {{{image2|}}}, {{{image3|}}}, {{{image4|}}}
// Add spacing after first image if requested
+
       |eng={{{eng|}}}|separator={{#ifeq:{{{image2spacing|}}}|true|&nbsp;&#32;&nbsp;|{{{image2spacing|}}}}}}}<nowiki/>
-->{{#ifexpr:{{#iferror:{{#expr:{{#arraysearch:@image@}}>0}}|0}} and {{#if:{{{image2spacing|}}}|1|0}} |&nbsp;&#32;&nbsp;}}<!--
 
// If image appears to already have a .png/.gif/.jpg/etc extension (i.e., if 4th-last character is .), don't want to add .png extension
 
-->{{#ifeq:{{#sub:@image@|-4|1}}|.
 
       | {{#ifexist:Media:@image@|[[File:@image@]]}}
 
      | {{#ifexist:Media:@image@_{{uc:{{CONTENTLANG}}}}.png
 
          | [[File:@image@_{{uc:{{CONTENTLANG}}}}.png]]
 
  | {{#ifexist:Media:@[email protected]| [[File:@[email protected]]]}}
 
}}}}}}<nowiki/>
 
 
{{!}}-
 
{{!}}-
 
{{!}}colspan="2" id="infoboxdetail" style="text-align: center; font-style: italic;" {{!}} {{#if:{{{description|}}}|{{{description|}}}|{{Description|{{PAGENAME}}}}}}
 
{{!}}colspan="2" id="infoboxdetail" style="text-align: center; font-style: italic;" {{!}} {{#if:{{{description|}}}|{{{description|}}}|{{Description|{{PAGENAME}}}}}}
Line 110: Line 96:
 
       {{!}} id="infoboxdetail" {{!}} {{Edibility |{{{edibility|}}} |quality={{#arrayprint:$quality}}}}
 
       {{!}} id="infoboxdetail" {{!}} {{Edibility |{{{edibility|}}} |quality={{#arrayprint:$quality}}}}
 
}}}}<!--
 
}}}}<!--
 +
 +
// custom_price if defined provides entire text of all price-related sections
 +
-->{{#if:{{{custom_price|}}}
 +
      |{{{custom_price}}}<!--
  
 
// Display all item prices: Base price plus all professions listed in {{{profession}}}
 
// Display all item prices: Base price plus all professions listed in {{{profession}}}
 
// Subtemplate automatically decides how to handle multiple columns, etc.
 
// Subtemplate automatically decides how to handle multiple columns, etc.
-->{{#arraydefine:$sellprices|{{{sellprice|}}}}}<!--
+
-->   |{{Infosection price
-->{{Infosection price
+
        | prof   = Base {{#if:{{{profession|}}} |, {{{profession|}}}}}
      | profession   = Base {{#if:{{{profession|}}} |, {{{profession|}}}}}
+
        | item    = {{{eng|{{{name|{{{PAGENAME}}}}}}}}}
      | sellitem      = {{#ifexpr: {{#arraysize:$image_list}}>1 and {{#iferror:{{#arraysize:$sellprices}}|0}}={{#arraysize:$image_list}}
+
        | link    = {{{name|{{{PAGENAME}}}}}}
                        | {{#arrayprint:$image_list}}
+
        | price  = {{{sellprice|}}}
                        | {{{eng|{{{name|{{PAGENAME}}}}}}}}}}
+
        | quality = {{#arrayprint:$quality}}
      | alt_sellitem  = {{{name|{{PAGENAME}}}}}
+
      }}<!--
      | sellprice    = {{{sellprice|}}}
 
      | quality       = {{#arrayprint:$quality}}
 
}}<!--
 
  
 
// Add display of products and their prices.
 
// Add display of products and their prices.
// artisanitem is new parameter, that eventually should be able to move alot of the single-item-case data
+
// artisan_item is new parameter, that eventually should be able to move alot of the single-item-case data
 
// onto the individual article pags.
 
// onto the individual article pags.
// If artisanitem provided, use it to generate the infosection.  Otherwise, fallback to old-style manual switch
+
// If artisan_item provided, use it to generate the infosection.  Otherwise, fallback to old-style manual switch
-->{{#if:{{{artisanitem|}}}
+
-->   {{#if:{{{artisan_item|}}}
      | {{Infosection price
+
          | {{Infosection price
            | profession    = {{#if:{{{artisanprofession|}}}| {{{artisanprofession}}} | Base,Artisan}}
+
              | item      = {{{artisan_item}}}
            | artisan       = true
+
              | prof      = {{#if:{{{artisan_prof|}}}| {{{artisan_prof}}} | Base,Artisan}}
            | sourceprice  = {{{sellprice|}}}
+
              | artisan   = true
            | sellitem     = {{{artisanitem}}}
+
              | link     = {{{artisan_link|}}}
            | alt_sellitem  = {{{alt_artisanitem|}}}
+
              | price     = {{{artisan_price|0}}}
            | sellprice    = {{{artisanprice|}}}
+
              | quality   = {{{artisan_qual|}}}
            | sellimage     = {{{artisanimage|}}}
+
              | srcprice  = {{{sellprice|}}}
            | quality       = {{{artisanquality|}}}
+
              | auto     = true
            | oneitempercol = {{{artisanoneitempercol|}}}
+
            }}<!--
            | ncolumns     = {{{artisancolumns|}}}
 
        }}<!--
 
  
// Manually define various artisanitem sections
+
// Manually define various artisan_item sections
 
// One key reason to move these details onto the individual infobox pages is for sake of translation -- so that language-specific
 
// One key reason to move these details onto the individual infobox pages is for sake of translation -- so that language-specific
// translations of sellitem can be provided outside of template namespace.
+
// translations of item can be provided outside of template namespace.
 
// (Infosection price will recognize some key item names, such as Wine, Juice, Jelly, Pickles, but doing more than that is insane)
 
// (Infosection price will recognize some key item names, such as Wine, Juice, Jelly, Pickles, but doing more than that is insane)
 
-->
 
-->
      | {{#switch:{{lc:{{{type|{{{eng|{{PAGENAME}}}}}}}}}}
+
          | {{#switch:{{lc:{{{type|{{{eng|{{{name|{{PAGENAME}}}}}}}}}}}}}
   |sunflower = {{Infosection price|profession=base|artisan=true|sourceprice={{{sellprice|}}}|sellitem=Oil              |sellprice=100 |quality=normal}}
+
   |sunflower = {{Infosection price|prof=base       |artisan=true|auto=true|srcprice={{{sellprice|}}}|item=Oil              |price=100 |quality=normal}}
   |hops      = {{Infosection price|profession=base,artisan|artisan=true|sourceprice={{{sellprice|}}}|sellitem=Pale Ale,Pickles |sellprice=300,}}
+
   |hops      = {{Infosection price|prof=base,artisan|artisan=true|auto=true|srcprice={{{sellprice|}}}|item=Pale Ale,Pickles |price=300}}
   |wheat    = {{Infosection price|profession=base,artisan|artisan=true|sourceprice={{{sellprice|}}}|sellitem=Beer,Pickles    |sellprice=200,}}
+
   |wheat    = {{Infosection price|prof=base,artisan|artisan=true|auto=true|srcprice={{{sellprice|}}}|item=Beer,Pickles    |price=200}}
   |honey    = {{Infosection price|profession=base,artisan|artisan=true|sourceprice={{{sellprice|}}}|sellitem=Mead            |sellprice=200 |iridium=true}}
+
   |honey    = {{Infosection price|prof=base,artisan|artisan=true|auto=true|srcprice={{{sellprice|}}}|item=Mead            |price=200 |iridium=true}}
   |corn      = {{Infosection price|profession=base,artisan|artisan=true|sourceprice={{{sellprice|}}}|sellitem=Juice,Pickles,Oil|sellprice=,,100|quality=normal}}
+
   |corn      = {{Infosection price|prof=base,artisan|artisan=true|auto=true|srcprice={{{sellprice|}}}|item=Juice,Pickles,Oil|price=100 |quality=normal}}
   |tea leaves={{Infosection price|profession=base,artisan|artisan=true|sourceprice={{{sellprice|}}}|sellitem=Green Tea,Pickles|sellprice=100, |quality=normal}}
+
   |tea leaves= {{Infosection price|prof=base,artisan|artisan=true|auto=true|srcprice={{{sellprice|}}}|item=Green Tea,Pickles|price=100 |quality=normal}}
 
   |fruit
 
   |fruit
   |fruits    = {{Infosection price|profession=base,artisan|artisan=true|sourceprice={{{sellprice|}}}|sellitem=Wine,Jelly      | iridium=true}}
+
   |fruits    = {{Infosection price|prof=base,artisan|artisan=true|auto=true|srcprice={{{sellprice|}}}|item=Wine,Jelly      |price=0  |iridium=true}}
 
   |vegetables
 
   |vegetables
   |vegetable = {{Infosection price|profession=base,artisan|artisan=true|sourceprice={{{sellprice|}}}|sellitem=Juice,Pickles    | iridium=true}}
+
   |vegetable = {{Infosection price|prof=base,artisan|artisan=true|auto=true|srcprice={{{sellprice|}}}|item=Juice,Pickles    |price=0  |iridium=true}}
   |truffle  = {{Infosection price|profession=base,artisan|artisan=true|sourceprice={{{sellprice|}}}|sellitem=Truffle Oil|sellprice=1065|quality=normal}}
+
   |truffle  = {{Infosection price|prof=base,artisan|artisan=true|item=Truffle Oil     |price=1065|quality=normal}}
   |milk      = {{Infosection price|profession=base,rancher,artisan|artisan=true|sellitem=Cheese |sellprice=230|iridium=true}}
+
   |milk      = {{Infosection price|prof=base,rancher,artisan|artisan=true|item=Cheese     |price=230|iridium=true}}
   |large milk= {{Infosection price|profession=base,rancher,artisan|artisan=true|sellitem=Cheese |sellprice=230|iridium=true|hide=normal,silver}}
+
   |large milk= {{Infosection price|prof=base,rancher,artisan|artisan=true|item=Cheese     |price=230|quality=gold,iridium}}
   |goat milk = {{Infosection price|profession=base,rancher,artisan|artisan=true|sellitem=Goat Cheese |sellprice=400|iridium=true}}
+
   |goat milk = {{Infosection price|prof=base,rancher,artisan|artisan=true|item=Goat Cheese |price=400|iridium=true}}
   |large goat milk = {{Infosection price|profession=base,rancher,artisan|artisan=true|sellitem=Goat Cheese |sellprice=400|iridium=true|hide=normal,silver}}
+
   |large goat milk = {{Infosection price|prof=base,rancher,artisan|artisan=true|item=Goat Cheese |price=400|quality=gold,iridium}}
   |wool      = {{Infosection price|profession=base,rancher,artisan|artisan=true|sellitem=Cloth |sellprice=470|quality=normal}}
+
   |wool      = {{Infosection price|prof=base,rancher,artisan|artisan=true|item=Cloth       |price=470|quality=normal}}
   |duck egg  = {{Infosection price|profession=base,rancher,artisan|artisan=true|sellitem=Duck Mayonnaise |sellprice=375|quality=normal}}
+
   |duck egg  = {{Infosection price|prof=base,rancher,artisan|artisan=true|item=Duck Mayonnaise |price=375|quality=normal}}
   |egg      = {{Infosection price|profession=base,rancher,artisan|artisan=true|sellitem=Mayonnaise |sellprice=190|quality=normal}}
+
   |egg      = {{Infosection price|prof=base,rancher,artisan|artisan=true|item=Mayonnaise |price=190|quality=normal}}
   |dinosaur egg= {{Infosection price|profession=base,rancher,artisan|artisan=true|sellitem=Dinosaur Mayonnaise |sellprice=800|quality=normal}}
+
   |dinosaur egg= {{Infosection price|prof=base,rancher,artisan|artisan=true|item=Dinosaur Mayonnaise |price=800|quality=normal}}
   |large egg = {{Infosection price|profession=base,rancher,artisan|artisan=true|sellitem=Mayonnaise |sellprice=190|hide=normal,silver}}
+
   |large egg = {{Infosection price|prof=base,rancher,artisan|artisan=true|item=Mayonnaise |price=190|quality=gold}}
   |void  egg = {{Infosection price|profession=base,rancher,artisan|artisan=true|sellitem=Void Mayonnaise |sellprice=275|quality=normal}}<!--
+
   |void egg = {{Infosection price|prof=base,rancher,artisan|artisan=true|item=Void Mayonnaise |price=275|quality=normal}}<!--
  
 
// Add artisan sections to generic item pages.  Again, shouldn't be necessary any more once profession is added to original article
 
// Add artisan sections to generic item pages.  Again, shouldn't be necessary any more once profession is added to original article
 
-->
 
-->
 
   |wine
 
   |wine
   |juice    = {{#if:{{{profession|}}}||{{Infosection price|profession=artisan|sellitem={{{name|{{PAGENAME}}}}}|sellprice={{{sellprice|}}}|quality=normal}}}}
+
   |juice    = {{#if:{{{profession|}}}||{{Infosection price|prof=artisan|item={{{name|{{{{PAGENAME}}}}}}}|price={{{sellprice|}}}|quality=normal}}}}
   |aged roe  = {{#if:{{{profession|}}}||{{Infosection price|profession=artisan|sellitem={{{name|{{PAGENAME}}}}}|sellprice={{{sellprice|}}}|quality=normal}}
+
   |aged roe  = {{#if:{{{profession|}}}||{{Infosection price|prof=artisan|item={{{name|{{{{PAGENAME}}}}}}}|price={{{sellprice|}}}|quality=normal}}}}
 
}}}}}}{{#if:{{{ingredients|}}}|<nowiki/>
 
}}}}}}{{#if:{{{ingredients|}}}|<nowiki/>
 
{{!}}-
 
{{!}}-

Revision as of 17:37, 10 September 2020

Description

This template displays a generic infobox for a wide variety of items. Do not use this on your user page. It is reserved for content pages.

Parameters

All parameters are optional. If omitted, nothing will display.

Parameter Notes
eng Name of the image to display, in English, without the ".png" extension.
If the image has an extension other than ".png", then the "ext" parameter must be used.
ext Extension of image specified in "eng" parameter, without the period (e.g., "gif", "jpg", etc.)
name Name of item (Page name if omitted)
For use on pages like Trash (item) where the name of the item is different from the page name.
image2
image3
image4
image5
Name of additional images to display
Must be of type ".png"
Omit the extension (e.g., Tiger Slime Egg)
image2spacing Set to "true" to add extra space between the images specified in "eng" and "image2"
description In-game item description
(Populated by Template:Description if omitted). It is preferable to omit this parameter and update Template:Description instead.
source How to obtain the item (e.g., [[Crafting]], [[Artisan Goods]], [[Slime Egg-Press]])
location Location(s) of item (e.g., [[Cindersap Forest]], [[The Beach]], Bushes throughout the valley, etc.)
seed Name of seed (e.g., {{Name|Corn Seeds}})
growth Number of days the crop takes to grow to maturity (e.g., 4 days)
buff Name of buff(s) given by the item (e.g., {{Name|Farming|+4}})
buffduration Length of time buff(s) are active
season Name of season when the item can be obtained or grown
Can be plain text (e.g., Spring, Summer, All, etc.) or can use Template:Season (e.g., {{Season|Summer}} • {{Season|Winter}})
weather Weather required to obtain the item
Can use plain text (e.g., Rain) and this template will automatically apply Template:Weather inline formatting
xp Experience points gained for harvesting or otherwise obtaining the item
edibility Found in Data\ObjectInformation.xnb
Note that inedible items have an edibility of -300, and poisonous items have a negative edibility greater than -300
sellprice Found in Data\ObjectInformation.xnb
If the item cannot be sold, then "N/A" and "Cannot be sold" are valid values
quality Set to "false" to suppress silver, gold, and iridium qualities
recipe How to obtain the recipe to craft the item (e.g., [[Farming]] Level 7)
craftingstation Equipment used to craft the item (e.g., {{Name|Preserves Jar}})
crafttime How long does the item process in its equipment (e.g., 4 hours)
ingredients Ingredients needed to craft the item (e.g., {{Name|Copper Bar|2}}{{Name|Sap|10}})
tingredients Ingredients with the Trapper profession
Used on the Crab Pot page
produces Item produced via crafting, artisan goods, or harvesting (e.g., 5 Deluxe Fertilizer per craft)