Editing Module:Infobox/doc
Jump to navigation
Jump to search
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 |
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 = ' |
{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 |
{tag='th', content=Infobox.param('name'), class='infobox.subheader', colspan='2'}, |
||
} |
} |
||
:add_row{ |
:add_row{ |
||
{tag='td', content=Infobox.param('image') |
{tag='td', content=Infobox.param('image'), colspan='2'}, |
||
} |
} |
||
:pad( |
:pad(2) |
||
:add_row{ |
:add_row{ |
||
{tag='td', content=' |
{tag='td', content='[[Examine]]'}, |
||
⚫ | |||
} |
} |
||
:pad("20") |
|||
:add_row{ |
:add_row{ |
||
{tag=' |
{tag='td', content='[[Episode]]'}, |
||
{tag='td', content=Infobox.param(' |
{tag='td', content=Infobox.param('episode')}, |
||
} |
|||
:add_row{ |
|||
{tag='th', content='[[Episode]]', colspan="6"}, |
|||
⚫ | |||
} |
} |
||
... |
... |
||
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 |
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 251: | Line 225: | ||
|- |
|- |
||
| class (optional) |
| class (optional) |
||
| a string with a class to add, or a table of classes to add. |
| 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 |
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". |