Difference between revisions of "Module:ItemBox"

From Curse of Aros
Jump to: navigation, search
Line 15: Line 15:
 
local row = table:tag('tr')
 
local row = table:tag('tr')
 
 
row:tag('td'):attr('colspan', '2'):attr('style', 'text-align: center')
+
row:tag('td'):attr('colspan', '4'):attr('style', 'text-align: center')
 
:wikitext('<i>"' .. key .. '"</i>')
 
:wikitext('<i>"' .. key .. '"</i>')
 
 
Line 24: Line 24:
 
local row = table:tag('tr')
 
local row = table:tag('tr')
 
 
row:tag('th'):attr('colspan', '2'):attr('class', 'infobox-subheader')
+
row:tag('th'):attr('colspan', '4'):attr('class', 'infobox-subheader')
 
:wikitext(title)
 
:wikitext(title)
 
 
Line 35: Line 35:
 
-- Create title header
 
-- Create title header
 
local td = table:tag('tr'):tag('td')
 
local td = table:tag('tr'):tag('td')
td:addClass('infobox-header'):attr('colspan', '2')
+
td:addClass('infobox-header'):attr('colspan', '4')
 
:wikitext(frame.args.name)
 
:wikitext(frame.args.name)
 
 
 
-- Add image box
 
-- Add image box
table:tag('tr'):tag('td'):addClass('infobox-image'):attr('colspan', 2)
+
table:tag('tr'):tag('td'):addClass('infobox-image'):attr('colspan', 4)
 
:wikitext('[[File:' .. frame.args.image .. ']]')
 
:wikitext('[[File:' .. frame.args.image .. ']]')
 
 
Line 46: Line 46:
 
 
 
-- Separation header
 
-- Separation header
table:tag('tr'):tag('td'):addClass('infobox-header'):attr('colspan', 2)
+
table:tag('tr'):tag('td'):addClass('infobox-header'):attr('colspan', 4)
 
 
 
-- Item basic attributes
 
-- Item basic attributes
Line 59: Line 59:
 
if frame.args.attack or frame.args.strength or frame.args.defence or frame.args.hp then
 
if frame.args.attack or frame.args.strength or frame.args.defence or frame.args.hp then
 
-- Separator
 
-- Separator
table:tag('tr'):tag('td'):addClass('infobox-header'):attr('colspan', 2)
+
table:tag('tr'):tag('td'):addClass('infobox-header'):attr('colspan', 4)
 
 
 
local row = table:tag('tr')
 
local row = table:tag('tr')
Line 77: Line 77:
 
 
 
-- Separation header
 
-- Separation header
table:tag('tr'):tag('td'):addClass('infobox-header'):attr('colspan', 2)
+
table:tag('tr'):tag('td'):addClass('infobox-header'):attr('colspan', 4)
 
 
 
     return tostring(table)
 
     return tostring(table)

Revision as of 12:34, 17 June 2019

Documentation for this module may be created at Module:ItemBox/doc

local export = {}

local pagename = mw.title.getCurrentTitle().fullText

function basic_row(table, key, value)
	local row = table:tag('tr')
	
	row:tag('td'):wikitext('<b>' .. key .. '</b>')
	row:tag('td'):wikitext(value)
	
	return row
end

function full_row(table, key)
	local row = table:tag('tr')
	
	row:tag('td'):attr('colspan', '4'):attr('style', 'text-align: center')
		:wikitext('<i>"' .. key .. '"</i>')
	
	return row
end

function subheader(table, title)
	local row = table:tag('tr')
	
	row:tag('th'):attr('colspan', '4'):attr('class', 'infobox-subheader')
		:wikitext(title)
	
	return row
end

function export.show(frame)
	local table = mw.html.create('table'):addClass('coa-infobox'):addClass('item')
	
	-- Create title header
	local td = table:tag('tr'):tag('td')
	td:addClass('infobox-header'):attr('colspan', '4')
		:wikitext(frame.args.name)
		
	-- Add image box
	table:tag('tr'):tag('td'):addClass('infobox-image'):attr('colspan', 4)
		:wikitext('[[File:' .. frame.args.image .. ']]')
		
	-- Item description goes right below
	full_row(table, frame.args.description or '')
		
	-- Separation header
	table:tag('tr'):tag('td'):addClass('infobox-header'):attr('colspan', 4)
	
	-- Item basic attributes
	basic_row(table, 'Level', frame.args.level)
	
	-- Optional values
	if frame.args.obtained then
		basic_row(table, 'Obtained', frame.args.obtained)
	end
	
	-- Bonuses
	if frame.args.attack or frame.args.strength or frame.args.defence or frame.args.hp then
		-- Separator
		table:tag('tr'):tag('td'):addClass('infobox-header'):attr('colspan', 4)
		
		local row = table:tag('tr')
	
		row:tag('th'):wikitext('<b>Attack</b>')
		row:tag('th'):wikitext('<b>Strength</b>')
		row:tag('th'):wikitext('<b>Defence</b>')
		row:tag('th'):wikitext('<b>HP</b>')
		
		row = table:tag('tr')
		row:tag('td'):wikitext(frame.args.attack or '--')
		row:tag('td'):wikitext(frame.args.strength or '--')
		row:tag('td'):wikitext(frame.args.defence or '--')
		row:tag('td'):wikitext(frame.args.HP or '--')
	end
	
	
	-- Separation header
	table:tag('tr'):tag('td'):addClass('infobox-header'):attr('colspan', 4)
	
    return tostring(table)
end

return export