Module:ProcessArgs: Difference between revisions

From Modded Wiki
Jump to navigation Jump to search
m Protected "Module:ProcessArgs": High traffic page ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))
m 4 revisions imported
 
(2 intermediate revisions by 2 users not shown)
Line 27: Line 27:
for k, v in pairs( origArgs ) do
for k, v in pairs( origArgs ) do
v = mw.text.trim( tostring( v ) )
v = mw.text.trim( tostring( v ) )
if not norm or norm and v ~= '' then
if not norm or v ~= '' then
args[k] = v
args[k] = v
end
end
Line 34: Line 34:
for k, v in pairs( parentArgs ) do
for k, v in pairs( parentArgs ) do
v = mw.text.trim( v )
v = mw.text.trim( v )
if ( not norm or norm and v ~= '' ) and not args[k] then
if not norm or v ~= '' then
args[k] = v
args[k] = v
end
end

Latest revision as of 07:52, 4 July 2024

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

local p = {}
function p.norm( origArgs )
	if type( origArgs ) ~= 'table' then
		origArgs = mw.getCurrentFrame():getParent().args
	end
	local args = {}
	
	for k, v in pairs( origArgs ) do
		v = mw.text.trim( tostring( v ) )
		if v ~= '' then
			args[k] = v
		end
	end
	
	return args
end

function p.merge( origArgs, parentArgs, norm )
	if type( origArgs ) ~= 'table' then
		norm = origArgs
		local f = mw.getCurrentFrame()
		origArgs = f.args
		parentArgs = f:getParent().args
	end
	local args = {}
	
	for k, v in pairs( origArgs ) do
		v = mw.text.trim( tostring( v ) )
		if not norm or v ~= '' then
			args[k] = v
		end
	end
	
	for k, v in pairs( parentArgs ) do
		v = mw.text.trim( v )
		if not norm or v ~= '' then
			args[k] = v
		end
	end
	
	return args
end
return p