Documentația acestui modul poate fi creată la Modul:Infobox/doc
-- -- This module implements {{Infobox}} -- local p = {} local getArgs = require('Modul:Arguments').getArgs local args = {} p.infobox = function(frame) local origArgs = getArgs(frame) local child = origArgs["child"] or "no" local bodyclass = origArgs["bodyclass"] or "infocaseta" local antet = origArgs["antet"] or "default" local aboveclass = origArgs["aboveclass"] or antet local abovestyle = origArgs["abovestyle"] or "" local culoare_cadru = origArgs["culoare cadru"] or "F5F5DC" local culoare_text = origArgs["culoare text"] or "000000" local titlestyle = origArgs["titlestyle"] or "" local title = origArgs["title"] or "" local above = origArgs["above"] or "" local out = "" if child ~= "yes" then out = out .. "<table class=\"" .. bodyclass .. "\" cellspacing=\"2\">" -- caption out = out .. "<tr><td colspan=\"2\" class=\"antet " .. aboveclass .. "\" style=\"background-color:#" .. culoare_cadru .. ";color:#" .. culoare_text .. ";" .. titlestyle .. "\">" .. title .. "</td></tr>" -- header if above ~= "" then local aboveTr = mw.html.create('tr'):tag('td') :attr('colspan', '2') :addClass(aboveclass) :css('text-align', 'center') :css('font-size', '125%') :css('font-weight', 'bold') :cssText(abovestyle) :wikitext(above):allDone() out = out .. tostring(aboveTr) end else if title ~= "" then out = out .. "\'\'\'" .. title .. "\'\'\'" end end --subheaders local subheaders = {} subheaders[1] = origArgs["subheader"] or origArgs["subheader1"] or "" local subhIndex = 2 while (origArgs["subheader" .. tostring(subhIndex)] or "") ~= "" do subheaders[subhIndex] = origArgs["subheader" .. tostring(subhIndex)] or "" subhIndex = subhIndex + 1 end local subheaderstyle = origArgs["subheaderstyle"] or "" local subheaderclass = origArgs["subheaderclass"] or "" for subHeaderIdx = 1,#subheaders do if subheaders[subHeaderIdx] ~= "" then local subhTr = mw.html.create('tr'):tag('td'):attr('colspan', '2') :addClass(subheaderclass) :css('text-align', 'center') :cssText(subheaderstyle) :wikitext(subheaders[subHeaderIdx]):allDone() out = out .. tostring(subhTr) end end --images local images = {} local captions = {} images[1] = origArgs["image"] or "" captions[1] = origArgs["caption"] or "" local imgIndex = 2 while (origArgs["image" .. tostring(imgIndex)] or "") ~= "" do images[imgIndex] = origArgs["image" .. tostring(imgIndex)] captions[imgIndex] = origArgs["caption" .. tostring(imgIndex)] or "" imgIndex = imgIndex + 1 end local imageclass = origArgs["imageclass"] local imagestyle = origArgs["imagestyle"] local captionstyle = origArgs["captionstyle"] for i = 1,#images do if images[i] ~= "" then local imageRow = mw.html.create('tr') local imageTd = imageRow :tag('td'):attr('colspan', '2') :addClass(imageclass) :css('text-align', 'center') :cssText(imagestyle) :wikitext(images[i]) if captions[i] ~= "" then imageTd:tag('br') imageTd:tag('span'):cssText(captionstyle) :wikitext(captions[i]) end out = out .. tostring(imageRow) end end -- rows local labelstyle = origArgs["labelstyle"] or "" local datastyle = origArgs["datastyle"] or "" local headerstyle = origArgs["headerstyle"] or "" local elementIndex = 1 local headers = {} local data = {} local labels = {} local classes = {} local styles = {} local processingOrder = {} for k,v in pairs(origArgs) do local headerStart local headerEnd local labelStart local labelEnd local dataStart local dataEnd headerStart, headerEnd = mw.ustring.find(k, "header") labelStart, labelEnd = mw.ustring.find(k, "label") dataStart, dataEnd = mw.ustring.find(k, "data") styleStart, styleEnd = mw.ustring.find(k, "style") local nr = "" if dataStart == 1 then nr = mw.ustring.sub(k, 1 + dataEnd, mw.ustring.len(k)) elseif labelStart == 1 then nr = mw.ustring.sub(k, 1 + labelEnd, mw.ustring.len(k)) elseif headerStart == 1 then nr = mw.ustring.sub(k, 1 + headerEnd, mw.ustring.len(k)) elseif styleStart == 1 then nr = mw.ustring.sub(k, 1 + styleEnd, mw.ustring.len(k)) end if nr ~= "" and processingOrder[nr] == nil and tonumber(nr) ~= nil then headers[elementIndex] = origArgs["header" .. nr] or "" labels[elementIndex] = origArgs["label" .. nr] or "" data[elementIndex] = origArgs["data" .. nr] or "" classes[elementIndex] = origArgs["class" .. nr] or "" styles[elementIndex] = origArgs["style" .. nr] or "" processingOrder[tonumber(nr)] = elementIndex elementIndex = elementIndex + 1 end end local processingElement = 1 while processingElement <= table.maxn(processingOrder) do elementIndex = processingOrder[processingElement] if elementIndex ~= nil then local crtHeader = headers[elementIndex] local crtData = data[elementIndex] local crtLabel = labels[elementIndex] local crtClass = classes[elementIndex] local crtStyle = styles[elementIndex] if crtHeader ~= "" then local headerTr = mw.html.create('tr') local headerTh = headerTr:tag('th') :attr('colspan', '2') :css('text-align', 'center') :css('background-color', '#' .. culoare_cadru) :css('color', '#' .. culoare_text) :cssText(headerstyle) :wikitext(crtHeader) out = out .. tostring(headerTr) elseif crtLabel ~= "" then if crtData ~= "" then local dataAndLabelTr = mw.html.create('tr') :tag('th'):cssText(labelstyle) :wikitext(crtLabel):done() :tag('td'):addClass(crtClass) :cssText(datastyle):cssText(crtStyle) :wikitext(crtData):allDone() out = out .. tostring(dataAndLabelTr) end elseif crtData ~= "" then local dataTr = mw.html.create('tr') :tag('td'):attr('colspan', '2') :addClass(crtClass) :css('text-align', 'center') :cssText(datastyle) :cssText(crtStyle) :wikitext(crtData):allDone() out = out .. tostring(dataTr) end end processingElement = processingElement + 1 end --below local belowstyle = origArgs["belowstyle"] or "" local below = origArgs["below"] or "" if below ~= "" then out = out .. "<tr><td colspan=\"2\" style=\"text-align:center; " .. belowstyle .. "\">" .. below .. "</td></tr>" end --tnavbar local name = origArgs["name"] or "" if name ~= "" then local navBarTr = mw.html.create('tr'):tag('td') :css('text-align', 'right') :attr('colspan', '2') :wikitext(mw.getCurrentFrame():expandTemplate{title = "Tnavbar", args = { name }}):done() out = out .. tostring(navBarTr) end if child ~= "yes" then local doc = origArgs["doc"] or "" if doc ~= "" then local infodocTr = mw.html.create('tr'):wikitext(mw.getCurrentFrame():expandTemplate{title = "infodoc", args = {colspan = "2", culoare = culoare_cadru, link = doc }}) out = out .. tostring(infodocTr) end out = out .. "</table>" end return out end return p