Modul:GetParameters
TemplateStyles' src
attribute must not be empty.
This Lua module is used on many pages and changes may be widely noticed. Test changes in the module's /sandbox or /testcases subpages, or in your own module sandbox. Consider discussing changes on the talk page before implementing them. |
TemplateStyles' src
attribute must not be empty.
Modul nèka ènilai minangka modul beta, tor lasta èyangghuy halè tèghâr. Modul nèka ghi' anyar tor samostèna èyangghuy kelabân mastètè otabâ prajhâtna ka'angghuy mamastè asèlla nyondhuk kelabân pengarebbhânna. |
Usage
[beccè' sombher]getParameters
[beccè' sombher]Takes 2 required arguments, frame_args
and arg_list
. Parses a frame's arguments, returning either the provided named arguments in arg_list
if found or the positional parameters instead if not. This is designed to work around the stripping of values that takes place for defined parameters which could be important.
As an example, the calls getParameters({"a", "b", "c"}, {"x", "y"})
and getParameters({x="a", y="b", z="c"}, {"x", "y"})
would both give back {x="a", y="b"}
.
getBoolean
[beccè' sombher]Takes 1 required argument boolean_str
. Turns the input into a true/false boolean value based on the input. Will error if given anything other than a string or boolean value.
defined
[beccè' sombher]To be invoked from inside a template instead of a module. Determines if a certain parameter is defined in the parent frame's arguments.
See also
[beccè' sombher]local p = {}
--[[
Helper function that populates the argument list given that user may need to use a mix of
named and unnamed parameters. This is relevant because named parameters are not
identical to unnamed parameters due to string trimming, and when dealing with strings
we sometimes want to either preserve or remove that whitespace depending on the application.
]]
function p.getParameters( frame_args, arg_list )
local new_args = {};
local index = 1;
local value;
for i,arg in ipairs( arg_list ) do
value = frame_args[arg]
if value == nil then
value = frame_args[index];
index = index + 1;
end
new_args[arg] = value;
end
return new_args;
end
--[[
Helper Function to interpret boolean strings
]]
function p.getBoolean( boolean_str )
local boolean_value;
if type( boolean_str ) == 'string' then
boolean_str = boolean_str:lower();
if boolean_str == 'false' or boolean_str == 'no' or boolean_str == '0'
or boolean_str == '' then
boolean_value = false;
else
boolean_value = true;
end
elseif type( boolean_str ) == 'boolean' then
boolean_value = boolean_str;
else
error( 'No boolean value found' );
end
return boolean_value
end
function p.defined(frame)
local arg = mw.text.trim(frame.args[1])
--if arg == tostring(tonumber(arg)) then -- undesired result for '-0'
-- arg = tonumber(arg)
--end
--if mw.ustring.find(arg, '^%s*-?[1-9][0-9]*%s*$') ~= nil or arg == '0' then
-- arg = tonumber(arg)
--end
if mw.ustring.find(arg, '^-?[1-9][0-9]*$') ~= nil then
arg = tonumber(arg)
elseif arg == '0' then
arg = 0
end
return frame:getParent().args[arg] ~= nil
end
return p