Editing Module:Infobox/doc

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 11: Line 11:
===Unpack the frame arguments from the Template===
===Unpack the frame arguments from the Template===
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
local p = {}

function p.main(frame)
function p.main(frame)
local args = frame:getParent().args
local args = frame:getParent().args
Line 22: Line 20:
local config = {
local config = {
infobox_name = 'Scenery',
infobox_name = 'Scenery',
class = {Infobox.smw_param('episode')}, -- Add css class with episode name to colorize Infobox
}
}
</syntaxhighlight>
</syntaxhighlight>
Line 28: Line 25:
===Map your arguments to parsing functions===
===Map your arguments to parsing functions===
{{Main|Module:Param Parse}}
{{Main|Module:Param Parse}}
Use the params in [[Module:Param Parse]] to validate and format the data - feel free to create your own new params in [[Module:Param Parse]].
Use the functions in [[Module:Param Parse]] to validate and format the data.
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
local params = {
local params = {
{name = 'name', func = parse.has_content, smw_property = 'Name'},
parse.name,
{name = 'image', func = parse.image, smw_property = 'Image', smw_func = parse.image_smw, category_incomplete = 'Scenery missing Image'},
parse.image,
{name = 'examine', func = parse.has_content, smw_property = 'Examine'}, -- Custom param
{name = 'examine', func = parse.has_content},
{name = 'episode', func = parse.episode, smw_property = 'Episode', smw_func = parse.episode_smw, category_incomplete = 'Scenery missing Episode'},
parse.episode,
...
...
}
}
Line 50: Line 47:
infobox
infobox
:add_row{
:add_row{
{tag='th', content=Infobox.param('name'), class='infobox-header', colspan='20'},
{tag='th', content=Infobox.param('name'), class='infobox.subheader', colspan='2'},
}
}
:add_row{
:add_row{
{tag='td', content=Infobox.param('image'), class='infobox-image', colspan='20'},
{tag='td', content=Infobox.param('image'), colspan='2'},
}
}
:pad("20")
:pad(2)
:add_row{
:add_row{
{tag='td', content='Info', class='infobox-subheader', colspan='20'},
{tag='td', content='[[Examine]]'},
{tag='td', content=Infobox.param('examine')},
}
}
:pad("20")
:add_row{
:add_row{
{tag='th', content='Examine', colspan="6"},
{tag='td', content='[[Episode]]'},
{tag='td', content=Infobox.param('examine'), colspan="14"},
{tag='td', content=Infobox.param('episode')},
}
:add_row{
{tag='th', content='[[Episode]]', colspan="6"},
{tag='td', content=Infobox.param('episode'), colspan="14"},
}
}
...
...
Line 76: Line 69:
return infobox
return infobox
end
end

return p
</syntaxhighlight>
</syntaxhighlight>


==Functions==
==Functions==
=== Special params ===
You don't need to do anything about these special parameters, but they may be used as parameters within the Template:
{| class="wikitable"
! param
! explanation
|-
| version1, version2, version3
| Button label and SMW name for each switch version of the infobox
|-
| default_version
| The default version to display when the page is loaded
|-
| version
| If there is only a single version, you can use version to set the SMW name (default SMW name is "DEFAULT")
|}

=== Referring to params ===
=== Referring to params ===
Each parameter can have a different value for each version. In addition, there are 3 different representations of each value. Therefore, a parameter must be accessed via one of the 3 helper functions:
Each parameter can have a different value for each version. In addition, there are 3 different representations of each value. Therefore, a parameter must be accessed via one of the 3 helper functions:
Line 123: Line 98:
</syntaxhighlight>
</syntaxhighlight>
==== config ====
==== config ====
There are only 3 parameters for config
There are only 2 parameters for config
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
local config = {
local config = {
infobox_name = 'Scenery', -- mandatory unique identifier for css
infobox_name = 'Scenery', -- mandatory unique identifier for css
class = {'CustomClass', Infobox.smw_param('episode')} -- optional, defaults to {}. Adds css classes to infobox table: {'infobox-CustomClass', 'infobox-[default version parameter's value]'}
max_buttons = 6, -- optional, defaults to 6, max number of switch buttons before using a dropdown list instead
max_buttons = 6, -- optional, defaults to 6, max number of switch buttons before using a dropdown list instead
}
}
Line 174: Line 148:
|-
|-
| category_partial (optional)
| category_partial (optional)
| category to add if func returns nil for some versions, but a value for other versions
| ategory to add if func returns nil for some versions, but a value for other versions
|-
|-
| category_incomplete (optional)
| category_incomplete (optional)
Line 251: Line 225:
|-
|-
| class (optional)
| class (optional)
| a string with a class to add, or a table of classes to add. '''infobox-header''', '''infobox-subheader''' and '''infobox-image''' are commonly used.
| a string with a class to add, or a table of classes to add. '''infobox-subheader''' is commonly used.
mw.html:addClass(...)
mw.html:addClass(...)
|-
|-
Line 269: Line 243:


=== Infobox:pad(colspan, class) ===
=== Infobox:pad(colspan, class) ===
Adds a blank row of padding spanning the given number of columns. Will always add the class '''infobox-padding''', but can optionally add another class:
Adds a blank row of padding spanning the given number of columns. Will always add the class infobox-padding, but can optionally add another class:
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
infobox:pad("10", class=<class>)
infobox:pad("10", class=<class>)
Line 280: Line 254:
infobox:addClass(class)
infobox:addClass(class)
</syntaxhighlight>
</syntaxhighlight>


=== Infobox:dump() ===
Logs all the values into the Debug console for debugging purposes. You can also dump all the values in an Infobox template by setting a template parameter "__dump = Yes".
Please note that all contributions to Brighter Shores Wiki are considered to be released under the CC BY-NC-SA 3.0 (see Brighter Shores:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!
Cancel Editing help (opens in new window)
Preview page with this template

This page is a member of a hidden category: