Module:Infobox: Difference between revisions

Content added Content deleted
(Undid revision 957070706 by Ahecht (talk) - Undo for now, not very useful due to parameter name collisions)
(sync p.infoboxTemplate(frame) from sandbox)
Line 399: Line 399:
end
end


function p.infobox(frame)
function p.parseDataParameters()
-- If called via #invoke, use the args passed into the invoking template.
-- Otherwise, for testing purposes, assume args are being passed directly in.
if frame == mw.getCurrentFrame() then
origArgs = frame:getParent().args
else
origArgs = frame
end

-- Parse the data parameters in the same order that the old {{infobox}} did, so that
-- Parse the data parameters in the same order that the old {{infobox}} did, so that
-- references etc. will display in the expected places. Parameters that depend on
-- references etc. will display in the expected places. Parameters that depend on
-- another parameter are only processed if that parameter is present, to avoid
-- another parameter are only processed if that parameter is present, to avoid
-- phantom references appearing in article reference lists.
-- phantom references appearing in article reference lists.
preprocessSingleArg('autoheaders')
preprocessSingleArg('child')
preprocessSingleArg('child')
preprocessSingleArg('bodyclass')
preprocessSingleArg('bodyclass')
Line 455: Line 448:
args['italic title'] = origArgs['italic title'] -- different behaviour if blank or absent
args['italic title'] = origArgs['italic title'] -- different behaviour if blank or absent
preprocessSingleArg('decat')
preprocessSingleArg('decat')
end

function p.infobox(frame)
-- If called via #invoke, use the args passed into the invoking template.
-- Otherwise, for testing purposes, assume args are being passed directly in.
if frame == mw.getCurrentFrame() then
origArgs = frame:getParent().args
else
origArgs = frame.args
end
p.parseDataParameters()
return _infobox()
end


function p.infoboxTemplate(frame)
-- For calling via #invoke within a template
origArgs = {}
for k,v in pairs(frame.args) do origArgs[k] = mw.text.trim(v) end
p.parseDataParameters()
return _infobox()
return _infobox()
end
end