Module:InfoboxProto: Difference between revisions
From Elwiki
m (Protected "Module:InfoboxProto": Easily broken pages ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))) |
No edit summary |
||
Line 12: | Line 12: | ||
local infobox = mw.html.create('div'):addClass('infobox-new'); | local infobox = mw.html.create('div'):addClass('infobox-new'); | ||
infobox:tag('div'):addClass('infobox-new-header'):css('background-color', args.color:gsub("%#", "#") | infobox:tag('div'):addClass('infobox-new-header'):css('background-color', args.color:gsub("%#", "#")):wikitext(title); | ||
local img = args.image; | local img = args.image; | ||
if args.image == nil then | if args.image == nil then | ||
Line 21: | Line 20: | ||
-- Adds a normal row | -- Adds a normal row | ||
function addField(param, field_name, double) | function addField(param, field_name, double, field_value) | ||
if args[param] ~= nil then | if args[param] ~= nil or field_value ~= nil then | ||
local row = infobox:tag('div'):addClass('infobox-row'); | local row = infobox:tag('div'):addClass('infobox-row'); | ||
if field_name == nil then | if field_name == nil then | ||
field_name = titleCase(param); | field_name = titleCase(param); | ||
end | |||
if field_value == nil then | |||
field_value = args[param]; | |||
end | end | ||
row:tag('div'):addClass('infobox-row-title'):tag('span'):wikitext(field_name); | row:tag('div'):addClass('infobox-row-title'):tag('span'):wikitext(field_name); | ||
if (param == 'video' or param == 'tree' or param == 'stats') then | if (param == 'video' or param == 'tree' or param == 'stats') then | ||
row:tag('div'):addClass('infobox-row-content'):wikitext( | row:tag('div'):addClass('infobox-row-content'):wikitext(field_value); | ||
else | else | ||
row:tag('div'):addClass('infobox-row-content'):tag('span'):wikitext( | row:tag('div'):addClass('infobox-row-content'):tag('span'):wikitext(field_value); | ||
end | end | ||
end | end |
Revision as of 13:26, 29 April 2022
Documentation for this module may be created at Module:InfoboxProto/doc
require('Module:CommonFunctions')
local getArgs = require('Module:Arguments').getArgs
local p = {}
-- Main process
function p.main(frame, title)
local args = getArgs(frame);
if args.color == nil then
args.color = '{{ColorSel|Misc}}';
end
local infobox = mw.html.create('div'):addClass('infobox-new');
infobox:tag('div'):addClass('infobox-new-header'):css('background-color', args.color:gsub("%#", "#")):wikitext(title);
local img = args.image;
if args.image == nil then
img = args['Image'];
end
infobox:tag('div'):addClass('infobox-new-image'):wikitext(img);
-- Adds a normal row
function addField(param, field_name, double, field_value)
if args[param] ~= nil or field_value ~= nil then
local row = infobox:tag('div'):addClass('infobox-row');
if field_name == nil then
field_name = titleCase(param);
end
if field_value == nil then
field_value = args[param];
end
row:tag('div'):addClass('infobox-row-title'):tag('span'):wikitext(field_name);
if (param == 'video' or param == 'tree' or param == 'stats') then
row:tag('div'):addClass('infobox-row-content'):wikitext(field_value);
else
row:tag('div'):addClass('infobox-row-content'):tag('span'):wikitext(field_value);
end
end
if double == true then addField2(param, field_name) end;
end
-- Adds a row with 2 columns
function addField2(param, field_name)
if args[param .. '1'] ~= nil and args[param .. '2'] ~= nil then
local row = infobox:tag('div'):addClass('infobox-row'):addClass('infobox-double-row');
if field_name == nil then
field_name = titleCase(param):gsub("%d+", '');
end
row:tag('div'):addClass('infobox-row-title'):wikitext(field_name);
row:tag('div'):addClass('infobox-row-content'):tag('span'):wikitext(args[param .. '1']);
row:tag('div'):addClass('infobox-row-content'):tag('span'):wikitext(args[param .. '2']);
end
end
return infobox;
end
return p