Module:Sandbox/User:B4rt0/Modules/Infobox Spell: Difference between revisions

From Brighter Shores Wiki
Jump to navigation Jump to search
Content added Content deleted
No edit summary
No edit summary
 
(5 intermediate revisions by the same user not shown)
Line 19: Line 19:
parse.premium,
parse.premium,
parse.examine,
parse.examine,
parse.profession_bubble_a,
parse.profession_bubble_b,
-- Include these next params just to export data to smw
parse.profession_a_smw,
parse.profession_a_level_smw,
parse.profession_a_level_high_smw,
parse.profession_b_smw,
parse.profession_b_level_smw,
parse.profession_b_level_high_smw,
}
}
Line 24: Line 33:
infobox
infobox
:add_row{
:add_row{
{tag='th', content=string.upper(table.concat(Infobox.param('name'))), class='infobox-header', colspan='20'},
{tag='th', content=Infobox.param('name'), class='infobox-header', colspan='20'},
}
}
:add_row{
:add_row{
Line 45: Line 54:
{tag='td', content=Infobox.param('examine'), colspan="14"}
{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-item', colspan="10"},
{tag='td', content=Infobox.param('profession_bubble_b'), class='infobox-bubble-item', colspan="10"},
addClass = 'infobox-bubble-row'
}
elseif bubble_a then
infobox:add_row{
{tag='td', content=Infobox.param('profession_bubble_a'), class='infobox-bubble-item', colspan="20"},
addClass = 'infobox-bubble-row'
}
elseif bubble_b then
infobox:add_row{
{tag='td', content=Infobox.param('profession_bubble_b'), class='infobox-bubble-item', colspan="20"},
addClass = 'infobox-bubble-row'
}
else
infobox:pad('20')
end
return infobox
return infobox

Latest revision as of 17:29, 14 November 2024

Documentation for this module may be created at Module:Sandbox/User:B4rt0/Modules/Infobox Spell/doc

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 = 'Spell',
		class = {Infobox.smw_param('episode')},
	}
	
	local params = {
		parse.name,
		parse.image,
		parse.release,
		parse.episode,
		parse.premium,
		parse.examine,
		parse.profession_bubble_a,
		parse.profession_bubble_b,
		-- Include these next params just to export data to smw
		parse.profession_a_smw,
		parse.profession_a_level_smw,
		parse.profession_a_level_high_smw,
		parse.profession_b_smw,
		parse.profession_b_level_smw,
		parse.profession_b_level_high_smw,
	}
	
	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='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-item', colspan="10"},
				{tag='td', content=Infobox.param('profession_bubble_b'), class='infobox-bubble-item', colspan="10"},
				addClass = 'infobox-bubble-row'
			}
		elseif bubble_a then
			infobox:add_row{
				{tag='td', content=Infobox.param('profession_bubble_a'), class='infobox-bubble-item', colspan="20"},
				addClass = 'infobox-bubble-row'
			}
		elseif bubble_b then
			infobox:add_row{
				{tag='td', content=Infobox.param('profession_bubble_b'), class='infobox-bubble-item', colspan="20"},
				addClass = 'infobox-bubble-row'
			}
		else
			infobox:pad('20')
		end
	
	return infobox
end

return p