Moduuli:Tietolaatikko/tietoriviwikidata
Siirry navigaatioon
Siirry hakuun
[ muokkaa ]
Tämä moduuli on {{Tietolaatikko/uusitietorivi}} -mallineen toiminnallisuuden toteuttava moduuli.
|
local p = {}
local function create_col(value, class, style, colspan, bold )
local col;
local col=mw.html.create('td')
:addClass(class)
:cssText(style);
if colspan and colspan>1 then
col:attr("colspan", colspan)
end
if bold then
col:tag('b')
:wikitext(value)
else
col:wikitext(value)
end
return col:allDone()
end
-- Render row to html with different no_col1 and no_tr combinations
-- no_col1 = 1 # Do not print first col
-- no_tr = 1 # Do not wrap output to <tr>
local function render_row(col1, col2, show_col1, show_col2, no_tr)
local ret=""
if no_tr then
if show_col1 then
ret = ret .. tostring(col1);
end
if show_col2 then
ret = ret .. tostring(col2);
end
else
local tr = mw.html.create('tr')
if show_col1 then
tr:node(col1)
end
if show_col2 then
tr:node(col2)
end
tr:allDone()
ret = tostring(tr)
end
return ret
end
function p.tietorivi(frame)
local class1 = frame.args.class1 or frame.args.class or "";
local class2 = frame.args.class2 or frame.args.class or "";
local colspan1 = tonumber(frame.args.colspan1 or frame.args.colspan or "");
local colspan2 = tonumber(frame.args.colspan2 or frame.args.colspan or "");
local defaultstyle="vertical-align: top;"
local style1 = frame.args.style1 or frame.args.style or defaultstyle;
local style2 = frame.args.style2 or frame.args.style or defaultstyle;
local title_value = frame.args.nimi or "";
local infobox_input_value = frame.args["sisältö"] or "";
local infobox_auto_value = frame.args["haettusisältö"] or "";
local infobox_help_value = frame.args["esimerkki"] or "";
local infobox_testit_value = frame.args["testit"] or "";
local output_value = "";
-- Valitaan näytettävä teksti
if infobox_input_value~="" then
output_value = infobox_input_value;
elseif infobox_auto_value~="" then
output_value = infobox_auto_value;
elseif infobox_help_value~="" then
output_value = infobox_help_value;
end
if infobox_testit_value ~= "" then
output_value = output_value .. infobox_testit_value;
end
local no_b = (frame.args["ei-b"] or "") == "1";
local no_tr = (frame.args["ei-tr"] or "") == "1";
local skip_test = frame.args["tulostussääntö"] or "";
-- Tarkistetaan ensin tapaukset jolloin ei tulosteta mitään
if skip_test=="" then
return "";
elseif infobox_input_value == "-" then
return "";
elseif output_value == "" then
return "";
end
local col1=create_col(title_value, class1, style1, colspan1, (no_b==false) );
local col2=create_col(output_value, class2, style2, colspan2, false );
ret = render_row(col1, col2, (colspan1~=0), (colspan2~=0), no_tr);
return ret;
end
return p;