Module:Infobox Item: Difference between revisions

From Brighter Shores Wiki
Jump to navigation Jump to search
Content added Content deleted
(Let's see if this works)
(Working on profession bubbles, might break temporarily)
Line 21:
parse.value,
parse.examine,
parse.profession_bubble_a,
parse.profession_bubble_b,
}
Line 55 ⟶ 57:
{tag='td', content=Infobox.param('examine'), colspan="14"}
}
local bubble_a = infobox:is_param_defined(Infobox.param('profession_bubble_a')) > 0
:pad(20)
local bubble_b = infobox:is_param_defined(Infobox.param('profession_bubble_b')) > 0
if bubble_a and bubble_b then
infobox:add_row{
{tag='td', content=Infobox.param('profession_bubble_a'), class='infobox-bubble', colspan="10"},
{tag='td', content=Infobox.param('profession_bubble_b'), class='infobox-bubble', colspan="10"},
addClass = 'infobox-bubble'
}
elseif bubble_a then
infobox:add_row{
{tag='td', content=Infobox.param('profession_bubble_a'), class='infobox-bubble', colspan="20"},
addClass = 'infobox-bubble'
}
elseif bubble_b then
infobox:add_row{
{tag='td', content=Infobox.param('profession_bubble_b'), class='infobox-bubble', colspan="20"},
addClass = 'infobox-bubble'
}
end
infobox:pad(20)
return infobox

Revision as of 21:43, 28 October 2024

Module documentation
This documentation is transcluded from Module:Infobox Item/doc. [edit] [history] [purge]
This module does not have any documentation. Please consider adding documentation at Module:Infobox Item/doc. [edit]
Module:Infobox Item's function main is invoked by Template:Infobox Item.
Module:Infobox Item requires Module:Infobox.
Module:Infobox Item requires Module:Param Parse.

local p = {}

local Infobox = require('Module:Infobox')
local parse = require('Module:Param Parse')

function p.main(frame)
	local args = frame:getParent().args
	
	local config = {
		infobox_name = 'Item',
		class = {Infobox.smw_param('episode')},
	}
	
	local params = {
		parse.name,
		parse.image,
		parse.release,
		parse.premium,
		parse.episode,
		parse.profession,
		parse.value,
		parse.examine,
		parse.profession_bubble_a,
		parse.profession_bubble_b,
	}
	
	local infobox = Infobox.new(config, params, args)
	infobox
		:add_row{
			{tag='th', content=Infobox.param('name'), class='infobox-header', colspan='20'},
		}
		:add_row{
			{tag='td', content=Infobox.param('image'), class='infobox-image', colspan='20'},
		}
		:add_row{
			{tag='th', content='Release', colspan="6"},
			{tag='td', content=Infobox.param('release'), colspan="14"},
		}
		:add_row{
			{tag='th', content='[[Episode]]', colspan="6"},
			{tag='td', content=Infobox.param('episode'), colspan="14"},
		}
		:add_row{
			{tag='th', content='[[Premium Pass|Premium]]', colspan="6"},
			{tag='td', content=Infobox.param('premium'), colspan="14"},
		}
		:add_row{
			{tag='th', content='[[Profession]]', colspan="6"},
			{tag='td', content=Infobox.param('profession'), colspan="14"},
		}
		:add_row{
			{tag='th', content='Value', colspan="6"},
			{tag='td', content=Infobox.param('value'), colspan="14"},
		}
		:add_row{
			{tag='th', content='Examine', colspan="6"},
			{tag='td', content=Infobox.param('examine'), colspan="14"}
		}
	local bubble_a = infobox:is_param_defined(Infobox.param('profession_bubble_a')) > 0
	local bubble_b = infobox:is_param_defined(Infobox.param('profession_bubble_b')) > 0
	if bubble_a and bubble_b then
		infobox:add_row{
			{tag='td', content=Infobox.param('profession_bubble_a'), class='infobox-bubble', colspan="10"},
			{tag='td', content=Infobox.param('profession_bubble_b'), class='infobox-bubble', colspan="10"},
			addClass = 'infobox-bubble'
		}
	elseif bubble_a then
		infobox:add_row{
			{tag='td', content=Infobox.param('profession_bubble_a'), class='infobox-bubble', colspan="20"},
			addClass = 'infobox-bubble'
		}
	elseif bubble_b then
		infobox:add_row{
			{tag='td', content=Infobox.param('profession_bubble_b'), class='infobox-bubble', colspan="20"},
			addClass = 'infobox-bubble'
		}
	end
	infobox:pad(20)
	
	return infobox
end

return p